커버 스토리는 "최적화할 대상은 프롬프트가 아니라 루프"라고 했고, 루프 해부는 그 루프를 여섯 개 부품 — 자동화·워크트리·스킬·커넥터·서브에이전트·디스크 메모리 — 으로 뜯었다. 남은 질문은 실물이다. 그 여섯 칸을 오늘 무엇으로 채우나. 이 큐레이션은 부품별 도구 쇼핑 리스트다. 부품 순서는 루프 해부가 정한 정본을 따르고, 마지막에는 여섯 부품 어디에도 속하지 않지만 루프의 비용을 좌우하는 항목 하나 — 저가·롱컨텍스트 모델 — 를 덧붙였다. 원칙은 하나다. 지금 비어 있는 칸부터 채운다.
한 가지 먼저 짚어둔다. 아래 도구들은 라이선스 결이 제각각이다. MIT·Apache처럼 제약이 거의 없는 퍼미시브부터, 소스는 공개하되 경쟁 SaaS 재판매를 막는 Elastic License 2.0, SDK만 열어 둔 상용까지 섞여 있다. 이 구분은 사내 배포·재판매를 따질 때 실무적으로 갈리는 지점이라, 특히 검증 도구 칸에서는 항목마다 라이선스를 명시했다.
자동화 — 루프에 방아쇠를 거는 스케줄러·트리거
루프는 사람이 버튼을 누르지 않아도 스스로 발동해야 한다. 그 방아쇠를 거는 도구들이다. Claude Code는 세 갈래를 제공한다 — 정해진 주기로 도는 /loop(간격을 지정하지 않으면 출력 속도에 맞춰 스스로 페이스를 잡는다), 사람이 쓴 조건이 참이 될 때까지 도는 /goal, 크론식 예약 실행을 등록하는 /schedule(루틴). 저장소 밖에서는 표준 cron과 GitHub Actions가 빌드 실패·CI 신호·git 이벤트를 트리거로 붙인다. Codex 쪽은 Automations 탭과 /goal이 같은 역할을 한다.
특징은 트리거의 성격이 갈린다는 점이다 — /loop은 '주기'로, /goal은 '종료조건'으로 멈춘다. 팁: /goal처럼 조건 충족까지 무한히 도는 자동화에는 최대 반복 횟수를 넘기면 사람에게 넘기는 에스컬레이션 출구를 반드시 함께 걸어라. 무인 루프의 안전판은 다른 데 있지 않고 자동화 설정 안에 있다. → https://code.claude.com/docs/en/how-claude-code-works
워크트리 — 에이전트끼리 파일을 밟지 않게
여러 에이전트를 동시에 돌리면 같은 파일을 서로 덮어쓰는 사고가 난다. 워크트리는 각 에이전트에게 같은 저장소 이력을 공유하되 독립 브랜치·체크아웃을 가진 별도 작업 디렉터리를 준다. 바닥은 git 표준 기능인 git worktree라 새로 배울 것이 거의 없다. Claude Code는 --worktree 플래그와 서브에이전트에 붙이는 isolation: worktree 설정으로 이를 감싸고, Codex는 스레드마다 "같은 이력을 공유하되 자기 폴더로 체크아웃된 격리 사본"을 내장으로 만든다.
팁: 병렬 플릿을 굴릴 계획이 아직 없더라도 에이전트에게 워크트리 하나를 떼어주면 실패한 실행을 본 브랜치 오염 없이 통째로 버릴 수 있다. 격리는 병렬화만을 위한 것이 아니라 '되돌리기'의 값을 싸게 만드는 장치이기도 하다. → https://openai.com/codex/
스킬 — 프로젝트 지식을 파일로 굳힌다
매 실행마다 "이 저장소는 이렇게 빌드하고 이런 규칙을 지킨다"를 다시 입력하는 낭비를 없앤다. 스킬은 프로젝트 고유의 맥락·규칙·절차를 파일로 한 번 적어두고 매 실행이 참조하게 하는 부품이다. Claude Code의 스킬은 폴더와 SKILL.md(지시·스크립트·자산)의 조합으로, 설명이 현재 작업과 매칭되면 자동으로 로드된다(~/.claude/skills/ 또는 .claude/skills/). Codex도 같은 SKILL.md 포맷과 $name 호출을 쓴다. 인접한 상시 지침 파일로는 CLAUDE.md와 AGENTS.md가 있다.
팁: 애디 오스마니(Addy Osmani)는 이 부품을 소홀히 할 때 쌓이는 것을 '의도 부채(intent debt)'라 불렀다 — 맥락을 매번 말로 때우면 시스템 어디에도 남지 않는다. 주의: 일부 2차 정리 글이 스킬 폴더 안에 VISION·ARCHITECTURE·RULES.md 같은 하위 파일을 두는 예를 들지만, 이는 정리자가 붙인 예시 수준이지 표준 규격이 아니다. → https://code.claude.com/docs/en/skills
커넥터 — 말 대신 실제 행동을 하게
에이전트가 이슈 트래커를 읽고, 데이터베이스에 질의하고, 스테이징 API를 두드리고, 슬랙(Slack)에 메시지를 남기게 하는 다리다. 답변을 뱉는 데서 끝내지 않고 직접 PR을 열고 티켓을 잇는다. 사실상 표준은 MCP(Model Context Protocol)다 — 앤트로픽(Anthropic)이 2024년 11월 공개한 오픈 프로토콜로, GitHub·Slack·Git·구글 드라이브·Postgres 등의 공식 참조 서버가 함께 제공된다. 슬랙 공식 MCP 서버는 2026년 2월 정식 출시(GA)된 것으로 알려졌다.
특징은 프로토콜이 표준이라 한 번 붙인 커넥터를 여러 에이전트·도구가 공유한다는 점이다. 팁: 커넥터를 붙인다는 것은 곧 에이전트에게 외부 시스템에 대한 쓰기 권한을 준다는 뜻이다. 프로덕션 DB나 배포 API에 바로 연결하기 전에 스테이징·읽기 전용 범위부터 시작하는 편이 안전하다. → https://www.anthropic.com/news/model-context-protocol
서브에이전트=검증 — 채점을 작성자에게서 떼어낼 계측
루프에서 가장 자주 무너지는 칸이다. 오스마니의 진단은 뾰족하다 — "코드를 작성한 모델은 자기 숙제를 채점하기에는 지나치게 관대하다." 그래서 탐색·구현·검증을 별도 에이전트로 갈라, 작성자와 다른 검증 에이전트가 테스트·린트·명세에 대조해 채점하게 한다. 뼈대는 도구별로 포맷이 갈린다 — Claude Code 서브에이전트는 .claude/agents/에 두는 마크다운 파일(YAML 프론트매터 name·description·model·tools + 시스템 프롬프트 본문, 독립 컨텍스트 창 실행)이고, Codex는 TOML(config.toml) 기반 정의를 쓴다.
문제는 검증 에이전트가 '통과/실패'를 기계적으로 가르려면 채점을 실제로 굴릴 계측이 있어야 한다는 것이다. 여기가 평가(eval)·관측(observability) 도구가 들어앉는 자리다. 배포 전 게이트로 채점하는 쪽부터 보자. Promptfoo(MIT)는 YAML로 테스트를 선언해 여러 프롬프트·모델을 한 번에 비교하고, exact match부터 LLM이 LLM을 채점하는 LLM-as-judge, 프롬프트 인젝션·탈옥 입력을 자동 생성해 배포 전에 찾는 레드팀(red teaming) 모듈까지 건다. npx promptfoo로 설치 없이 출발한다. 2026년 3월 OpenAI가 인수했고 발표문은 오픈소스·현행 라이선스 유지를 명시했다. Ragas(Apache-2.0)는 RAG(검색증강생성) 파이프라인을 faithfulness·answer relevance·context precision·context recall 네 지표로 성분별로 쪼갠다 — "답이 왜 틀렸나"를 검색이 엉뚱한 문서를 물어온 문제인지, 문서는 맞는데 생성이 어긋난 문제인지로 가른다. Inspect(MIT)는 영국 AI 보안연구소(UK AISI)·Meridian Labs가 만든 평가 프레임워크로, Dataset·Solver·Scorer 세 부품을 조합해 벤치마크를 직접 설계하고 재현 가능하게 돌린다.
프로덕션에서 무슨 일이 벌어지는지 관측하는 쪽은 결이 다르다. Langfuse(코어 MIT)는 트레이싱·평가·사람 라벨링(휴먼 어노테이션)을 한 스택에 묶고, Docker 셀프호스팅이 성숙해 민감 로그를 제3자 클라우드에 넘기지 않고도 돌릴 수 있다. 2026년 1월 ClickHouse가 인수하며 코어의 MIT 오픈소스와 셀프호스팅 유지를 밝혔다. Phoenix는 OpenTelemetry·OpenInference 같은 개방 표준으로 트레이싱해 특정 SDK에 락인되지 않는 것이 강점이지만, 라이선스가 MIT·Apache 같은 퍼미시브가 아니라 소스는 공개하되 경쟁 SaaS 재판매를 막는 Elastic License 2.0이다 — 계약·컴플라이언스 검토에서 "완전 오픈소스"로 뭉뚱그리면 어긋난다. 셀프호스팅을 감수하기 싫고 트레이싱·실험·채점을 한 제품으로 사고 싶으면 상용인 Braintrust가 대안이다. '평가 우선(eval-first)'을 내세워 회귀 자동화를 즉시 패키징해 주지만, 플랫폼 자체는 상용이고 다언어 SDK만 오픈소스다.
공통 함정 하나. 이 도구들 다수가 LLM-as-judge에 기댄다 — 그 순간 채점 모델 자체가 새로운 검증 대상이 된다. 검증자를 작성자에게서 떼어냈다고 검증이 끝난 게 아니라, 그 검증자를 무엇으로 채점하느냐가 다음 질문으로 남는다. → https://www.promptfoo.dev/ · https://langfuse.com/
메모리 — 대화창 밖에 상태를 남긴다
"모델은 실행과 실행 사이에 모든 것을 잊는다. 그래서 메모리는 컨텍스트가 아니라 디스크에 있어야 한다"(오스마니). 무엇을 시도했고 무엇이 통과했으며 무엇이 남았는지를 대화 밖 매체에 적어, 세션이 끝나도 멈춘 지점부터 이어가게 하는 부품이다. 가장 단순한 구현은 진행·통과·미해결 상태를 적는 마크다운 파일 한 장이다. 팀 단위로 상태를 공유하려면 Linear 같은 이슈 보드를 MCP 커넥터로 연결해 상태를 티켓으로 남긴다 — 커넥터 부품과 메모리 부품이 여기서 맞물린다.
팁: 오스마니가 여섯 부품 중 이것만 다소 따로 강조하는(5+1 구조) 이유가 여기 있다. 앞의 다섯이 아무리 잘 돌아도 상태가 대화창에 갇혀 있으면 루프는 매 세션마다 처음부터 다시 시작한다. 메모리 파일은 '지금 어디까지 왔나'를 사람이 언제든 열어 볼 수 있는 감사(audit) 지점이기도 하다. → https://addyosmani.com/blog/loop-engineering/
저가·롱컨텍스트 모델 — 토큰 청구서를 감당할 엔진 (딥시크 V4)
먼저 오해를 끊어둔다. 이 항목은 여섯 부품 어디에도 속하지 않고, "루프의 토큰 문제는 딥시크(DeepSeek)로 풀라"는 오스마니의 처방도 아니다 — 그의 원문에는 특정 저가 모델 언급이 없다. 다만 루프는 재시도와 서브에이전트로 토큰이 급증하는 구조라, 오스마니 스스로 토큰 비용을 반드시 신경 써야 한다고 강조했다. 그 대응의 일반 원리는 둘이다 — 긴 컨텍스트를 싸게 처리하는 모델을 쓰고, 반복당 예산 상한을 거는 것.
저가·롱컨텍스트라는 조건을 만족하는 실재 사례가 딥시크 V4다(파라미터·가격의 상세 스펙 해부는 '루프 해부' 섹션에 있다). 도구함 관점에서 기억할 한 줄만 옮기면 — 1M(100만) 토큰 컨텍스트를 기본값으로 하고 출력 가격이 백만 토큰당 0.28~0.87달러(공식 페이지 기준)로 낮아, 긴 맥락을 반복해 읽는 루프의 청구서를 눌러준다. 다만 SWE-bench 점수나 "OO배 저렴" 같은 비교치는 공식이 텍스트로 전사하지 않은 미확인 수치이니 도입 근거로 삼지 말라.
팁: 핵심은 특정 모델이 아니라 원리다 — 어떤 모델을 쓰든 반복당 예산 상한을 함께 걸지 않으면 저가 모델도 청구서를 못 막는다. → https://api-docs.deepseek.com/quick_start/pricing
---
큐레이션의 규칙은 처음 그대로다 — 지금 비어 있는 칸부터 채운다. 자동화가 없어 사람이 매번 방아쇠를 당기고 있다면 거기부터, 검증 에이전트가 자기 코드를 후하게 채점하고 있다면 평가 게이트부터, 상태가 대화창에 갇혀 있다면 메모리 파일 한 장부터다. 다만 도구를 다 얹어도 남는 몫이 있다. 오스마니의 결론대로, 루프를 짓되 "그저 실행 버튼을 누르는 사람이 아니라 끝까지 엔지니어로 남을 사람"으로 지어야 한다. 도구는 부품을 채울 뿐, 무엇이 '완료'이고 무엇이 '충분히 좋음'인지는 여전히 사람이 정의한다.
출처
- https://addyosmani.com/blog/loop-engineering/
- https://code.claude.com/docs/en/how-claude-code-works
- https://code.claude.com/docs/en/skills
- https://claude.com/blog/steering-claude-code-skills-hooks-rules-subagents-and-more
- https://openai.com/codex/
- https://developers.openai.com/codex/config-reference
- https://developers.openai.com/codex/guides/agents-md
- https://www.anthropic.com/news/model-context-protocol
- https://flagship.cc/en/blogs/columns/slack-mcp-server-official-release
- https://www.promptfoo.dev/
- https://openai.com/index/openai-to-acquire-promptfoo/
- https://www.cnbc.com/2026/03/09/open-ai-cybersecurity-promptfoo-ai-agents.html
- https://github.com/explodinggradients/ragas
- https://inspect.aisi.org.uk/
- https://langfuse.com/
- https://clickhouse.com/blog/clickhouse-acquires-langfuse-open-source-llm-observability
- https://github.com/Arize-ai/phoenix
- https://www.braintrust.dev/
- https://api-docs.deepseek.com/news/news260424/
- https://api-docs.deepseek.com/quick_start/pricing
- https://www.analyticsvidhya.com/blog/2026/07/loop-engineering-for-ai-agents/