TrendShift 딥다이브 · 2026-07-17 · Daily #5

bojieli/ai-agent-book 딥다이브
— 한 권으로 읽는 AI Agent 설계·엔지니어링 전서

ai-agent-book은 중국어 기술서 《深入理解 AI Agent:设计原理与工程实践》(직역: AI Agent 심층 이해 — 설계 원리와 엔지니어링 실전)의 공식 오픈소스 저장소다. 책의 전문(마크다운), 13MB짜리 컴파일된 PDF, 그리고 1장부터 9장까지 실제로 돌아가는 예제 코드가 한 저장소에 모두 담겨 있다. 저자는 음성 AI 에이전트 'Pine'을 만든 Pine AI의 수석 과학자 李博杰(Bojie Li). 이 책이 처음부터 끝까지 밀고 나가는 단 하나의 공식은 Agent = LLM + 컨텍스트(Context) + 도구(Tools)다. 컨텍스트 엔지니어링·메모리/RAG·도구/MCP·코딩 에이전트·평가·후속훈련·자기진화·멀티모달·멀티에이전트까지 10개 장이 이 공식을 축으로 펼쳐진다. 무엇보다 예제 코드가 LangChain 같은 프레임워크에 기대지 않고 raw SDK로 밑바닥부터 짜여 있어, "에이전트가 실제로 어떻게 도는가"를 뜯어 배우기에 좋다. 이 문서는 저장소를 소스까지 클론해 "여기서 무엇을 배울 수 있는가"를 정리한다. (저장소: bojieli/ai-agent-book · 책 PDF v1.0 · Python 3.8+ 예제 494개 · 루트 라이선스 없음(서브프로젝트별) · 최신 커밋 2026-07-17 · TrendShift Daily #5 · #AI agent #Programming examples)
목차
  1. 프로젝트 한 줄 요약
  2. 왜 지금 주목받는가
  3. 기술 스택 전체 지도
  4. 아키텍처 심화 분석 — 책의 뼈대와 코드의 뼈대
  5. 디렉토리 · 챕터 구조 해부
  6. 학습 포인트
  7. 시스템 · 실행 요구사항
  8. 직접 해볼 수 있는 실습 과제
  9. 관련 기술 심화 학습 로드맵
  10. 핵심 키워드 사전
  11. 참고 링크

1프로젝트 한 줄 요약

정체부터 명확히 — 이건 라이브러리가 아니라 "책 + 실습 코드"가 통째로 든 교재 저장소

ai-agent-book한 권의 기술서와 그 책의 장(章)별 실습 코드를 함께 공개한 학습용 저장소다. 흔히 트렌딩에 오르는 "무슨무슨 프레임워크/툴"이 아니라, 읽고 따라 짜면서 배우는 교재에 가깝다. 저장소를 열면 세 덩어리가 보인다 — ① book/ 안의 책 전문(마크다운 10개 장 + 引言/后记)과 PDF, ② chapter1/~chapter9/의 실행 가능한 파이썬 예제, ③ 저자가 집필·코딩한 과정을 그대로 남긴 cursor-chats/ 로그 269개.

책의 핵심 주장은 시작부터 못 박혀 있다. "모델이 곧 에이전트다(模型即 Agent)" — 즉 요즘의 강력한 AI 에이전트는 복잡한 규칙 엔진이 아니라, 강력한 LLM에 알맞은 컨텍스트를 넣어 주고 쓸 도구를 쥐여 주면 스스로 판단하며 일을 해낸다는 관점이다. 그래서 책 전체를 관통하는 공식이 Agent = LLM + 컨텍스트 + 도구다. 나머지 모든 장은 이 세 항을 하나씩 깊이 파고든다 — 컨텍스트를 어떻게 채우고(2·3장), 도구를 어떻게 설계하고(4·5장), 이 조합을 어떻게 평가·훈련·진화시키는가(6·7·8장), 그리고 어떻게 멀티모달·멀티에이전트로 확장하는가(9·10장).

핵심 용어
Harness(하네스) 엔지니어링 · "모델을 감싸는 마구(馬具)"
하네스는 원래 말·낙하산에 채우는 "마구·장비"를 뜻한다. AI에서 하네스란 LLM(모델) 그 자체를 뺀, 모델을 감싸 실제로 일하게 만드는 모든 코드를 말한다 — 프롬프트를 조립하고, 도구를 실행하고, 결과를 되먹이고, 대화 이력을 관리하는 껍데기 전부다. 이 책의 관점은 명확하다. 모델이 점점 똑똑해질수록 "규칙을 얼마나 잘 짜느냐"보다 "모델에게 무엇을 보여주고(컨텍스트) 무슨 손발을 쥐여주느냐(도구)"가 에이전트 품질을 좌우한다. 그래서 이 책은 프롬프트·컨텍스트·도구·평가 같은 하네스 엔지니어링에 대부분의 지면을 쏟는다.
핵심 용어
저자 李博杰(Bojie Li)와 'Pine' · 이 책의 출처
저자는 자신을 "Pine AI의 수석 과학자(首席科学家)"로 소개한다. Pine은 요금 협상·환불·구독 취소처럼 돈이 걸린 장기 실무를 사람 대신 전화로 처리하는 음성 AI 에이전트다. 책 서문에 따르면 이 책은 2025년 8~10월 图灵(투링) 출판사의 《AI Agent 实战营》 강의를 확장한 것이며, 흥미롭게도 저자는 Pine의 음성 에이전트에게 말로 지시해 협업하며("whisper coding") 집필했다고 밝힌다. 즉 이 책은 "에이전트를 만드는 사람이, 자기 에이전트와 함께 쓴 에이전트 교과서"다. (화웨이·중국과기대 등 흔히 알려진 이력은 이 저장소 안에서는 확인되지 않으니, 여기서는 저장소가 밝힌 사실만 적는다.)
한 문장 비유

"AI 에이전트를 짓는 '요리 학교 교재' — 레시피(책)와 실습 주방(코드)이 같은 상자에 들어 있다"

보통의 트렌딩 저장소가 "완성된 전자레인지(툴)"라면, ai-agent-book은 요리를 원리부터 가르치는 학교에 가깝다. 왜 이 재료를 넣는지(컨텍스트), 어떤 칼을 언제 쓰는지(도구), 맛을 어떻게 평가하는지(평가), 실력을 어떻게 늘리는지(후속훈련)를 장별로 설명하고, 각 장 옆에 실제로 불을 켤 수 있는 실습 주방(파이썬 코드)을 붙여 놨다.

그리고 이 학교의 특이점은 "기성 소스(프레임워크)를 안 쓰고 손으로 다 짜 보게" 한다는 것이다. LangChain으로 5줄 만에 끝낼 것을 raw SDK로 펼쳐 보여, "에이전트 루프가 사실 별게 아니라 while 반복문 하나"임을 눈으로 깨닫게 한다(§3·§4).

2왜 지금 주목받는가

TrendShift Daily #5 · #AI agent #Programming examples — "에이전트가 붐인 시대에, 프레임워크 없이 원리로 파고드는 중국어 전서"

2026년 GitHub 트렌딩은 사실상 "에이전트·스킬 백화점"이다. 끝없이 쏟아지는 Claude Code 스킬 팩, 코딩 CLI, MCP 서버 사이에서 ai-agent-book이 하루 만에 TrendShift Daily #5(모멘텀 659)로 올라온 이유는 결이 다르기 때문이다. 대부분이 "쓸 도구"를 내놓을 때, 이 저장소는 "왜·어떻게 도는지"를 한 권으로 설명하는 교재다. 특히 중화권 개발자 사이에서 "에이전트를 프레임워크 뒤에 숨기지 않고 원리로 이해하고 싶다"는 수요가 이 책을 밀어 올렸다.

포인트내용
정체기술서 《深入理解 AI Agent:设计原理与工程实践》의 공식 오픈소스 저장소. 책 전문(마크다운) + PDF(v1.0, 13.3MB) + 1~9장 실습 코드.
중심 사상"모델이 곧 에이전트" + 공식 Agent = LLM + 컨텍스트 + 도구. 10개 장이 모두 이 축을 판다.
차별점예제가 LangChain·LlamaIndex를 거의 안 씀(langchain 언급 3파일, LlamaIndex 0). openai·anthropic·mcp raw SDK로 밑바닥 구현 → 원리 학습에 최적.
범위입문·컨텍스트·메모리/RAG·도구/MCP·코딩에이전트·평가·후속훈련(RL)·자기진화·음성/멀티모달·멀티에이전트까지 에이전트 전 주기를 한 권에.
최신성2026년 중반 집필 — 본문·그림에 Kimi K3, GPT-5.6, Claude Opus 4.8 같은 최신 모델명이 등장. 최신 커밋도 2026-07-17로 활발히 갱신 중.

주목 포인트 1 — "프레임워크 없이" 손으로 짜 보게 하는 교육 철학

가장 큰 차별점. 에이전트 입문 자료 대부분은 LangChain·LlamaIndex·AutoGen 같은 프레임워크로 "10줄이면 끝!"을 보여준다. 편하지만, 정작 "안에서 무슨 일이 벌어지는지"는 블랙박스로 남는다. 이 책의 1장 예제(chapter1/context/agent.py)는 정반대다 — OpenAI 호환 SDK로 모델을 부르고, 응답에서 도구 호출을 직접 파싱해 실행하고, 결과를 {"role":"tool"} 메시지로 되붙이는 에이전트 루프를 while 문 하나로 펼쳐 보인다. "에이전트가 마법이 아니라 반복문"이라는 깨달음을 주는 방식이다.

주목 포인트 2 — "설계 원리"만이 아니라 "엔지니어링 실전"까지

제목의 뒷부분 工程实践(엔지니어링 실전)이 허명이 아니다. 이 책은 개념 설명에서 그치지 않고, 실무에서 진짜 아픈 문제들을 코드로 다룬다 — KV Cache를 안 깨는 프롬프트 설계(2장), BM25·BGE-M3 임베딩·ANN(annoy/hnswlib)을 직접 붙인 RAG 파이프라인(3장), MCP 서버·비동기 이벤트 구동 에이전트(4장), Claude Code를 통째로 흉내 낸 코딩 에이전트(5장), 그리고 verl·DAPO로 돌리는 강화학습 후속훈련(7장)까지. "논문 요약"이 아니라 "돌아가는 코드"로 배운다.

주목 포인트 3 — 저자가 자기 에이전트로 쓴 "메타적인" 책

저장소에는 cursor-chats/ 폴더에 저자가 집필·코딩하며 나눈 대화 로그 269개가 통째로 들어 있다. 즉 "에이전트를 만드는 사람이, 에이전트(Cursor·Pine)와 협업해 쓴 에이전트 책"이라는 메타적 성격이 그대로 노출된다. 이 로그 자체가 "실무자가 AI와 어떻게 페어링해 대형 프로젝트를 굴리는가"의 생생한 사례집이 된다(단, 여기엔 저자의 로컬 경로 같은 사적 흔적도 남아 있다 — §11 주의).

중요 · 오해 방지 — "책은 10장인데 코드는 9장까지"
라이브러리로 착각 말 것 + 챕터10 코드는 저장소에 없다

① 이건 pip install로 쓰는 패키지가 아니라 교재다. 각 장 폴더를 열어 그 장의 실습을 개별로 돌리는 구조다. ② 책 본문은 10개 장이지만, 실습 코드 폴더는 chapter1/~chapter9/까지만 있고 chapter10/(멀티에이전트) 코드는 저장소에 없다. ③ README가 설명하는 일부 하위 폴더(대형 서드파티 벤치마크·프레임워크)도 실제 트리엔 빠져 있어, 독자가 직접 클론하는 것으로 보인다(§9). 트렌딩 지표·순위는 시간마다 바뀐다.

3기술 스택 전체 지도

두 층으로 읽어라 — ① 책을 만드는 스택(조판), ② 예제 코드가 가르치는 스택(파이썬 에이전트 생태계 총집합)

이 저장소의 "기술 스택"은 두 겹이다. 겉면은 책을 PDF로 굽는 조판 파이프라인이고, 알맹이는 각 장 예제가 쓰는 파이썬 AI 에이전트 스택이다. 후자가 진짜 학습 대상이다 — 파일 통계부터 보면 .py 494개, .md 673개(책 본문+장별 README), .json 26개, .yml/.yaml 62개, .sh 15개, .js 20개, .ts 3개. 압도적으로 파이썬 중심이되, 9장(실시간 음성)만 Node/Next.js가 섞인다.

알맹이 ① — LLM 연결 (raw SDK, no 프레임워크)

요소내용
LLM SDKopenai — 단, OpenAI만이 아니라 Doubao(火山 ARK)·Kimi(Moonshot)·Qwen·SiliconFlow의 "OpenAI 호환" 엔드포인트를 같은 클라이언트로 부른다. anthropic(Claude)도 병용.
프레임워크거의 없음이 특징langchain은 전체에서 파일 3개에만, LlamaIndex 0개. 에이전트 루프·도구 파싱·메모리를 전부 손으로 구현해 원리를 노출.
도구 프로토콜mcp>=0.9.0 + pydantic v2. 4장 예제는 공식 FastMCP@mcp.tool(...) 데코레이터를 써 MCP 서버를 직접 만든다.

알맹이 ② — 메모리 · RAG (3장, 밑바닥 검색 스택)

요소내용
임베딩FlagEmbedding(BGE-M3) + torch + transformers. FastAPI+uvicorn으로 임베딩을 마이크로서비스로 띄우는 실전 구성까지.
벡터 검색(ANN)annoy vs hnswlib나란히 비교 — "근사 최근접 이웃 알고리즘이 실제로 뭐가 다른가"를 손으로 실험.
희소 검색Sparse embedding(BM25)을 라이브러리 없이 직접 구현 → 밀집(dense)·희소(sparse) 검색의 원리 대비.
문서 처리PyPDF2·python-docx·python-pptx·beautifulsoup4·lxml — RAG에 넣을 문서를 실제로 파싱.

알맹이 ③ — 도구 · 스크래핑 · 후속훈련 · 음성

요소내용
실전 도구requests·yfinance(주가)·wikipedia·arxiv·yt-dlp·opencv-python·waybackpy. 키 없이 되는 무료 API(DuckDuckGo·Open-Meteo·Yahoo Finance·OpenStreetMap)도 다수.
후속훈련(7장)verl·DAPO 알고리즘 기반 RL, 대상 모델 Qwen2.5-32B·DeepSeek-R1-Distill-Qwen, 코드 실행은 SandboxFusion. (상당수는 외부 대형 레포를 별도로 씀 — §9)
실시간 음성(9장)유일한 비(非)파이썬 스택 — 백엔드 express+ws+onnxruntime-node(VAD)+fluent-ffmpeg, 프론트엔드 Next.js 13 + React 18 + TypeScript + Tailwind + Radix UI.
조판(겉면)책 PDF는 pandoc + xelatex + ElegantBook 문서클래스로 빌드(book/build_pdf.sh). 그림은 gen_ch*_figs.py가 생성.
핵심 용어 · 왜 "OpenAI 호환"이 중요한가
OpenAI 호환 엔드포인트 · 하나의 SDK로 여러 모델
예제 코드는 openai 라이브러리 하나로 OpenAI·Doubao·Kimi·Qwen·SiliconFlow를 전부 부른다. 비결은 이 중국계 모델 제공사들이 "OpenAI와 똑같은 API 형식(요청·응답 구조)"을 지원하기 때문이다. 코드에서 바꾸는 건 base_urlapi_key, 모델 이름뿐 — 나머지 로직은 그대로다. 그래서 예제는 LLM_PROVIDER 같은 환경변수로 제공사를 갈아 끼운다. 이는 "모델 종속을 피하는 실무 패턴"의 살아있는 예시다. 특정 벤더 SDK에 코드를 묶지 않고, 표준 형식에 맞춰 두면 더 싸거나 빠른 모델로 언제든 이사할 수 있다.
한눈에 — "요리 학교의 세 실습실"

스택이 넓어 보여도, 책의 공식 LLM + 컨텍스트 + 도구에 그대로 매핑된다. '컨텍스트 실습실'은 임베딩·RAG·메모리(BGE-M3·annoy·BM25)로 무엇을 모델에게 보여줄지를 다루고, '도구 실습실'은 MCP·스크래핑·코딩에이전트로 모델에게 무슨 손발을 줄지를 다루며, '훈련 실습실'(verl·DAPO)은 모델 자체를 어떻게 더 똑똑하게 만드는지를 다룬다. 세 실습실 모두 파이썬이라는 같은 건물 안에 있고, 프레임워크라는 지름길 대신 raw SDK라는 정문으로만 드나들게 해 원리를 몸에 익히게 한다.

4아키텍처 심화 분석 — 책의 뼈대와 코드의 뼈대

책이 가르치는 "에이전트 루프"의 해부도 + 저장소가 짜인 "챕터=지식 계층" 구조, 둘을 함께 본다

4-1. 책의 중심 해부도 — Agent = LLM + 컨텍스트 + 도구

이 책의 모든 장은 아래 한 장의 그림으로 요약된다. 사용자의 요청이 들어오면, 에이전트는 "컨텍스트를 조립 → 모델 호출 → 도구 실행 → 결과를 컨텍스트에 되먹임"을 반복하며 목표에 도달한다. 각 화살표 옆에 "그걸 다루는 장 번호"를 적어 두면, 책의 목차가 곧 이 루프의 부품 설명서임이 드러난다.

┌──────────────────────────────────────────────────────────────────────┐ │ 이 책이 가르치는 에이전트 한 바퀴 (Agent = LLM + 컨텍스트 + 도구) │ │ │ │ [사용자 요청] "이번 분기 실적 요약해서 슬라이드로 만들어줘" │ │ │ │ │ v │ │ ┌───────────────────────────────────────────┐ │ │ │ ① 컨텍스트 조립 (2장 컨텍스트 · 3장 메모리) │ │ │ │ 시스템 프롬프트 + 대화 이력 + 검색된 지식 │ │ │ │ + 사용자 장기기억 → KV Cache 안 깨게 배치 │ │ │ └───────────────┬───────────────────────────┘ │ │ │ (프롬프트를 모델에 전달) │ │ v │ │ ┌───────────────────────────────────────────┐ │ │ │ ② LLM 호출 (1장 입문 · 7장 후속훈련) │ ← "모델이 곧 에이전트"│ │ │ 무엇을 할지 스스로 판단 → 도구 호출을 출력 │ │ │ └───────────────┬───────────────────────────┘ │ │ │ 응답에 tool_call 있음? │ │ ┌─────────┴─────────┐ │ │ 없음(끝) 있음 │ │ │ v │ │ │ ┌───────────────────────────────────────────┐ │ │ │ │ ③ 도구 실행 (4장 도구/MCP · 5장 코딩) │ │ │ │ │ 웹검색 · 파일편집 · 코드실행 · 계산 ... │ │ │ │ └───────────────┬───────────────────────────┘ │ │ │ │ 결과(관찰)를 컨텍스트에 append │ │ │ └────────────► ①로 되돌아가 루프 반복 │ │ v │ │ [최종 답변] ↑ 이 전 과정을 평가(6장) · 자기진화(8장) · │ │ 멀티모달(9장) · 멀티에이전트(10장)로 확장 │ └──────────────────────────────────────────────────────────────────────┘
핵심 용어 · 이 책의 심장
에이전트 루프(Agent Loop) · ReAct · while 반복문
에이전트 루프는 "생각 → 행동(도구) → 관찰 → 다시 생각"을 반복하는 사이클이다(학계 용어로는 ReAct = Reasoning + Acting). 화려해 보이지만, 1장 예제가 폭로하듯 본질은 while 반복문 하나다 — 모델에게 묻고, 답에 도구 호출이 있으면 실행해 결과를 붙이고, 없으면 끝. 이 책이 프레임워크를 걷어내고 이 루프를 직접 짜 보게 하는 이유가 여기 있다. "에이전트 = 모델 + 이 반복문 + 도구들"이라는 골격을 손에 익히면, 이후의 모든 고급 주제(컨텍스트 압축·메모리·멀티에이전트)가 "이 루프의 어느 부품을 개선하는가"로 정리된다.

1장 예제로 보는 "루프의 알맹이" (chapter1/context/agent.py 요지)

# 프레임워크 없이, OpenAI 호환 SDK로 에이전트 루프를 직접 구현
messages = [system_prompt, user_message]

while iteration < max_iterations:          # ← 에이전트 루프 = while 하나
    resp = client.chat.completions.create(
        model=MODEL, messages=messages,
        tools=TOOLS, tool_choice="auto",   # 모델이 도구를 스스로 고르게
    )
    msg = resp.choices[0].message

    if msg.tool_calls:                     # ② 응답에 도구 호출이 있으면
        for call in msg.tool_calls:          # ③ 손으로 실행하고
            result = run_tool(call.function.name, call.function.arguments)
            messages.append({"role": "tool",      # 결과를 컨텍스트에 되먹임
                             "tool_call_id": call.id,
                             "content": result})
        continue                            # ① 다시 루프 위로

    if "FINAL ANSWER:" in (msg.content or ""):
        break                               # 끝 신호를 만나면 종료

딱 이게 전부다. 놀랍도록 단순한 이 골격 위에, 1장 예제는 한 발 더 나간다 — ContextMode라는 열거형(FULL / NO_HISTORY / NO_TOOL_CALLS / NO_TOOL_RESULTS)으로 "컨텍스트에서 무엇을 빼면 성능이 얼마나 떨어지는가"를 실험(ablation)하게 만든다. "대화 이력을 지우면?" "도구 실행 결과를 지우면?"을 직접 돌려 보며, 왜 컨텍스트 엔지니어링(2장)이 중요한지를 몸으로 깨닫게 하는 영리한 교보재다.

4-2. 코드의 뼈대 — "챕터 = 지식 계층"이라는 저장소 아키텍처

이 저장소는 소프트웨어 아키텍처라기보다 "난이도·주제별로 쌓아 올린 지식 계층"이다. 아래로 갈수록 앞 장의 개념 위에 새 층을 얹는다 — 1장의 에이전트 루프가 밑돌이고, 2·3장이 "입력(컨텍스트)"을, 4·5장이 "행동(도구)"을, 6·7·8장이 "품질·성장"을, 9·10장이 "확장"을 쌓는다.

ai-agent-book/ (책 + 실습이 한 저장소에) │ ├─ book/ ← 책 본문 10장(.md) + PDF(v1.0) + 조판/그림 스크립트 │ "이론" 층: 읽는 파트 │ └─ chapterN/ ← "실습" 층: 돌리는 파트 (아래로 갈수록 위 개념에 의존) ┌────────────────────────────────────────────────────────────┐ │ 10장 멀티에이전트 협업 (※ 책만 있고 코드 폴더 없음) │ 확장 │ 9장 멀티모달·실시간 음성 live-audio (Node/Next.js) │ ↑ │ 8장 자기진화 gaia-experience · 프롬프트증류 │ │ │ 7장 모델 후속훈련(RL) verl · DAPO · SimpleVLA-RL ... │ 품질·성장 │ 6장 에이전트 평가 android-world · elo-leaderboard │ │ │ ───────────────────────────────────────────────────────────│ │ 5장 코딩 에이전트 coding-agent (Claude Code 클론) │ 행동(도구) │ 4장 도구 · MCP perception/execution/collab-tools│ ↑ │ ───────────────────────────────────────────────────────────│ │ 3장 메모리 · 지식베이스 RAG · 임베딩 · 지식그래프(12개) │ 입력(컨텍스트) │ 2장 컨텍스트 엔지니어링 KV캐시 · 프롬프트 · 압축(7개) │ ↑ │ ───────────────────────────────────────────────────────────│ │ 1장 AI Agent 입문 context(에이전트 루프) 외 4개 │ 밑돌(루프) └────────────────────────────────────────────────────────────┘

4-3. 5장의 야심 — Claude Code를 통째로 재현한 코딩 에이전트

저장소에서 가장 완성도 높은 단일 예제는 5장 coding-agent다. 이건 사실상 Claude Code(터미널 코딩 에이전트)의 축소 재현판이다. anthropic SDK를 쓰고, tools/ 폴더에 16개의 도구 파일을 갖췄다 — 파일 읽기/쓰기/수정(read·write·edit·multi_edit), 탐색(glob·grep·ls), 실행(bash·bash_output·kill_bash), 웹(web_fetch·web_search), 그리고 서브에이전트(task)·할일관리(todo_write)·노트북편집·계획모드(exit_plan_mode)까지.

배울 점 — "Claude Code가 어떻게 도는지 궁금하면 여기 열어라"

상용 코딩 에이전트는 내부가 닫혀 있어 "어떻게 파일을 고치고 셸을 돌리는지" 보기 어렵다. 이 5장 예제는 그 "손발(도구) 16개"를 열린 파이썬으로 펼쳐 놓는다. 특히 흥미로운 디테일 하나 — grep 도구를 시스템의 ripgrep에 의존하지 않고 순수 파이썬으로 재구현했다. "외부 CLI 없이도 코딩 에이전트가 코드베이스를 뒤질 수 있게" 만든 것이다. 코딩 에이전트를 직접 만들어 보고 싶다면, §5의 grok-build 같은 상용 미러와 이 교육용 재현판을 나란히 비교하는 게 최고의 학습이다.

한눈 정리 · 이 책의 아키텍처가 주는 4가지 골격
루프는 while · 컨텍스트가 절반 · 도구가 손발 · 프레임워크는 나중에

에이전트 루프 = while 반복문 — 화려한 프레임워크를 걷어내면 남는 골격(1장). ② 컨텍스트가 성능의 절반 — 무엇을 보여주느냐(2·3장)가 모델 성능을 좌우, ablation으로 증명. ③ 도구가 손발 — MCP로 표준화하고(4장), 16개 도구로 코딩 에이전트를 구성(5장). ④ 프레임워크는 원리를 안 뒤에 — raw SDK로 먼저 짜 보고, 이후 필요하면 추상화. 이 네 골격은 어떤 에이전트를 만들든 그대로 이식된다.

5디렉토리 · 챕터 구조 해부

"어느 폴더에서 무엇을 실습하는가" — 챕터↔폴더 매핑과, 각 장이 담은 하위 프로젝트 지도

저장소를 처음 열면 book/ 하나와 chapter1~chapter9, 그리고 cursor-chats/가 보인다. 규칙은 단순하다 — book/은 읽는 곳, chapterN/은 돌리는 곳. 각 챕터 폴더 안에는 그 장이 다루는 주제별로 독립 실습 프로젝트들이 들어 있고, 대부분 자체 requirements.txtREADME·env.example을 갖는다(저장소 전체 requirements.txt 35개). 아래가 챕터별 하위 프로젝트 지도다.

챕터 / 폴더주제대표 하위 프로젝트 (개수)
1장 · 입문에이전트 루프의 기본기context(루프+컨텍스트 ablation) · web-search-agent · search-codegen · learning-from-experience (4)
2장 · 컨텍스트컨텍스트 엔지니어링kv-cache · context-compression · prompt-engineering · attention_visualization · local_llm_serving · system-hint · log-sanitization (7)
3장 · 메모리사용자 기억 · 지식베이스(RAG)agentic-rag · contextual-retrieval · dense/sparse-embedding · retrieval-pipeline · structured-index · structured-knowledge-extraction · user-memory · multimodal-agent (12)
4장 · 도구도구 설계 · MCPperception-tools(FastMCP) · execution-tools · collaboration-tools · agent-with-event-trigger(도커) (4)
5장 · 코딩코딩 에이전트 · 코드생성coding-agent — Claude Code 클론, 도구 16개, 순수파이썬 grep (1)
6장 · 평가에이전트 평가android-world · elo-leaderboard (2)
7장 · 후속훈련강화학습(RL) 등retool · Intuitor · AdaptThink · SimpleVLA-RL · continued-pretraining · MiniMind-pretrain · orpheus/sesame(음성) (11)
8장 · 자기진화경험 학습 · 프롬프트 증류gaia-experience · browser-use-rpa · prompt-distillation · learn-from-observation · feedback-guided-sampling (5)
9장 · 멀티모달실시간 음성 · 상호작용live-audio — Node 백엔드 + Next.js 프론트, VAD/ASR/TTS (1)
10장 · 멀티에이전트다중 에이전트 협업책 본문만 존재 · 코드 폴더 없음 (대형 벤치는 독자가 별도 클론) (0)
읽는 순서 팁
"3장이 가장 두껍다" · 실습 밀도의 지도
하위 프로젝트 개수가 곧 "그 장을 실습으로 얼마나 밀도 있게 다루는가"의 지표다. 3장(메모리/RAG)이 12개로 가장 두껍고, 그다음이 7장(후속훈련 11개)·2장(컨텍스트 7개)이다. 이는 저자가 컨텍스트·메모리·훈련을 에이전트 품질의 핵심으로 본다는 뜻이다(공식의 "컨텍스트" 항과 "LLM" 항). 반대로 5·9장은 프로젝트 1개씩이지만 각각이 완결된 대형 예제(코딩 에이전트 / 실시간 음성 앱)라 무게가 다르다. 처음이라면 chapter1/contextchapter4/perception-toolschapter5/coding-agent 순으로, "루프 → 도구 → 완성형 에이전트"를 따라가는 걸 권한다.
한눈에 — "폴더 이름이 곧 커리큘럼"

이 저장소엔 복잡한 빌드 시스템도, 얽힌 의존성 그래프도 없다(pyproject.toml 0개, 루트 패키지도 없음). 대신 폴더 이름 하나하나가 "이번 시간엔 이걸 배운다"는 수업 제목이다. kv-cache·contextual-retrieval·prompt-distillation처럼 폴더명만 훑어도 에이전트 엔지니어링의 용어 지도가 그려진다. "무엇을 모르는지조차 모르겠다"는 초심자에게, 이 폴더 목록 자체가 공부할 키워드 체크리스트가 된다.

6학습 포인트

"중국어 못 읽어도" 코드로 가져갈 수 있는 것들 — 이 저장소에서 실제로 배울 6가지

배울 것 1 — 에이전트 루프를 "프레임워크 없이" 짜 보는 경험

가장 값진 학습. 1장 context/agent.py를 열어 while 루프 하나로 에이전트가 완성되는 것을 직접 보고 나면, 이후 어떤 프레임워크(LangChain·AutoGen·CrewAI)를 써도 "아, 안에서 이 루프가 도는구나"가 보인다. 프레임워크는 편의지 마법이 아님을 아는 것 — 이게 초·중급을 가르는 분기점이다.

배울 것 2 — 컨텍스트 ablation으로 "무엇이 성능을 만드는가" 실측

ContextMode(FULL/NO_HISTORY/NO_TOOL_CALLS/NO_TOOL_RESULTS)로 컨텍스트의 각 부분을 하나씩 빼며 성능을 재는 실험. "대화 이력을 지우면 얼마나 멍청해지나?" "도구 결과만 남기면?"을 손으로 돌려 본다. 이건 곧 컨텍스트 엔지니어링의 과학적 방법론 — 감이 아니라 측정으로 프롬프트를 다듬는 습관을 심어 준다.

배울 것 3 — RAG를 "밑바닥부터" — BM25·임베딩·ANN을 손으로

3장은 RAG를 Chroma.from_documents() 한 줄로 넘기지 않는다. BM25(희소 검색)를 직접 구현하고, BGE-M3 임베딩(밀집 검색)을 FastAPI 서비스로 띄우고, annoy vs hnswlib를 나란히 비교한다. "왜 하이브리드 검색을 쓰는가", "ANN이 정확도를 얼마나 희생하는가"를 코드로 체득 — RAG를 진지하게 다뤄야 하는 사람에게 특히 값지다.

배울 것 4 — MCP 서버를 내 손으로 만드는 법

4장 perception-tools는 공식 FastMCP@mcp.tool(...) 데코레이터를 붙여 MCP 서버를 직접 구현한다. MCP를 "쓰기만" 해 본 사람이 "만들어" 보는 단계로 넘어가는 다리다. 게다가 예제 도구들이 키 없이 되는 무료 API(DuckDuckGo·Open-Meteo·OpenStreetMap)라 돈 없이도 끝까지 돌려볼 수 있다.

배울 것 5 — 상용 코딩 에이전트의 내부를 열어 보기

5장 coding-agent의 16개 도구를 읽으면, Claude Code·Codex 같은 상용 도구가 "read·edit·bash·grep·task(서브에이전트)" 같은 기본 도구들의 조합임이 드러난다. 특히 순수 파이썬 grep 구현은 "외부 CLI 의존 없이 코드 탐색을 어떻게 짜는가"의 좋은 예. §인덱스의 다른 코딩 CLI 딥다이브(grok-build 등)와 비교하면 학습이 배가된다.

배울 것 6 — 에이전트의 "그 다음" — 평가·RL·자기진화까지

대부분의 입문서가 "에이전트 만들기"에서 끝날 때, 이 책은 6~8장에서 "만든 다음"을 다룬다 — 어떻게 평가(Elo 리더보드·android-world)하고, verl·DAPO로 후속훈련(RL)하고, 경험을 프롬프트로 증류해 자기진화시키는가. 에이전트를 제품 수준으로 운영하려는 사람에게 이 뒷부분이 진짜 차별점이다.

한 줄 정리 · 이 저장소의 교재 가치
"쓰는 법"이 아니라 "도는 원리" — 프레임워크 뒤에 숨은 골격을 손에 쥐여 준다

중국어 본문을 못 읽어도, 파이썬 코드는 만국 공통어다. 이 저장소가 남기는 건 특정 툴 사용법이 아니라 "에이전트가 실제로 어떻게 도는가"의 골격 — 루프는 while, 컨텍스트는 측정 대상, RAG는 밑바닥부터, 도구는 MCP로 표준화, 그리고 평가·RL로 성장. 이 골격은 어떤 언어·프레임워크로 옮겨도 그대로 재사용된다. 자료가 중국어라는 장벽을 코드와 이 문서로 넘을 수 있다면, 가성비가 매우 높은 교재다.

7시스템 · 실행 요구사항

세 갈래 — "책만 읽기(PDF)", "예제 돌리기(파이썬+API키)", "책 직접 빌드(LaTeX)"

이 저장소는 무거운 GPU를 요구하지 않는다(7장 RL 일부 제외). 대부분은 노트북에서 파이썬과 API 키만 있으면 돌아간다. 목적에 따라 세 경로로 나뉜다.

목적요구/방법
책만 읽기book/深入理解-AI-Agent-李博杰-v1.0.pdf(13.3MB) 열기, 또는 book/*.md 직접 열람. 추가 설치 불필요. (본문은 중국어)
예제 돌리기Python 3.8+(코딩 에이전트는 3.11.5 권장). 각 프로젝트에서 pip install -r requirements.txtenv.example.env로 복사해 키 입력.
필요 API 키프로젝트별로 하나 선택 — MOONSHOT_API_KEY(Kimi) · SILICONFLOW_API_KEY · ARK_API_KEY(Doubao/火山) · OPENROUTER_API_KEY(Gemini/Claude/GPT 우회) · ANTHROPIC_API_KEY. LLM_PROVIDER로 전환.
키 없이 되는 것4장 도구 예제 다수는 무료·무인증 API(DuckDuckGo 검색·Open-Meteo 날씨·Yahoo Finance 주가·OpenStreetMap)라 LLM 키만 있으면 끝.
무거운 예제7장 후속훈련(RL)은 verl·GPU·대형 모델(Qwen2.5-32B 등)이 필요 — 대개 외부 대형 레포를 별도로 클론해야 하며 개인 장비엔 버겁다(읽기 위주로).
책 직접 빌드pandoc + xelatex + ElegantBook 문서클래스 + 폰트 설치 후 cd book && bash build_pdf.sh. (이미 PDF가 있으니 대부분 불필요)
한눈 요약 — "교과서 + 실습 키트, 준비물은 가볍다"

공대 교재를 떠올리면 된다. 책(PDF)은 그냥 읽으면 되고, 실습을 하려면 파이썬과 "모델 이용권(API 키)" 하나만 챙기면 된다. 값비싼 GPU는 대부분 불필요하고, 4장 같은 장은 무료 API로 돈 한 푼 안 들이고 끝까지 돌아간다. 유일하게 무거운 건 7장 강화학습 파트인데, 이건 "실습"보다 "이런 게 있다"를 읽는 참고 자료로 보는 게 현실적이다.

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

난이도별 — "클론·읽기 → 루프 돌리기 → 컨텍스트 실험 → MCP 만들기 → 코딩 에이전트 해부"

먼저 저장소를 받고 1장 실습 환경을 준비한다.

# 저장소 클론 (PDF가 커서 blob 필터를 걸면 빠름)
git clone --depth 1 --filter=blob:limit=1m \
  https://github.com/bojieli/ai-agent-book.git
cd ai-agent-book/chapter1/context

pip install -r requirements.txt
cp env.example .env        # .env에 SILICONFLOW_API_KEY 등 키 하나 입력
실습 1 · 난이도 ★☆☆☆☆

PDF 목차로 "에이전트 지도" 그리기 — 전체 조망

book/의 PDF(또는 chapter1.md~chapter10.md)를 열어 10개 장의 제목만 훑으며 §4-1 해부도의 어느 부품에 해당하는지 표시해 본다. 중국어라도 소제목의 기술 용어(KV Cache·RAG·MCP·RLHF)는 대부분 영문·외래어라 읽힌다. "내가 이미 아는 것 vs 모르는 것"을 갈라 학습 우선순위를 세운다.

실습 2 · 난이도 ★★☆☆☆

1장 에이전트 루프 돌려 보기 — while이 에이전트다

chapter1/context를 실행해, 모델이 스스로 도구(계산·PDF파싱·환율변환)를 골라 호출하고 결과를 되먹이는 과정을 로그로 관찰한다. §4-1의 코드 골격과 실제 실행을 대조하며 "한 턴(turn)"이 어떻게 도는지 눈에 익힌다.

실습 3 · 난이도 ★★★☆☆

컨텍스트를 하나씩 빼며 성능 무너뜨리기 — ContextMode ablation

같은 1장 예제에서 ContextModeFULLNO_HISTORYNO_TOOL_RESULTS로 바꿔 가며 같은 질문에 대한 정답률이 어떻게 떨어지는지 직접 측정한다. "왜 도구 결과를 컨텍스트에 남겨야 하는가"를 감이 아니라 숫자로 확인 — 컨텍스트 엔지니어링의 첫 실험이다.

실습 4 · 난이도 ★★★★☆

나만의 MCP 도구 서버 만들기 — chapter4/perception-tools 개조

4장 perception-tools를 열어 FastMCP + @mcp.tool 패턴을 익힌 뒤, 새 도구 하나(예: 환율 조회, 랜덤 명언)를 직접 추가해 본다. 무료 API를 붙이면 키도 필요 없다. MCP를 "쓰는 사람"에서 "만드는 사람"으로 넘어가는 관문.

실습 5 · 난이도 ★★★★★

코딩 에이전트 16개 도구 해부 + 비교 — chapter5/coding-agent

5장 coding-agenttools/를 열어 16개 도구가 각각 무슨 일을 하는지 읽고, 특히 순수 파이썬 grep 구현을 시스템 ripgrep과 비교한다. 여유가 되면 §인덱스의 상용 코딩 CLI 딥다이브(예: grok-build)와 나란히 놓고 "교육용 재현판 vs 프로덕션"의 설계 차이를 정리해 본다. 이 저장소가 주는 최고 난도의 학습.

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

이 책을 축으로, 에이전트 엔지니어를 목표로 한 8주 커리큘럼
주차주제 · 목표 (대응 장)
1주차에이전트 루프 기본기(1장). ReAct, 도구 스키마(JSON Schema), tool_calls 파싱. 목표: 프레임워크 없이 루프를 스스로 짤 수 있게.
2주차컨텍스트 엔지니어링(2장). KV Cache 친화 설계, 프롬프트 구조, 컨텍스트 압축(compaction), Agent Skills. ablation으로 성능 측정.
3~4주차메모리 · RAG(3장, 가장 두꺼움). 밀집/희소 임베딩, BM25·BGE-M3, ANN(annoy/hnswlib), 하이브리드·컨텍스추얼 검색, 지식그래프. RAG를 밑바닥부터.
5주차도구 · MCP(4장). 도구 분류·설계 원칙, FastMCP로 서버 구현, 이벤트 구동 비동기 에이전트. "모델의 손발"을 표준화하는 법.
6주차코딩 에이전트(5장). 파일 편집·셸·탐색 도구 16종, 서브에이전트(task), 순수 파이썬 grep. 상용 코딩 CLI의 내부 원리를 재현판으로 체득.
7주차평가 · 관측(6장). 평가 환경·데이터셋·지표, 통계적 유의성, Elo 리더보드, 관측성(observability). "감이 아니라 지표로" 에이전트를 개선.
8주차성장 · 확장(7·8·9·10장). 후속훈련(SFT·RL·RLHF·DAPO), 자기진화(경험학습·프롬프트 증류), 실시간 음성·Computer Use, 멀티에이전트 협업. 에이전트를 제품으로.
병행 학습 팁
"이 책 + 표준 프로토콜 문서"를 함께
이 책은 원리를 raw SDK로 가르치는 데 강하지만, 실무에선 결국 표준과 만난다. 5주차의 MCP를 배울 때 Model Context Protocol 공식 문서를, 1주차의 도구 호출을 배울 때 OpenAI/Anthropic의 tool use 문서를 곁들이면 "이 책의 손구현 ↔ 업계 표준"이 이어진다. 또 7장 RL은 verl 등 외부 대형 레포에 의존하므로, 개인 학습에선 "개념 이해"에 방점을 두고 실제 대규모 훈련은 조직 자원이 있을 때 도전하는 게 현실적이다.

10핵심 키워드 사전

이 책과 저장소에서 반복되는 용어 빠른 참조
용어
Agent = LLM + 컨텍스트 + 도구이 책 전체를 관통하는 공식. 에이전트 = 판단하는 두뇌(LLM) + 보여줄 정보(컨텍스트) + 쓸 손발(도구). 모든 장이 이 세 항의 어딘가를 판다.
모델이 곧 에이전트강력한 LLM에 알맞은 컨텍스트·도구만 주면 스스로 일한다는 관점(模型即 Agent). 복잡한 규칙 엔진 대신 하네스 설계에 집중하게 만드는 사상.
하네스(Harness)모델을 뺀 나머지 전부 — 프롬프트 조립·도구 실행·이력 관리 등 "모델을 감싸 일하게 만드는 껍데기". 이 책 지면의 대부분.
에이전트 루프 · ReAct"생각→도구→관찰→반복" 사이클. 본질은 while 반복문. 1장 예제가 프레임워크 없이 직접 구현.
컨텍스트 엔지니어링모델에게 "무엇을 어떻게 보여줄지"를 설계하는 기술(2장). KV Cache 친화 배치·압축·상태 힌트 등. ablation으로 효과 측정.
KV CacheLLM이 이미 처리한 토큰의 계산 결과를 재사용하는 캐시. 프롬프트 앞부분을 고정하면 캐시가 유지돼 빠르고 싸진다 — 프롬프트를 "캐시가 안 깨지게" 짜는 게 2장 핵심.
RAG · 밀집/희소 검색외부 지식을 검색해 컨텍스트에 넣는 기법(3장). 밀집=임베딩(BGE-M3), 희소=BM25. 둘을 합친 하이브리드 + ANN(근사 최근접).
MCP (Model Context Protocol)모델에 도구를 표준 방식으로 연결하는 프로토콜(4장). 예제는 FastMCP로 서버를 직접 구현.
코딩 에이전트코드를 읽고·고치고·실행하는 에이전트(5장). 예제는 read·edit·bash·grep·task 등 16개 도구로 Claude Code를 재현.
후속훈련(Post-training)사전훈련된 모델을 SFT·RL·RLHF로 다듬는 단계(7장). 예제는 verl·DAPO 알고리즘 사용.
자기진화(Self-evolution)가중치를 안 바꾸고도 경험·관찰을 프롬프트로 증류해 에이전트가 스스로 나아지게 하는 기법(8장).
OpenAI 호환 엔드포인트Doubao·Kimi·Qwen·SiliconFlow 등이 OpenAI와 같은 API 형식을 지원 → base_url만 바꿔 하나의 SDK로 여러 모델 호출.
Pine / whisper coding저자가 만든 음성 AI 에이전트(Pine)와, 그 에이전트에게 말로 지시해 협업 집필한 방식. 이 책이 나온 배경.

11참고 링크

공식 소스 우선 — 버전·수치는 클론한 소스(PDF v1.0, 커밋 c19f372, 2026-07-17) 기준

공식
· GitHub 저장소: github.com/bojieli/ai-agent-book (책 《深入理解 AI Agent:设计原理与工程实践》 · 李博杰 著)
· TrendShift 카드: trendshift.io/repositories/83370 (Daily #5 · #AI agent · #Programming examples)
· 책 PDF: 저장소 book/深入理解-AI-Agent-李博杰-v1.0.pdf (13.3MB, 중국어)

저장소 안에서 먼저 열 곳
· chapter1/context/agent.py — 프레임워크 없는 에이전트 루프 + ContextMode ablation(§4-1)
· chapter4/perception-tools/ — FastMCP로 만든 MCP 서버(§6 배울 것 4)
· chapter5/coding-agent/tools/ — 코딩 에이전트 도구 16종 + 순수 파이썬 grep
· chapter3/ — RAG 밑바닥 구현 12종(BM25·BGE-M3·annoy/hnswlib)
· book/*.md — 책 본문 10장(중국어), book/build_pdf.sh — PDF 빌드

곁들여 학습(표준·외부)
· MCP 공식: modelcontextprotocol.io — 4장의 손구현 ↔ 업계 표준 잇기
· OpenAI / Anthropic tool use 문서 — 1장 도구 호출의 표준 형식
· verl · DAPO — 7장 강화학습 후속훈련(외부 대형 레포)
· §인덱스의 다른 코딩 에이전트·RAG 딥다이브와 비교 학습(cat-learning · cat-coding-cli · cat-data-rag)

참고 · 소스 정독으로 확인한 주의점
"교재 저장소"라는 성격과 몇 가지 함정

① 이건 pip install로 쓰는 라이브러리가 아니라 책+실습 교재다 — 각 장을 개별로 돌린다. ② 루트에 라이선스 파일이 없다 — README는 "학습 참고용, 라이선스는 각 서브프로젝트 확인"이라 밝힌다(저장소 내 유일 LICENSE는 chapter2/prompt-engineering의 MIT © 2024 Sierra, Tau-Bench 파생). 상업적 재사용 전 반드시 개별 확인. ③ 책은 10장, 코드는 9장까지chapter10/(멀티에이전트) 코드는 없다. ④ README가 언급하는 일부 대형 하위 폴더(벤치·프레임워크)는 실제 트리에 빠져 있어 독자가 별도 클론해야 한다. ⑤ 본문은 전부 중국어이고 한국어 README는 없다(코드 주석은 대체로 영문). ⑥ cursor-chats/ 269개엔 저자의 로컬 경로 같은 사적 흔적이 남아 있다. ⑦ 이 문서 수치는 분석 시점 최신 커밋(2026-07-17, c19f372) 기준이며, 트렌딩 순위·지표는 계속 바뀐다.