TRENDSHIFT 연간 #23 · 2026-06-09

learn-claude-code 딥다이브
— "에이전트가 아니라 하니스를 만들어라"는 20단계 코스

learn-claude-code는 Claude Code 같은 AI 코딩 에이전트를 파이썬으로 0부터 직접 만들어보는 교육용 레포입니다. 핵심 주장은 도발적입니다 — "지능(agency)은 모델이 학습으로 갖는 것이지 코드로 만드는 게 아니다. 우리가 만드는 건 에이전트가 아니라 하니스(harness)다." s01_agent_loop(137줄, 도구 하나 + 루프 하나)에서 시작해 s20_comprehensive(2,123줄, 모든 메커니즘 통합)까지 한 단계에 메커니즘 하나씩 쌓아 올립니다. 의존성은 단 3개(anthropic·python-dotenv·pyyaml). (shareAI-lab/learn-claude-code · Python · 교육 코드 ~1.2만 줄 + Next.js 강의 사이트)
목차
  1. 프로젝트 한줄 요약
  2. 왜 주목받는가
  3. 기술 스택 전체 지도
  4. 아키텍처 심화 분석
  5. 디렉토리 구조 해부
  6. 학습 포인트
  7. 시스템 요구사항
  8. 직접 해볼 수 있는 실습 과제
  9. 관련 기술 심화 학습 로드맵
  10. 핵심 키워드 사전
  11. 참고 링크

1프로젝트 한줄 요약

한 문장으로 — 이게 뭐 하는 물건인가

"Claude Code 같은 코딩 에이전트가 내부에서 어떻게 동작하는지를, 파이썬 코드 20단계로 한 메커니즘씩 직접 만들어보며 배우는 교과서"입니다. 완성된 도구를 쓰는 법이 아니라 그 도구를 어떻게 짜는가를 가르칩니다. 각 단계는 독립 실행되는 code.py 하나 + 3개 언어(영/중/일) README + 다이어그램으로 이뤄져 있습니다.

이 레포의 정체성은 코드보다 관점에 있습니다. "에이전트를 만든다"는 말은 사실 둘 중 하나라는 것 — ①모델을 학습시키거나(앤트로픽·딥마인드가 하는 일), ②하니스를 짠다(우리 대부분이 하는 일). 이 레포는 ②, 즉 "모델에게 손·눈·작업공간을 쥐여주는 골격 코드"를 만드는 법을 가르칩니다.

핵심 비유

"운전 실력은 운전자(모델)에게 있다. 우리는 자동차(하니스)를 만든다."

아무리 좋은 차를 만들어도 운전 실력 자체가 생기진 않습니다. 반대로 뛰어난 운전자도 차가 없으면 도로를 못 달립니다. 지능은 모델이 학습으로 갖춘 것이고, 하니스는 그 지능이 특정 환경(코딩·터미널)에서 실제로 일하게 해주는 탈것입니다.

그래서 이 코스의 모든 단계에서 중심의 '루프'는 절대 바뀌지 않습니다. 루프는 운전자(모델)의 몫이기 때문입니다. 우리가 매 단계 덧붙이는 건 도구·권한·기억·협업 같은 차의 부품(하니스)뿐입니다. "루프는 상수, 메커니즘은 변수"가 이 레포를 관통하는 한 문장입니다.

용어
하니스 (Harness)
모델이 특정 환경에서 일하는 데 필요한 모든 골격 코드. 레포의 정의는 Harness = 도구(Tools) + 지식(Knowledge) + 관찰(Observation) + 행동 인터페이스(Action) + 권한(Permissions)입니다. 모델은 결정하고, 하니스는 실행합니다.
용어
에이전트 루프 (Agent Loop)
"모델에게 도구 목록과 함께 질문을 보냄 → 모델이 tool_use로 도구 호출을 요청 → 코드가 실제로 실행해 결과를 되돌려줌 → 모델이 '그만'(stop_reason ≠ tool_use)이라 할 때까지 반복"하는 while 루프. 코딩 에이전트의 전부가 이 한 패턴에 들어 있습니다.

2왜 주목받는가

트렌딩에 오른 이유와 기존 학습 자료 대비 차별점

① "에이전트 = 모델 + 하니스"라는 명쾌한 프레이밍

요즘 "AI 에이전트"라는 말은 노코드 워크플로우 빌더·프롬프트 체인 같은 것에 남발됩니다. 이 레포는 그걸 정면으로 "if-else와 노드 그래프로 LLM 호출을 엮은 건 에이전트가 아니라 루브 골드버그 장치"라고 비판하며, "지능은 학습되는 것이지 코딩되는 게 아니다"라는 선명한 테제를 세웁니다. 이 관점 정리만으로도 많은 개발자가 "아하"를 얻습니다.

② "한 단계에 한 메커니즘"이라는 완벽한 학습 곡선

137줄짜리 s01에서 시작해 단계마다 정확히 하나의 메커니즘(권한→훅→할일목록→서브에이전트→압축→기억→…)을 더합니다. 매 단계 표어(motto)가 붙어 있어 "이번 장에서 뭘 배우는지"가 한 줄로 잡힙니다. 난이도가 계단처럼 완만하게 올라가 중도 포기가 적습니다.

③ "진짜 돌아가는 최소 코드"라서 읽힌다

상용 에이전트 소스는 너무 커서 입문자가 길을 잃습니다. 이 레포는 의존성 3개, 단계당 수백 줄로 실제로 실행되는 가장 작은 버전을 보여줍니다. "프로덕션 디테일(완전한 훅 버스·OAuth·MCP 트랜스포트)은 일부러 단순화했다"고 범위를 명시해, 핵심에만 집중하게 합니다.

④ 멀티 프로바이더 + 다국어 + 웹 강의

Anthropic뿐 아니라 MiniMax·GLM·Kimi·DeepSeek 등 Anthropic 호환 API를 ANTHROPIC_BASE_URL 한 줄로 갈아끼울 수 있습니다. README는 영·중·일 3개 언어, 별도 Next.js 강의 사이트까지 갖춰 접근성이 높습니다.

기존 학습 방식과의 비교

learn-claude-code공식 SDK 튜토리얼상용 에이전트 소스블로그 글
학습 방식직접 빌드(0→1)API 사용법리버스 엔지니어링읽기
범위하니스 전체 20개기본 호출전부(과함)단편적
실행 가능성단계마다 실행가능무겁다대개 불가
난이도 곡선계단식 완만평탄절벽들쭉날쭉
관점/철학강함(테제 있음)없음없음다양
주의 / 오해 금지
"프로덕션 Claude Code의 내부 구현"이 아니다

이 레포는 교육용 재현(teaching implementation)입니다. 예컨대 JSONL 메일박스 팀 협업 프로토콜은 "특정 상용 내부 구현을 주장하는 게 아니라 가르치기 위한 버전"이라고 레포가 못박습니다. 권한 거버넌스·세션 resume/fork·MCP 트랜스포트/OAuth 등은 의도적으로 단순화돼 있습니다. "원리를 배우는 지도"이지 "그대로 베껴 쓰는 프로덕션 코드"가 아닙니다.

3기술 스택 전체 지도

무엇으로 만들어졌나 — 교육 코드는 극단적으로 가볍다

이 레포는 두 부분으로 나뉩니다. ① 핵심 교육 코드는 의존성 단 3개의 순수 파이썬이고, ② 웹 강의 사이트는 별도의 Next.js 앱입니다. 학습의 본체는 ①이고, ②는 그걸 브라우저로 보기 좋게 만든 포장입니다.

핵심 교육 코드 (Python)

구성요소역할
Python 3전체 교육 코드. 표준 라이브러리(subprocess·threading·pathlib·ast·json) 위주
anthropic (≥0.25)LLM 호출 SDK. client.messages.create(model, system, messages, tools) 하나가 루프의 심장
python-dotenv.env에서 ANTHROPIC_API_KEY·MODEL_ID·ANTHROPIC_BASE_URL 로드
pyyaml스킬·태스크 메타데이터(YAML 프론트매터) 파싱 — 후반 단계에서 사용
readline (표준, 선택)REPL 입력 편의. 중국어 입력 백스페이스 문제까지 패치

멀티 프로바이더 지원 (Anthropic 호환 API)

프로바이더MODEL_ID 예시전환 방법
Anthropicclaude-sonnet-4-6기본값
MiniMaxMiniMax-M2.5ANTHROPIC_BASE_URL만 교체
GLM (Zhipu)glm-5BASE_URL 교체
Kimi (Moonshot)kimi-k2.5BASE_URL 교체
DeepSeekdeepseek-chatBASE_URL 교체

웹 강의 사이트 (web/, 레거시 12강 트랙)

구성요소역할
Next.js + React 19 + TypeScript강의 사이트 프레임워크. Vercel 배포(vercel.json)
Tailwind CSS (v4 postcss)유틸리티 기반 스타일
framer-motion / lucide-react애니메이션 / 아이콘
unified · remark · rehype마크다운 → HTML 렌더 파이프라인(remark-gfm·rehype-highlight·rehype-raw)
diff단계 간 코드 변화를 diff로 시각화
한눈에 비유

요리 교실의 '레시피 카드'(파이썬 코드)와 '온라인 강의 영상'(Next.js 사이트)의 관계. 레시피 카드만 있어도 요리는 다 배울 수 있습니다. 웹사이트는 그 카드를 보기 좋게 넘겨주고 단계별 차이를 하이라이트해주는 편의일 뿐, 본질은 카드(code.py 20장)에 있습니다.

4아키텍처 심화 분석

바뀌지 않는 루프 + 그 위에 쌓는 메커니즘들

전부의 시작 — 변하지 않는 에이전트 루프

20단계 내내 절대 바뀌지 않는 단 하나의 코드입니다. 이걸 손에 익히면 나머지는 전부 이 루프 바깥에 붙는 장식입니다.

# s01 — 코딩 에이전트의 전부
def agent_loop(messages):
    while True:
        response = client.messages.create(
            model=MODEL, system=SYSTEM,
            messages=messages, tools=TOOLS)
        messages.append({"role":"assistant","content":response.content})

        # 모델이 도구를 안 부르면 끝
        if response.stop_reason != "tool_use":
            return

        # 도구 호출을 실제로 실행해 결과를 모음
        results = []
        for block in response.content:
            if block.type == "tool_use":
                output = TOOL_HANDLERS[block.name](**block.input)
                results.append({"type":"tool_result",
                    "tool_use_id":block.id, "content":output})

        # 결과를 되돌려주고 루프 계속
        messages.append({"role":"user","content":results})
변하지 않는 코어 루프 (s01에서 확정) ──────────────────────────────── 사용자 ──> messages[] ──> LLM ──> response │ stop_reason == "tool_use"? / \ 예 아니오 │ │ 도구 실행 텍스트 반환(종료) 결과 append 루프 복귀 ───────────────> messages[] 모델이 "언제 도구를 부르고 언제 멈출지"를 결정한다. 코드는 모델이 시키는 것을 실행할 뿐이다.

설계 패턴 ① — "루프는 건드리지 말고 디스패치 맵만 키운다"

s02의 표어가 "도구를 추가한다 = 핸들러 하나를 추가한다"입니다. 도구가 1개에서 여러 개로 늘어도 루프 코드는 그대로고, TOOL_HANDLERS라는 이름→함수 딕셔너리(디스패치 맵)에 항목만 등록합니다. read·write·edit·bash·glob·grep이 전부 이렇게 붙습니다. "개방-폐쇄 원칙"의 교과서적 사례입니다.

설계 패턴 ② — "루프를 다시 쓰지 말고 루프 둘레에 훅을 건다"

s04의 표어 "Hook around the loop, never rewrite the loop". 도구 실행 전/후에 끼어드는 확장점(훅)을 두어, 권한 검사·로깅·정책 적용 같은 걸 핵심 루프를 수정하지 않고 덧붙입니다. 권한(s03)·훅(s04)이 바로 이 "둘레에 거는" 계층입니다.

설계 패턴 ③ — "경계를 먼저, 자유는 그다음"

s03 권한의 표어 "Set boundaries first, then grant freedom". 도구를 실행하기 전에 "이건 그냥 실행 / 이건 차단 / 이건 사용자 승인 필요"를 분류합니다. s01의 가장 단순한 버전조차 rm -rf /·sudo·shutdown 같은 위험 명령을 블랙리스트로 막는 것에서 출발합니다.

설계 패턴 ④ — "컨텍스트는 늘 가득 찬다. 비우는 법을 마련하라"

대화가 길어지면 토큰 한도에 부딪힙니다. s08(컨텍스트 압축)·s09(기억)은 오래된 히스토리를 요약·선별·통합해 자리를 비웁니다. 이 덕분에 "사실상 무한 세션"이 가능해집니다. 서브에이전트(s06)도 곁가지 작업을 격리된 컨텍스트에서 돌려 결과만 가져오므로, 메인 대화가 잡음으로 오염되지 않습니다.

20단계가 쌓는 메커니즘 전체 지도

그룹단계한 줄 표어
행동하게s01 루프루프 하나 + bash 하나 = 에이전트 하나
s02 도구 사용도구 추가 = 핸들러 추가
s03 권한경계 먼저, 자유는 그다음
s04 훅루프를 다시 쓰지 말고 둘레에 걸어라
복잡한 일s05 TodoWrite계획 없는 에이전트는 표류한다
s06 서브에이전트큰 일은 쪼개고, 결과만 가져온다
s08 컨텍스트 압축가득 차기 전에 비울 방법을 둬라
기억·복구s09 메모리중요한 건 기억, 나머지는 망각
s10 시스템 프롬프트하드코딩 말고 런타임에 조립
s11 에러 복구에러는 끝이 아니라 재시도의 시작
긴 작업s12 태스크 시스템목표를 쪼개 디스크에 영속
s13 백그라운드느린 일은 뒤로, 에이전트는 계속 생각
s14 크론 스케줄러사람 없이 시간 맞춰 발화
협업s15 에이전트 팀혼자 벅차면 동료에게 위임
s16 팀 프로토콜고정된 요청-응답 형식으로 소통
s17 자율 에이전트리더 없이 게시판에서 일을 직접 집는다
s18 워크트리 격리각자 자기 디렉터리에서, 간섭 없이
확장·통합s07 스킬 로딩지식은 미리 말고 필요할 때 펼친다
s19 MCP 플러그인능력이 부족하면 외부 도구를 꽂는다
s20 종합많은 메커니즘, 하나의 루프

5디렉토리 구조 해부

어디에 무엇이 있나 — 단계 하나당 폴더 하나
learn-claude-code/ ├── README.md / README-zh.md / README-ja.md # 테제 + 20강 커리큘럼 (3개 언어) ├── requirements.txt anthropic·python-dotenv·pyyaml (3개) ├── .env.example API 키·모델·프로바이더별 BASE_URL 예시 ├── s01_agent_loop/ # 단계 하나 = 독립 폴더 하나 │ ├── code.py 실행 가능한 그 단계 코드 (137줄) │ ├── README.md/.en/.ja 단계별 서사형 설명 (3개 언어) │ └── images/*.svg 그 단계 다이어그램 ├── s02_tool_use/ … s20_comprehensive/ # 같은 패턴 × 20 │ (s01 137줄 → s20 2,123줄로 점증, 합계 ~1.2만 줄) ├── skills/ # Claude Code 스킬 예시 (실물 SKILL.md) │ ├── agent-builder/ code-review/ │ ├── mcp-builder/ pdf/ ├── agents/ # 레거시 12강 트랙의 파이썬 (s_full.py 포함) ├── web/ # Next.js 강의 사이트 (레거시 12강용) │ ├── src/ public/ scripts/ │ ├── package.json next·react·tailwind·unified/remark/rehype·diff │ └── vercel.json 배포 설정 ├── docs/ (en/ ja/ zh/) 레거시 강의 마크다운 └── tests/ 교육 코드 검증 테스트
읽을 때 우선순위
처음 연다면 이 순서로

1) README.md — "에이전트=모델+하니스" 테제와 전체 커리큘럼이 다 있어 최고의 입문서. 2) s01_agent_loop/code.py — 137줄, 모든 것의 씨앗인 루프. 3) s02~s04 — 도구·권한·훅으로 "루프 둘레에 붙이기"를 체득. 4) 관심 메커니즘(예: 컨텍스트 압축 s08, 서브에이전트 s06)으로 점프. 5) s20_comprehensive — 전부가 한 루프로 합쳐진 모습.

주의
두 개의 트랙 — 신규 20강 vs 레거시 12강
루트의 s01~s20새 정본(20강)이고, docs/·agents/·web/는 옛 12강 트랙입니다. 둘은 장 번호가 다르므로 섞어 읽으면 안 됩니다. 지금 시작한다면 루트 s01~s20을 따르세요. (README에 12강→20강 매핑 표가 있습니다.)

6학습 포인트

이 레포에서 기술별로 무엇을 훔쳐올 수 있나

에이전트 아키텍처 — "루프는 모델 것, 메커니즘은 하니스 것"

배울 것: 코딩 에이전트의 본질이 tool_use 루프 하나라는 깨달음. 그리고 그 위에 권한·훅·기억·협업을 루프를 수정하지 않고 얹는 법. 이 분리 감각은 어떤 도메인의 에이전트를 짜든 그대로 적용됩니다.

실습 아이디어: s01을 복제해 bash 대신 "내 도메인 도구 하나"(예: HTTP 요청, DB 쿼리)만 가진 50줄짜리 미니 에이전트를 만들어보기.

도구 디자인 — atomic·composable·잘 설명된

배울 것: 도구는 작고(atomic), 조합 가능하고(composable), 설명(description)이 명확해야 모델이 잘 씁니다. input_schema를 어떻게 쓰느냐가 모델의 도구 사용 정확도를 좌우한다는 감각을 s02에서 얻습니다.

컨텍스트 엔지니어링 — 압축·기억·서브에이전트

배울 것: LLM의 진짜 병목은 컨텍스트 윈도우입니다. s08(압축)·s09(선별/추출/통합 3단 기억)·s06(서브에이전트 격리)은 "긴 작업에서 어떻게 깨끗한 기억을 유지하는가"라는, 실무에서 가장 중요한 기술을 다룹니다.

권한·보안 — 경계를 코드로

배울 것: 위험 명령 차단(블랙리스트)에서 시작해, "허용/차단/승인필요" 3분류, 도구 실행 전 검사(훅)까지. 자율 에이전트에게 손을 쥐여줄 때 어디까지 자유를 주고 어디서 멈출지를 코드로 표현하는 법을 배웁니다.

멀티 에이전트 협업 — 메일박스·프로토콜·자기조직화

배울 것: s15~s18의 비동기 메일박스(JSONL), 고정 요청-응답 프로토콜, "게시판에서 일을 직접 집는" 자율 분업, 워크트리로 디렉터리를 격리한 병렬 실행. 여러 에이전트를 충돌 없이 굴리는 패턴의 최소 구현입니다.

MCP·스킬 로딩 — 능력의 동적 확장

배울 것: s07(스킬을 미리 다 싣지 않고 필요할 때 펼치기)과 s19(MCP로 외부 도구를 같은 도구 풀에 꽂기)는 "에이전트의 능력을 어떻게 무한 확장하는가"를 보여줍니다. 토큰을 아끼는 on-demand 로딩이 핵심.

7시스템 요구사항

무엇이 있어야 돌아가나
항목요구사항
런타임Python 3 + pip install anthropic python-dotenv pyyaml
API 키.envANTHROPIC_API_KEYMODEL_ID(필수)
대체 프로바이더ANTHROPIC_BASE_URL로 MiniMax·GLM·Kimi·DeepSeek 등 호환 API 사용 가능
실행 방법단계별 독립 실행: python s01_agent_loop/code.py
웹 사이트(선택)web/에서 Node.js + npm install 후 Next.js dev 서버
주의에이전트가 bash로 실제 명령을 실행하므로, 격리된 디렉터리/VM에서 테스트 권장
안전 경고
교육 코드의 위험 명령 차단은 '최소한'이다

s01의 차단 목록은 rm -rf /·sudo·shutdown 정도의 문자열 블랙리스트에 불과합니다. 우회가 얼마든지 가능하므로, 실제로 모델이 bash를 돌리는 단계는 중요 파일이 없는 임시 폴더나 컨테이너에서 실행하세요. 후반 단계(s03 권한, s18 워크트리)에서 격리가 점차 강화되지만 여전히 교육용 수준입니다.

8직접 해볼 수 있는 실습 과제

난이도별 — 직접 짜봐야 이해된다
난이도 ★ — 입문

1. s01 띄우고 "도구는 bash 하나뿐"을 체감하기

.env를 채우고 python s01_agent_loop/code.py를 실행해, "이 폴더의 .py 파일 개수를 세줘" 같은 요청을 줘보세요. 모델이 bash 하나로 어떻게 문제를 푸는지, 루프가 몇 번 도는지 출력으로 관찰합니다.

난이도 ★ — 입문

2. s01에 도구 하나 추가해 s02 직접 재현하기

s01 코드에 read_file 도구를 추가해보세요. TOOLS 리스트에 정의를 더하고 TOOL_HANDLERS에 핸들러만 등록하면 됩니다. 루프 코드는 한 줄도 안 바뀐다는 걸 직접 확인하는 게 핵심입니다.

난이도 ★★ — 중급

3. 권한 훅을 끼워 "승인 필요" 경로 만들기

s03/s04를 참고해, 특정 명령(git push·파일 삭제 등)에는 실행 전 input("승인? [y/N]")으로 사람 확인을 받게 하세요. "경계를 먼저, 자유는 그다음"을 코드로 구현하는 연습입니다.

난이도 ★★ — 중급

4. 다른 프로바이더로 갈아끼우기

.envANTHROPIC_BASE_URL·MODEL_ID만 바꿔 DeepSeek이나 GLM 등 호환 API로 같은 s01을 돌려보세요. "하니스는 그대로, 운전자만 교체"가 실제로 되는지 확인합니다.

난이도 ★★★ — 고급

5. 컨텍스트 압축을 내 에이전트에 이식하기

s08의 압축 전략을 읽고, 내가 만든 미니 에이전트(과제 1·2)에 "메시지가 N개를 넘으면 오래된 것을 요약으로 대체"하는 로직을 붙이세요. 토큰 사용량이 어떻게 달라지는지 측정해보면 컨텍스트 엔지니어링의 효과를 체감합니다.

난이도 ★★★ — 고급

6. 두 에이전트를 메일박스로 협업시키기

s15/s16을 참고해, "기획자 에이전트"가 작업을 쪼개 JSONL 메일박스에 넣고 "실행자 에이전트"가 집어 처리하는 최소 2-에이전트 시스템을 만들어보세요. 고정 요청-응답 형식이 왜 필요한지 직접 부딪혀 깨닫게 됩니다.

9관련 기술 심화 학습 로드맵

이 레포를 제대로 소화하기 위한 4주 코스

1주차 — 코어 루프와 도구

s01~s04를 정독·실행합니다. 목표: 루프를 손으로 다시 쓸 수 있을 만큼 외우고, 도구를 디스패치 맵에 등록하는 패턴과 권한/훅을 "루프 둘레에 거는" 감각을 체득. Anthropic Messages API의 tool_use/tool_result 구조도 함께 익히세요.

2주차 — 복잡한 일과 컨텍스트

s05(계획)·s06(서브에이전트)·s08(압축)·s09(기억)을 봅니다. 목표: 컨텍스트 엔지니어링의 핵심 — 언제 무엇을 기억하고, 무엇을 격리하고, 무엇을 압축하는가 — 을 이해하고 내 에이전트에 하나라도 이식하기.

3주차 — 긴 작업과 멀티 에이전트

s11(에러 복구)·s12(태스크 그래프)·s13(백그라운드)·s14(크론)과 s15~s18(팀·프로토콜·자율·워크트리)을 봅니다. 목표: 파일 기반 태스크 영속과 비동기 협업의 최소 구조를 파악. 동시성(threading)·격리(worktree) 개념도 함께.

4주차 — 확장과 종합

s07(스킬 로딩)·s19(MCP)·s20(종합)을 봅니다. 목표: on-demand 능력 확장과 MCP 연결을 이해하고, s20에서 "모든 메커니즘이 하나의 루프로 어떻게 다시 합쳐지는지" 전체 그림을 완성. 여기까지 오면 자기만의 도메인 하니스를 설계할 수 있습니다.

10핵심 키워드 사전

이 레포에 등장하는 주요 용어 빠른 정리
용어
Agency (에이전시 / 행위 능력)
지각·추론·행동하는 능력. 레포의 핵심 주장은 "agency는 모델 학습에서 오지 코드 오케스트레이션에서 오지 않는다"입니다. DQN·AlphaStar·LLM 모두 같은 구조 — 학습된 모델 + 환경.
용어
stop_reason == "tool_use"
모델 응답에 "도구를 부르고 싶다"는 신호. 이게 뜨면 하니스가 도구를 실행하고 결과를 되돌려 루프를 계속합니다. 이 값이 아니면(텍스트로 끝나면) 루프 종료. 에이전트 루프의 분기점.
용어
디스패치 맵 (Tool Handlers)
{"bash": run_bash, "read": run_read, …}처럼 도구 이름 → 실행 함수를 잇는 딕셔너리. 도구를 늘릴 때 루프 대신 이 맵에만 항목을 추가합니다. 확장의 단일 지점.
용어
서브에이전트 (Subagent)
메인 에이전트가 곁가지 작업을 위임하는 별도 에이전트. 깨끗한(격리된) 컨텍스트에서 일하고 결과만 메인에 돌려줍니다. 메인 대화가 잡음으로 오염되는 걸 막는 핵심 기법(s06).
용어
컨텍스트 압축 (Context Compaction)
대화 히스토리가 토큰 한도에 차기 전에 오래된 부분을 요약·제거해 자리를 비우는 것. 이 덕분에 "사실상 무한 세션"이 가능(s08). 다층 전략(요약·선별·통합)으로 구현됩니다.
용어
스킬 (Skill) / on-demand 로딩
에이전트에게 주는 도메인 지식 묶음(SKILL.md). 전부 미리 싣지 않고 먼저 목록만 보여주고 필요할 때 펼치는 방식으로 토큰을 아낍니다(s07). 레포의 skills/에 agent-builder·code-review·mcp-builder·pdf 예시가 있습니다.
용어
MCP (Model Context Protocol)
외부 도구·데이터 소스를 표준 방식으로 에이전트에 연결하는 프로토콜. s19에서 MCP로 가져온 외부 도구를 내장 도구와 같은 도구 풀에 합칩니다. "능력이 부족하면 꽂는다."
용어
워크트리 격리 (Worktree Isolation)
git worktree를 이용해 각 에이전트/작업이 자기만의 디렉터리에서 일하게 만드는 것. 여러 에이전트가 같은 파일을 동시에 건드려 충돌하는 걸 막습니다(s18). 작업은 ID로, 디렉터리는 worktree로 묶입니다.
용어
메일박스 프로토콜 (JSONL Mailbox)
에이전트 간 비동기 통신을 JSONL 파일에 메시지를 쌓는 방식으로 구현한 것(s15/s16). 교육용 구현이며 특정 상용 내부를 주장하지 않습니다. 고정된 요청-응답 형식이 협업의 안정성을 만듭니다.
용어
ANTHROPIC_BASE_URL
Anthropic 호환 API의 엔드포인트를 가리키는 환경변수. 이 한 줄만 바꾸면 같은 코드로 MiniMax·GLM·Kimi·DeepSeek 등을 호출할 수 있습니다. "하니스는 그대로, 모델만 교체"를 가능케 하는 스위치.

11참고 링크

더 깊이 파고들 때
링크설명
GitHub 저장소소스 전체. README.mds01~s20이 본체
TrendShift 페이지트렌딩 추이(연간 23위, 2026-06-09)
Anthropic Messages APItool_use/tool_result 구조의 공식 문서
Tool use 개요도구 정의·스키마·실행 루프 공식 가이드
Model Context ProtocolMCP 공식 사이트(s19의 배경)
Claude Code 스킬 문서SKILL.md 동작 원리(s07의 배경)
DQN (Nature, 2015)"agency는 학습된다"의 역사적 근거로 README가 인용
git worktree 문서s18 워크트리 격리의 기반 기능