OpenSource-Hub

ai-agent-book

튜토리얼

bojieli/ai-agent-book

AI Agent 심화 도서, 전문과 코드 오픈 소스.

개요

AI Agent 설계와 엔지니어링 실무를 포괄적으로 다루는 서적으로, 기초부터 멀티 에이전트 협업까지 총 10장의 내용을 담고 있습니다. 이 리포지토리는 책 전체 본문, 다국어 컴파일 버전 PDF, 그리고 각 장에 대응하는 예제 코드를 제공합니다.

README 미리보기

# 深入理解 AI Agent:设计原理与工程实践\n\n**[English](README.en.md) | 中文 | [Tiếng Việt](README.vi.md) | [தமிழ்](README.ta.md)**\n\n本仓库是《深入理解 AI Agent:设计原理与工程实践》一书的开源主仓库,包含**全书正文**与**配套示例代码**。全书正文、配图与配套实验代码全部开源,欢迎把实验亲手跑一遍、提 issue 和 PR。\n\n## 📖 电子书\n\n全书提供多种语言版本:\n\n- **中文 PDF(原版)**:[`book/深入理解-AI-Agent-李博杰-v1.2.pdf`](book/深入理解-AI-Agent-李博杰-v1.2.pdf)\n- **英文 PDF**(社区贡献翻译,by [@nsdevaraj](https://github.com/nsdevaraj)):[`book-en/AI-Agents-in-Depth-Bojie-Li-v1.2.pdf`](book-en/AI-Agents-in-Depth-Bojie-Li-v1.2.pdf)\n- **泰米尔语 PDF**(社区贡献翻译,by [@nsdevaraj](https://github.com/nsdevaraj)):[`book-ta/AI-Agents-in-Depth-Bojie-Li-v1.2-ta.pdf`](book-ta/AI-Agents-in-Depth-Bojie-Li-v1.2-ta.pdf)\n- **越南语 PDF**(社区贡献翻译,by [@toanalien](https://github.com/toanalien)):[`book-vi/AI-Agents-in-Depth-Bojie-Li-v1.1-vi.pdf`](book-vi/AI-Agents-in-Depth-Bojie-Li-v1.1-vi.pdf)\n\n中文正文与编译好的 PDF 位于 [`book/`](book/) 目录;英文、泰米尔语与越南语翻译为**社区贡献**,分别位于 [`book-en/`](book-en/)、[`book-ta/`](book-ta/) 与 [`book-vi/`](book-vi/) 目录,内容可能滞后于中文原版:\n\n- **正文源码**:`book/introduction.md`(引言)、`book/chapter1.md` ~ `book/chapter10.md`(第一至第十章)、`book/afterword.md`(后记)\n- **自行编译**:安装 pandoc、xelatex、ElegantBook 文档类与相关字体后,运行\n\n  ```bash\n  cd book && bash build_pdf.sh\n  ```\n\n  图表由 `book/gen_*_figs.py` 生成、存于 `book/images/`,排版细节见 `book/preamble.tex` 与 `book/*.lua`。\n\n## 📑 内容速览(第 1–10 章)\n\n全书围绕核心公式 **Agent = LLM + 上下文 + 工具** 展开,十章内容如下:\n\n- **第 1 章 · Agent 基础知识**:从“模型即 Agent”的新范式出发,建立 **Agent = LLM + 上下文 + 工具** 的核心公式,并引入 Harness 工程——模型之外的一切工程能力,才是真正的竞争力所在。\n- **第 2 章 · 上下文工程**:上下文决定 Agent 的能力上限。深入大模型 API 的上下文结构、KV Cache 友好设计、提示工程、动态提示词与 Agent Skills、状态栏元信息,以及上下文压缩策略。\n- **第 3 章 · 用户记忆和知识库**:让 Agent 跨会话记住用户、并接入外部知识。涵盖用户记忆系统、RAG 基础管道,以及超越扁平文本的知识组织与检索(结构化索引、知识图谱等)。\n- **第 4 章 · 工具**:工具是 Agent 的双手。讲工具分类与通用设计原则、MCP 协议与工具选择的挑战、感知/执行/协作三类工具,以及事件驱动的异步 Agent。\n- **第 5 章 · Coding Agent 与代码生成**:代码是“能创造新工具的工具”,是通用 Agent 的元能力。以生产级 Coding Agent 为例,展示这一最强通用工具的完整实现。\n- **第 6 章 · Agent 的评估**:把 Agent 的表现变成可比较的信号。从评估环境、数据集设计、指标体系,到统计显著性、可观测性、评估驱动选型,直至生产级内部评

FAQ (5)

문제 해결
Markdown에서 굵은 텍스트가 중국어 따옴표로 시작할 때 굵게가 렌더링되지 않는 문제를 어떻게 해결하나요?

GitHub/CommonMark는 여는 **가 일반 중국어 텍스트 뒤에 오고 “와 같은 중국어 구두점이 바로 뒤따르는 경우 이를 강조 구분 기호로 처리하지 않습니다. book/chapter1.md에서 다음을:

因此它是**“构建”这一部分内部的一个观察视角**,而不是覆盖全书十章的目录。

수정 사항에서 다시 작성된 버전으로 교체하세요:

因此,它是**构建部分内部的一个观察视角**,而不是覆盖全书十章的目录。

따옴표를 반드시 유지해야 하는 경우 대신 HTML을 사용하세요:

因此它是<strong>“构建”这一部分内部的一个观察视角</strong>,而不是覆盖全书十章的目录。

그런 다음 GitHub 미리보기 또는 게시된 페이지를 새로 고쳐 해당 구문이 굵게 표시되는지 확인하세요.

원본 Issue #1136
informational
개념이 추상적으로 느껴지고 앞서 읽은 챕터의 내용을 잊어버릴 때, 밀도 높은 AI 에이전트 책은 어떻게 공부해야 할까요?

순서대로 읽는 대신 능동적이고 프로젝트 기반의 접근 방식을 사용하세요. 1) 제공된 코드를 읽기만 하지 말고 각 장의 실험을 직접 재구현하세요. 코딩 에이전트가 도움이 될 수 있지만, 코드는 직접 작성하고 실행하세요. 2) 실험 출력을 주의 깊게 관찰하고, 접근할 수 없는 API나 예상치 못한 결과 같은 실패를 디버깅하세요. 이러한 문제들은 이해를 깊게 해줍니다. 3) 아이디어를 실제 또는 개인 AI 에이전트 프로젝트에 적용하세요. 4) 각 장의 사고 질문을 자기 점검에 활용하세요. 5) "먼저 책을 얇게 만들고, 그다음 두껍게, 그리고 다시 얇게 만드는" 순환을 따르세요. 핵심 아이디어를 추출하고, 노트와 실험으로 확장한 다음, 자신만의 간결한 원칙으로 압축하세요. 메인테이너들도 이러한 권장 사항을 README FAQ에 추가했으며, 추가적인 읽기 관련 질문은 저장소의 Discussions 영역에서 논의할 수 있습니다.

원본 Issue #933
informational
끝에 토큰을 추가해도 Transformer KV cache가 무효화되지 않는 이유는 무엇인가요?

설명을 수정해야 합니다. 각 토큰에 대해 K_i = x_i @ W_k와 V_i = x_i @ W_v는 해당 토큰의 입력과 projection 가중치에만 의존하며, causal attention은 K_i나 V_i가 이전 토큰에 의존하도록 만들지 않습니다. Causal masking은 토큰이 어떤 key/value에 attend할 수 있는지만 결정합니다. 새 토큰이 추가되더라도 기존 prefix와 캐시된 K/V는 변경되지 않으므로 캐시는 여전히 유효합니다. 새 토큰은 캐시된 prefix와 자신의 새 항목을 사용하여 z_i = softmax(Q_i · K_{0..i}^T / sqrt(d)) @ V_{0..i}로 attention을 계산합니다. prefix의 이전 토큰이 변경되면 영향을 받는 캐시 항목을 다시 계산해야 합니다.

원본 Issue #1104
문제 해결
MkDocs 홈페이지 챕터 카드에 사이드바나 실제 챕터 페이지와 일치하지 않는 오래된 제목이 표시되는 문제를 어떻게 해결하나요?

불일치는 프로젝트 루트 index.md에 하드코딩된 챕터 카드로 인해 발생합니다. 원고 제목이나 챕터 순서가 변경되었을 때 홈페이지 章节速览 카드가 업데이트되지 않아, book/chapter8.md의 제목이 模型后训练임에도 불구하고 Chapter 8에 여전히 Agent 的持续进化가 표시되었습니다.

영구적 해결 방법: PR fix(site): generate homepage chapter index from manuscripts를 적용/병합합니다. 구성된 내비게이션 순서와 각 에디션의 URL 접두사 및 파일명을 사용하여, 매번 MkDocs 빌드 시 현재 원고 제목으로부터 홈페이지 챕터 카드를 생성합니다. 그런 다음 사이트를 다시 빌드하고 재배포합니다.

임시 수동 해결 방법: index.md에서 하드코딩된 <span class="exp-title"> 항목을 실제 챕터 제목 및 링크와 일치하도록 편집합니다. Chapter 8의 경우 카드 제목을 第 8 章 · 模型后训练으로 변경합니다. 또한 Chapter 5–9는 제목/순서가 밀려 있는 것으로 보이므로 함께 확인합니다. 기본 홈페이지만 수정하지 말고 현지화된 모든 홈페이지 파일(index.he.md, index.ko.md, index.ptbr.md 등)을 재생성하거나 업데이트합니다.

원본 Issue #1138
informational
AI Agent 책의 실험에서 모든 코드 줄을 이해해야 할까요?

아니요. 계속 진행하기 전에 모든 코드 줄을 이해할 필요는 없습니다. 먼저 실험의 목표, 아키텍처, 그리고 각 핵심 구성 요소가 무엇을 하는지 이해하세요. 챕터와 pseudocode를 읽은 다음, 코딩 에이전트를 사용해 실험을 처음부터 구현하여 예상 결과가 나올 때까지 진행하세요. 동작을 세밀하게 제어해야 하거나 기반 언어/프레임워크를 배우고 싶을 때만 구현 세부 사항을 공부하세요. 요구사항과 설계를 명확하게 기술하는 데 집중하고, 반복적인 구현 코드는 AI가 처리하도록 맡기세요. 실험 README와 새로 추가된 pseudocode가 설계를 명확히 하는 데 도움이 될 수 있습니다.

원본 Issue #637