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장).
보통의 트렌딩 저장소가 "완성된 전자레인지(툴)"라면, ai-agent-book은 요리를 원리부터 가르치는 학교에 가깝다. 왜 이 재료를 넣는지(컨텍스트), 어떤 칼을 언제 쓰는지(도구), 맛을 어떻게 평가하는지(평가), 실력을 어떻게 늘리는지(후속훈련)를 장별로 설명하고, 각 장 옆에 실제로 불을 켤 수 있는 실습 주방(파이썬 코드)을 붙여 놨다.
그리고 이 학교의 특이점은 "기성 소스(프레임워크)를 안 쓰고 손으로 다 짜 보게" 한다는 것이다. LangChain으로 5줄 만에 끝낼 것을 raw SDK로 펼쳐 보여, "에이전트 루프가 사실 별게 아니라 while 반복문 하나"임을 눈으로 깨닫게 한다(§3·§4).
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로 활발히 갱신 중. |
가장 큰 차별점. 에이전트 입문 자료 대부분은 LangChain·LlamaIndex·AutoGen 같은 프레임워크로 "10줄이면 끝!"을 보여준다. 편하지만, 정작 "안에서 무슨 일이 벌어지는지"는 블랙박스로 남는다. 이 책의 1장 예제(chapter1/context/agent.py)는 정반대다 — OpenAI 호환 SDK로 모델을 부르고, 응답에서 도구 호출을 직접 파싱해 실행하고, 결과를 {"role":"tool"} 메시지로 되붙이는 에이전트 루프를 while 문 하나로 펼쳐 보인다. "에이전트가 마법이 아니라 반복문"이라는 깨달음을 주는 방식이다.
제목의 뒷부분 工程实践(엔지니어링 실전)이 허명이 아니다. 이 책은 개념 설명에서 그치지 않고, 실무에서 진짜 아픈 문제들을 코드로 다룬다 — KV Cache를 안 깨는 프롬프트 설계(2장), BM25·BGE-M3 임베딩·ANN(annoy/hnswlib)을 직접 붙인 RAG 파이프라인(3장), MCP 서버·비동기 이벤트 구동 에이전트(4장), Claude Code를 통째로 흉내 낸 코딩 에이전트(5장), 그리고 verl·DAPO로 돌리는 강화학습 후속훈련(7장)까지. "논문 요약"이 아니라 "돌아가는 코드"로 배운다.
저장소에는 cursor-chats/ 폴더에 저자가 집필·코딩하며 나눈 대화 로그 269개가 통째로 들어 있다. 즉 "에이전트를 만드는 사람이, 에이전트(Cursor·Pine)와 협업해 쓴 에이전트 책"이라는 메타적 성격이 그대로 노출된다. 이 로그 자체가 "실무자가 AI와 어떻게 페어링해 대형 프로젝트를 굴리는가"의 생생한 사례집이 된다(단, 여기엔 저자의 로컬 경로 같은 사적 흔적도 남아 있다 — §11 주의).
① 이건 pip install로 쓰는 패키지가 아니라 교재다. 각 장 폴더를 열어 그 장의 실습을 개별로 돌리는 구조다. ② 책 본문은 10개 장이지만, 실습 코드 폴더는 chapter1/~chapter9/까지만 있고 chapter10/(멀티에이전트) 코드는 저장소에 없다. ③ README가 설명하는 일부 하위 폴더(대형 서드파티 벤치마크·프레임워크)도 실제 트리엔 빠져 있어, 독자가 직접 클론하는 것으로 보인다(§9). 트렌딩 지표·순위는 시간마다 바뀐다.
이 저장소의 "기술 스택"은 두 겹이다. 겉면은 책을 PDF로 굽는 조판 파이프라인이고, 알맹이는 각 장 예제가 쓰는 파이썬 AI 에이전트 스택이다. 후자가 진짜 학습 대상이다 — 파일 통계부터 보면 .py 494개, .md 673개(책 본문+장별 README), .json 26개, .yml/.yaml 62개, .sh 15개, .js 20개, .ts 3개. 압도적으로 파이썬 중심이되, 9장(실시간 음성)만 Node/Next.js가 섞인다.
| 요소 | 내용 |
|---|---|
| LLM SDK | openai — 단, 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 서버를 직접 만든다. |
| 요소 | 내용 |
|---|---|
| 임베딩 | 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·Doubao·Kimi·Qwen·SiliconFlow를 전부 부른다. 비결은 이 중국계 모델 제공사들이 "OpenAI와 똑같은 API 형식(요청·응답 구조)"을 지원하기 때문이다. 코드에서 바꾸는 건 base_url과 api_key, 모델 이름뿐 — 나머지 로직은 그대로다. 그래서 예제는 LLM_PROVIDER 같은 환경변수로 제공사를 갈아 끼운다. 이는 "모델 종속을 피하는 실무 패턴"의 살아있는 예시다. 특정 벤더 SDK에 코드를 묶지 않고, 표준 형식에 맞춰 두면 더 싸거나 빠른 모델로 언제든 이사할 수 있다.스택이 넓어 보여도, 책의 공식 LLM + 컨텍스트 + 도구에 그대로 매핑된다. '컨텍스트 실습실'은 임베딩·RAG·메모리(BGE-M3·annoy·BM25)로 무엇을 모델에게 보여줄지를 다루고, '도구 실습실'은 MCP·스크래핑·코딩에이전트로 모델에게 무슨 손발을 줄지를 다루며, '훈련 실습실'(verl·DAPO)은 모델 자체를 어떻게 더 똑똑하게 만드는지를 다룬다. 세 실습실 모두 파이썬이라는 같은 건물 안에 있고, 프레임워크라는 지름길 대신 raw SDK라는 정문으로만 드나들게 해 원리를 몸에 익히게 한다.
이 책의 모든 장은 아래 한 장의 그림으로 요약된다. 사용자의 요청이 들어오면, 에이전트는 "컨텍스트를 조립 → 모델 호출 → 도구 실행 → 결과를 컨텍스트에 되먹임"을 반복하며 목표에 도달한다. 각 화살표 옆에 "그걸 다루는 장 번호"를 적어 두면, 책의 목차가 곧 이 루프의 부품 설명서임이 드러난다.
while 반복문 하나다 — 모델에게 묻고, 답에 도구 호출이 있으면 실행해 결과를 붙이고, 없으면 끝. 이 책이 프레임워크를 걷어내고 이 루프를 직접 짜 보게 하는 이유가 여기 있다. "에이전트 = 모델 + 이 반복문 + 도구들"이라는 골격을 손에 익히면, 이후의 모든 고급 주제(컨텍스트 압축·메모리·멀티에이전트)가 "이 루프의 어느 부품을 개선하는가"로 정리된다.# 프레임워크 없이, 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장)이 중요한지를 몸으로 깨닫게 하는 영리한 교보재다.
이 저장소는 소프트웨어 아키텍처라기보다 "난이도·주제별로 쌓아 올린 지식 계층"이다. 아래로 갈수록 앞 장의 개념 위에 새 층을 얹는다 — 1장의 에이전트 루프가 밑돌이고, 2·3장이 "입력(컨텍스트)"을, 4·5장이 "행동(도구)"을, 6·7·8장이 "품질·성장"을, 9·10장이 "확장"을 쌓는다.
저장소에서 가장 완성도 높은 단일 예제는 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)까지.
상용 코딩 에이전트는 내부가 닫혀 있어 "어떻게 파일을 고치고 셸을 돌리는지" 보기 어렵다. 이 5장 예제는 그 "손발(도구) 16개"를 열린 파이썬으로 펼쳐 놓는다. 특히 흥미로운 디테일 하나 — grep 도구를 시스템의 ripgrep에 의존하지 않고 순수 파이썬으로 재구현했다. "외부 CLI 없이도 코딩 에이전트가 코드베이스를 뒤질 수 있게" 만든 것이다. 코딩 에이전트를 직접 만들어 보고 싶다면, §5의 grok-build 같은 상용 미러와 이 교육용 재현판을 나란히 비교하는 게 최고의 학습이다.
① 에이전트 루프 = while 반복문 — 화려한 프레임워크를 걷어내면 남는 골격(1장). ② 컨텍스트가 성능의 절반 — 무엇을 보여주느냐(2·3장)가 모델 성능을 좌우, ablation으로 증명. ③ 도구가 손발 — MCP로 표준화하고(4장), 16개 도구로 코딩 에이전트를 구성(5장). ④ 프레임워크는 원리를 안 뒤에 — raw SDK로 먼저 짜 보고, 이후 필요하면 추상화. 이 네 골격은 어떤 에이전트를 만들든 그대로 이식된다.
저장소를 처음 열면 book/ 하나와 chapter1~chapter9, 그리고 cursor-chats/가 보인다. 규칙은 단순하다 — book/은 읽는 곳, chapterN/은 돌리는 곳. 각 챕터 폴더 안에는 그 장이 다루는 주제별로 독립 실습 프로젝트들이 들어 있고, 대부분 자체 requirements.txt와 README·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장 · 도구 | 도구 설계 · MCP | perception-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) |
chapter1/context → chapter4/perception-tools → chapter5/coding-agent 순으로, "루프 → 도구 → 완성형 에이전트"를 따라가는 걸 권한다.이 저장소엔 복잡한 빌드 시스템도, 얽힌 의존성 그래프도 없다(pyproject.toml 0개, 루트 패키지도 없음). 대신 폴더 이름 하나하나가 "이번 시간엔 이걸 배운다"는 수업 제목이다. kv-cache·contextual-retrieval·prompt-distillation처럼 폴더명만 훑어도 에이전트 엔지니어링의 용어 지도가 그려진다. "무엇을 모르는지조차 모르겠다"는 초심자에게, 이 폴더 목록 자체가 공부할 키워드 체크리스트가 된다.
가장 값진 학습. 1장 context/agent.py를 열어 while 루프 하나로 에이전트가 완성되는 것을 직접 보고 나면, 이후 어떤 프레임워크(LangChain·AutoGen·CrewAI)를 써도 "아, 안에서 이 루프가 도는구나"가 보인다. 프레임워크는 편의지 마법이 아님을 아는 것 — 이게 초·중급을 가르는 분기점이다.
ContextMode(FULL/NO_HISTORY/NO_TOOL_CALLS/NO_TOOL_RESULTS)로 컨텍스트의 각 부분을 하나씩 빼며 성능을 재는 실험. "대화 이력을 지우면 얼마나 멍청해지나?" "도구 결과만 남기면?"을 손으로 돌려 본다. 이건 곧 컨텍스트 엔지니어링의 과학적 방법론 — 감이 아니라 측정으로 프롬프트를 다듬는 습관을 심어 준다.
3장은 RAG를 Chroma.from_documents() 한 줄로 넘기지 않는다. BM25(희소 검색)를 직접 구현하고, BGE-M3 임베딩(밀집 검색)을 FastAPI 서비스로 띄우고, annoy vs hnswlib를 나란히 비교한다. "왜 하이브리드 검색을 쓰는가", "ANN이 정확도를 얼마나 희생하는가"를 코드로 체득 — RAG를 진지하게 다뤄야 하는 사람에게 특히 값지다.
4장 perception-tools는 공식 FastMCP로 @mcp.tool(...) 데코레이터를 붙여 MCP 서버를 직접 구현한다. MCP를 "쓰기만" 해 본 사람이 "만들어" 보는 단계로 넘어가는 다리다. 게다가 예제 도구들이 키 없이 되는 무료 API(DuckDuckGo·Open-Meteo·OpenStreetMap)라 돈 없이도 끝까지 돌려볼 수 있다.
5장 coding-agent의 16개 도구를 읽으면, Claude Code·Codex 같은 상용 도구가 "read·edit·bash·grep·task(서브에이전트)" 같은 기본 도구들의 조합임이 드러난다. 특히 순수 파이썬 grep 구현은 "외부 CLI 의존 없이 코드 탐색을 어떻게 짜는가"의 좋은 예. §인덱스의 다른 코딩 CLI 딥다이브(grok-build 등)와 비교하면 학습이 배가된다.
대부분의 입문서가 "에이전트 만들기"에서 끝날 때, 이 책은 6~8장에서 "만든 다음"을 다룬다 — 어떻게 평가(Elo 리더보드·android-world)하고, verl·DAPO로 후속훈련(RL)하고, 경험을 프롬프트로 증류해 자기진화시키는가. 에이전트를 제품 수준으로 운영하려는 사람에게 이 뒷부분이 진짜 차별점이다.
중국어 본문을 못 읽어도, 파이썬 코드는 만국 공통어다. 이 저장소가 남기는 건 특정 툴 사용법이 아니라 "에이전트가 실제로 어떻게 도는가"의 골격 — 루프는 while, 컨텍스트는 측정 대상, RAG는 밑바닥부터, 도구는 MCP로 표준화, 그리고 평가·RL로 성장. 이 골격은 어떤 언어·프레임워크로 옮겨도 그대로 재사용된다. 자료가 중국어라는 장벽을 코드와 이 문서로 넘을 수 있다면, 가성비가 매우 높은 교재다.
이 저장소는 무거운 GPU를 요구하지 않는다(7장 RL 일부 제외). 대부분은 노트북에서 파이썬과 API 키만 있으면 돌아간다. 목적에 따라 세 경로로 나뉜다.
| 목적 | 요구/방법 |
|---|---|
| 책만 읽기 | book/深入理解-AI-Agent-李博杰-v1.0.pdf(13.3MB) 열기, 또는 book/*.md 직접 열람. 추가 설치 불필요. (본문은 중국어) |
| 예제 돌리기 | Python 3.8+(코딩 에이전트는 3.11.5 권장). 각 프로젝트에서 pip install -r requirements.txt → env.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장 강화학습 파트인데, 이건 "실습"보다 "이런 게 있다"를 읽는 참고 자료로 보는 게 현실적이다.
먼저 저장소를 받고 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 등 키 하나 입력
book/의 PDF(또는 chapter1.md~chapter10.md)를 열어 10개 장의 제목만 훑으며 §4-1 해부도의 어느 부품에 해당하는지 표시해 본다. 중국어라도 소제목의 기술 용어(KV Cache·RAG·MCP·RLHF)는 대부분 영문·외래어라 읽힌다. "내가 이미 아는 것 vs 모르는 것"을 갈라 학습 우선순위를 세운다.
chapter1/context를 실행해, 모델이 스스로 도구(계산·PDF파싱·환율변환)를 골라 호출하고 결과를 되먹이는 과정을 로그로 관찰한다. §4-1의 코드 골격과 실제 실행을 대조하며 "한 턴(turn)"이 어떻게 도는지 눈에 익힌다.
같은 1장 예제에서 ContextMode를 FULL → NO_HISTORY → NO_TOOL_RESULTS로 바꿔 가며 같은 질문에 대한 정답률이 어떻게 떨어지는지 직접 측정한다. "왜 도구 결과를 컨텍스트에 남겨야 하는가"를 감이 아니라 숫자로 확인 — 컨텍스트 엔지니어링의 첫 실험이다.
4장 perception-tools를 열어 FastMCP + @mcp.tool 패턴을 익힌 뒤, 새 도구 하나(예: 환율 조회, 랜덤 명언)를 직접 추가해 본다. 무료 API를 붙이면 키도 필요 없다. MCP를 "쓰는 사람"에서 "만드는 사람"으로 넘어가는 관문.
5장 coding-agent의 tools/를 열어 16개 도구가 각각 무슨 일을 하는지 읽고, 특히 순수 파이썬 grep 구현을 시스템 ripgrep과 비교한다. 여유가 되면 §인덱스의 상용 코딩 CLI 딥다이브(예: grok-build)와 나란히 놓고 "교육용 재현판 vs 프로덕션"의 설계 차이를 정리해 본다. 이 저장소가 주는 최고 난도의 학습.
| 주차 | 주제 · 목표 (대응 장) |
|---|---|
| 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, 멀티에이전트 협업. 에이전트를 제품으로. |
verl 등 외부 대형 레포에 의존하므로, 개인 학습에선 "개념 이해"에 방점을 두고 실제 대규모 훈련은 조직 자원이 있을 때 도전하는 게 현실적이다.| 용어 | 뜻 |
|---|---|
| Agent = LLM + 컨텍스트 + 도구 | 이 책 전체를 관통하는 공식. 에이전트 = 판단하는 두뇌(LLM) + 보여줄 정보(컨텍스트) + 쓸 손발(도구). 모든 장이 이 세 항의 어딘가를 판다. |
| 모델이 곧 에이전트 | 강력한 LLM에 알맞은 컨텍스트·도구만 주면 스스로 일한다는 관점(模型即 Agent). 복잡한 규칙 엔진 대신 하네스 설계에 집중하게 만드는 사상. |
| 하네스(Harness) | 모델을 뺀 나머지 전부 — 프롬프트 조립·도구 실행·이력 관리 등 "모델을 감싸 일하게 만드는 껍데기". 이 책 지면의 대부분. |
| 에이전트 루프 · ReAct | "생각→도구→관찰→반복" 사이클. 본질은 while 반복문. 1장 예제가 프레임워크 없이 직접 구현. |
| 컨텍스트 엔지니어링 | 모델에게 "무엇을 어떻게 보여줄지"를 설계하는 기술(2장). KV Cache 친화 배치·압축·상태 힌트 등. ablation으로 효과 측정. |
| KV Cache | LLM이 이미 처리한 토큰의 계산 결과를 재사용하는 캐시. 프롬프트 앞부분을 고정하면 캐시가 유지돼 빠르고 싸진다 — 프롬프트를 "캐시가 안 깨지게" 짜는 게 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)와, 그 에이전트에게 말로 지시해 협업 집필한 방식. 이 책이 나온 배경. |
공식
· 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) 기준이며, 트렌딩 순위·지표는 계속 바뀐다.