AI Infrastructure · Agent Systems Engineer

에이전트를 굴리는
인프라를 짓고,
그 위에 제품을 올립니다.

멀티모델 오케스트레이션 엔진, 컨트롤 플레인, 내구성 워크플로 — 에이전트를 실제 프로덕션으로 굴릴 때 필요한 것들을 직접 설계해 운영합니다. 그리고 그 인프라 위에서 결제까지 붙은 제품을 혼자 출시했습니다. 인프라만 만든 사람도, 제품만 만든 사람도 아닙니다.

박근민 · Park Geunmin rmsals1745@gmail.com github.com/rmsals1745 인천 · 서울 (수도권) · 원격 가능
700+4개월간 생산한 커밋
(자작 스웜 파이프라인 경유)
5실전 운용 중인
LLM 프로바이더
40+자작 에이전트 스킬
설계·운영
1,464단일 모노레포
관리 파일 수
01

에이전트 인프라

에이전트를 한 번 돌려보는 것과, 조직이 매일 그 위에서 일하게 만드는 것은 다른 문제입니다. 아래는 후자를 위해 지은 것들입니다. — 이름의 just- 접두는 제 영어 이름 Justin 에서 왔습니다. 한 계열로 묶어 두면 어디까지가 제가 지은 층인지 한눈에 보입니다.

justswarm

Orchestration Engine2026.04 –

목표 하나를 던지면 구현 워커와 검수 워커가 붙어 완결하는 멀티모델 오케스트레이션 엔진 · 설계·구현 단독

metrics/runs.jsonl — 실제 실행 기록
swarm_run_v6.py --profile glen --verifier mimo --spec chunk.md
기간2026-07-18 → 2026-08-09 · 총 52 런
판정approve 48 · revise 1 · reject 3
재작업17 런에서 수정 요구 19건16 런이 2회 이상 반복
검수자mimo 35 · kimi 7 · kai 5 (폴백 체인 실동작)
워커glen 38 · kai 5 · kimi 4 · mimo 3
자동승인 우회0건 — 셀프리뷰 가드 우회 없음

검수가 장식이 아니라는 증거 — 52 런 중 17 런에서 실제 수정 요구가 나왔고 16 런이 재작업을 거쳤습니다. 검수자가 3개 프로바이더에 걸쳐 분포한 것은 폴백 체인이 실제로 발동했다는 뜻입니다.

  • 구현/검수 역할 분리 — 구현 모델과 검수 모델을 서로 다른 프로바이더로 분리하고, 판정은 DECISION: approve|revise|reject 문법만 허용. 미준수 시 엔진이 재질의.
  • 셀프리뷰 차단 런타임 가드 — 그 라운드에 산출물을 낸 모델은 검수 후보에서 자동 제외. 후보가 소진되면 자동 승인 대신 사람 검수로 승계한다. AI 가 자기 결과를 통과시키는 구조적 실패를 원천 차단.
  • 다단 폴백 체인 — worker·verifier 각각 3단 승계. 프로바이더 장애 / 안전필터 거부 / 인코딩 손상을 서로 다른 실패로 분류해 라우팅한다. (검수 모델의 안전필터 거부가 reject 판정으로 둔갑하던 사고를 잡아낸 뒤 도입)
  • diff 가 유일한 진실 — 워커의 자기보고를 판정에서 배제. baseline → 검수 전 → 검수 반영 이정표 커밋으로 검수의 효과 자체를 감사 가능하게 설계.
Python · Claude Agent SDK · GLM 5.2 · MiMo v2.5-pro · DeepSeek · Kimi

justlink

Control Plane2026.04 –

에이전트 작업과 실행 상태를 다루는 컨트롤 플레인 · 486 커밋 / 1,464 파일

  • 이슈·프로젝트·회의 단위의 작업 관리와 실행 상태 실시간 가시화. 에이전트가 무엇을 왜 하고 있는지 사람이 볼 수 있게 만드는 계층.
  • git worktree 기반 격리 개발 워크플로 자동화 — 포트 자동 할당, dev 서버 라이프사이클, 좀비 프로세스 감사·철거까지 한 커맨드로.
  • pnpm 모노레포(TypeScript), Vitest + Playwright, Cloudflare Worker 모바일 뷰어(PWA/TWA)
TypeScript · React · Node 20 · pnpm · Playwright · Cloudflare Workers

justgraph

Durable Workflow2026.08 –

중단되고도 살아남는 자동화 워크플로

  • LangGraph 기반. 결재 인터럽트에서 멈춘 그래프를 완전히 다른 프로세스가 재개하는 것을 실증 — 며칠 뒤 기계를 껐다 켜도 그 자리에서 이어진다. 단발 cron 이 못 하는 런 사이 상태 누적을 해결.
  • 관측성은 상용 플랫폼 대신 자작 — 콜백 1개로 자동 수집(노드가 계측을 몰라도 됨), OTEL 스팬 규격, 보존정책 분리(전문 14일 · 요약 영구)
Python 3.12 · LangGraph · uv · Hetzner + systemd/cron

Hermes 상시 자동화 런타임

Always-on Automation2026.05 –

개발 기계가 대부분 꺼져 있다는 전제로 설계한 자동화 런타임 — 게이트웨이 · 훅 · 스케줄 · 원격 상주

등록된 자동화 스케줄 — OS 스케줄러로 분리된 잡
Get-ScheduledTask -TaskName "HermesCron_*"
HermesCron_SyncCronOutputsRunninglast 08-09 10:00
HermesCron_ApiKeyCheckReadylast 08-09 07:40
HermesCron_StudyDaemonReadylast 08-03 19:21
HermesCron_ProjectArchiverDisabledlast 08-05 06:56
HermesCron_TeamAutoAssignDisabledlast 08-05 19:55
… 외 7건

에이전트가 필요 없는 잡은 게이트웨이에서 떼어내 OS 스케줄러로 내렸습니다. 게이트웨이가 죽어도, 기계가 꺼져 있어도 살아남습니다.

  • 게이트웨이와 스케줄러 분리 — 에이전트가 필요 없는 반복 작업은 OS 스케줄러(StartWhenAvailable)로 내려, 게이트웨이 재시작·크래시와 무관하게 굴러가게 만듦. 놓친 실행은 기계가 켜지는 순간 따라잡는다.
  • 이벤트 훅 체계 — 세션 시작 시 작업 컨텍스트 주입과 자동 커밋·푸시, 종료 시 학습 개념 추출·축적, 프롬프트 단계에서 위임 규칙 강제, 외부 CLI·게이트웨이 호출 실시간 추적. 사람이 기억해야 할 일을 런타임이 대신 기억한다.
  • 크리덴셜 단일화 — 프로필마다 흩어져 있던 키를 시스템 경로 한 곳으로 모아, 키 교체 시 한 파일만 고치면 되도록 정리. 프로바이더 401/402 의 원인이 "충전 부족"이 아니라 stale 엔드포인트였던 사고를 계기로 재설계.
  • 원격 상주 — Hetzner 에 워커를 상주시켜 로컬 기계가 꺼져 있어도 메신저 → 서버 에이전트 → 커밋 push → 결재 흐름이 진행된다. 로컬·GitHub·클라우드 3중 백업 일일 자동화.
Python · Docker(Caddy · CouchDB) · systemd · cron · Windows 작업 스케줄러 · Telegram Bot API

juststandby

어느 기계에서든 전체 개발 환경 — 에이전트·스킬·크리덴셜 — 을 한 번에 복원. age 기반 암호화 볼트.

환경 재현성 · 761 files

devtutor

작업 세션에서 개념을 자동 추출해 지식 베이스로 축적. 로컬 서버 + Cloudflare + TWA 모바일 앱.

지식 파이프라인 · 586 files

Claude Code 스킬 40+

워크트리 오케스트레이션, 교차검수, 크론 점검, 스웜 위임 등 반복 업무를 커맨드로 고정.

DX · 훅 시스템 · MCP

AI 시스템의 진짜 난이도는 모델을 부르는 데 있지 않습니다.
“이 결과를 믿어도 되는가” 를 사람 없이 판정하는 구조를 짜는 데 있습니다.

02

그 인프라로 만든 제품

인프라는 제품을 내기 위한 것입니다. 아래는 위 파이프라인을 실제로 통과해 나온 결과물입니다.

인생딸깍 (inlifeclick)

Payment-enabled SaaS2026.06 –

AI 에이전트의 노동을 크레딧으로 파는 범용 콘텐츠·마케팅 자동화 서비스 · 기획·설계·구현·결제·배포 전 과정 단독

인생딸깍 서비스 로그인 화면 — 이용약관·개인정보처리방침·청약철회 환불규정·대표자 표기

실서비스 진입 화면. 이용약관 · 개인정보처리방침 · 청약철회·환불규정 · 대표자 표기까지 갖춘 상태 — 토이 프로젝트가 아니라 결제를 받을 수 있는 형태로 끝냈습니다.

  • 상담형 에이전트가 사용자 의도를 인터뷰하고, 하나의 씨앗에서 블로그·인스타그램·쓰레드·X 를 동시에 생성 (OSMU). 업종·버티컬을 가리지 않는 범용 도구.
  • 결제 — 포트원 V2, 빌링키 정기결제 + 크레딧 충전팩 4단. 상품표를 서버 단일 정본화해 프론트·서버 가격 불일치 사고를 구조적으로 제거.
  • 환불 정산 정밀화 — "잔액 추정" 휴리스틱이 크레딧을 따로 산 사용자를 미사용으로 오판하던 버그를 원장 실측(결제 시각 이후 소비량 합산)으로 교체.
  • 결제 복귀 3중 안전망 — 결제사가 리다이렉트 파라미터를 해시 앞에 붙이면 주문이 pending 으로 남아 돈은 빠지고 크레딧은 안 오르던 사고를 해시뒤 → 해시앞 → 로컬 30분 복구로 차단.
Cloudflare Pages Functions · D1 (마이그 12차) · React · Capacitor · PortOne V2

규제 컴플라이언스 사전점검 플러그인 3건

AX Hackathon 20262026.07

게시·등록 전에 규제 위반을 잡아내는 도메인 특화 검사기 — 커머스 / 헬스케어 / 트래블 3개 기업편

  • 입점 상품등록 컴플라이언스 — 혼용률·시험성적서·전자상거래 고시 9항목·택갈이 신호·광고 표현
  • 의료·건강 광고문구 사전점검 — 의약품 오인·기능성 초과·의료기기 오인·최신 개정 금지표현. 공개 근거 3축(기업 공식 · 언론 · 법정 고시)으로 규칙 설계.
  • 화이트리스트 오탐 발견·수정 — 허용 표현이 인접하면 위반을 억제하던 false negative 를 잡고 회귀테스트 57/57 통과
03

기술 스택

Agent Systems

멀티에이전트 오케스트레이션, 구현/검수 분리, tool-calling, 판정 프로토콜 설계, 프로바이더 폴백 체인, MCP 서버, Claude Agent SDK, LangGraph (체크포인트 · HITL 인터럽트)

LLM Providers

Claude · GLM(z.ai) · DeepSeek · Kimi(Moonshot) · MiMo · Gemini — 장애 / 안전필터 거부 / 인코딩 손상을 서로 다른 실패 모드로 분류해 운용

Full-stack

TypeScript, React, Node 20, pnpm 모노레포, Vite, Capacitor, Python 3.12

Infra & Ops

Cloudflare Workers / Pages / D1 / KV, Hetzner + Docker(Caddy · CouchDB) + systemd + cron, Playwright, Vitest, 3중 백업 체계

Commerce

포트원 V2, 빌링키 정기결제, 크레딧 원장, 환불 정산, 통신판매업 · PG 심사 요건

Generative Media

ComfyUI 로컬 추론(Z-Image-Turbo · LoRA · ControlNet · VideoX-Fun), Whisper STT, TTS 파이프라인

04

배경

개발 이전에 B2B 컨설팅·영업을 했습니다. 니즈 발굴 → 문제 인식 → 해결책 제시 → 반론 처리 → 클로징 → 사후관리까지 현장에서 굴린 경험이 있습니다. 그래서 고객 앞에 직접 설 수 있는 엔지니어입니다 — 요구사항을 통역해서 받는 게 아니라 직접 캐내고, 만든 것을 직접 설명합니다. 지금은 그 상담 플레이북을 AI 에이전트의 대화 설계에 그대로 이식하고 있습니다.