agentic-design-patterns-chinese
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseAgentic Design Patterns (Chinese Translation)
Agentic Design Patterns(中文译本)
Skill by ara.so — AI Agent Skills collection.
This project is a comprehensive Chinese translation of Google's "Agentic Design Patterns" book, covering 21 core patterns for building intelligent AI agent systems, plus 7 appendices and additional resources.
由ara.so提供的Skill——AI Agent技能合集。
本项目是谷歌《Agentic Design Patterns》书籍的完整中文译本,涵盖构建智能AI Agent系统的21种核心模式,以及7个附录和额外资源。
Overview
概述
The book systematically introduces AI agent design patterns from basic to advanced:
- Basic Patterns: Prompt Chaining, Routing, Parallelization
- Intermediate Patterns: Reflection, Tool Use, Planning
- Advanced Patterns: Multi-Agent Collaboration, Memory Management, RAG
- Practical Patterns: Safety/Guardrails, Evaluation & Monitoring
本书系统介绍了从基础到进阶的AI Agent设计模式:
- 基础模式:Prompt Chaining(提示链)、Routing(路由)、Parallelization(并行化)
- 中级模式:Reflection(反思)、Tool Use(工具使用)、Planning(规划)
- 高级模式:Multi-Agent Collaboration(多智能体协作)、Memory Management(记忆管理)、RAG
- 实用模式:Safety/Guardrails(安全防护)、Evaluation & Monitoring(评估与监控)
Project Structure
项目结构
agentic-design-patterns/
├── chapters/ # Translated chapters (32 files)
│ ├── Chapter 1_ Prompt Chaining.md
│ ├── Chapter 2_ Routing.md
│ └── ...
├── original/ # Original English chapters
├── images/ # Image assets organized by chapter
├── glossary.md # Terminology reference
├── progress.md # Translation progress tracker
└── translation-guide.md # Translation standardsagentic-design-patterns/
├── chapters/ # 已翻译章节(共32个文件)
│ ├── Chapter 1_ Prompt Chaining.md
│ ├── Chapter 2_ Routing.md
│ └── ...
├── original/ # 英文原版章节
├── images/ # 按章节分类的图片资源
├── glossary.md # 术语参考表
├── progress.md # 翻译进度跟踪表
└── translation-guide.md # 翻译规范指南Accessing the Content
内容访问方式
Online Reading
在线阅读
Visit the deployed GitHub Pages site:
https://adp.xindoo.xyz/访问部署好的GitHub Pages站点:
https://adp.xindoo.xyz/Local Setup
本地部署
- Clone the repository:
bash
git clone https://github.com/xindoo/agentic-design-patterns.git
cd agentic-design-patterns- For local Jekyll server (GitHub Pages style):
bash
bundle install
bundle exec jekyll serve- 克隆仓库:
bash
git clone https://github.com/xindoo/agentic-design-patterns.git
cd agentic-design-patterns- 使用本地Jekyll服务器(GitHub Pages风格):
bash
bundle install
bundle exec jekyll serve
3. For GitBook format:
```bash
npm install -g gitbook-cli
gitbook install
gitbook serve
3. 使用GitBook格式:
```bash
npm install -g gitbook-cli
gitbook install
gitbook serveundefinedundefinedKey Chapters & Patterns
核心章节与模式
Chapter 1: Prompt Chaining (提示链)
第1章:Prompt Chaining(提示链)
Breaking complex tasks into sequential prompts.
python
undefined将复杂任务拆解为一系列连续的提示。
python
undefinedExample: Document analysis chain
Example: Document analysis chain
def analyze_document(doc):
# Step 1: Extract key points
summary_prompt = f"Summarize key points from: {doc}"
summary = llm.generate(summary_prompt)
# Step 2: Analyze sentiment
sentiment_prompt = f"Analyze sentiment of: {summary}"
sentiment = llm.generate(sentiment_prompt)
# Step 3: Generate recommendations
rec_prompt = f"Based on sentiment {sentiment}, provide recommendations"
recommendations = llm.generate(rec_prompt)
return recommendationsundefineddef analyze_document(doc):
# Step 1: Extract key points
summary_prompt = f"Summarize key points from: {doc}"
summary = llm.generate(summary_prompt)
# Step 2: Analyze sentiment
sentiment_prompt = f"Analyze sentiment of: {summary}"
sentiment = llm.generate(sentiment_prompt)
# Step 3: Generate recommendations
rec_prompt = f"Based on sentiment {sentiment}, provide recommendations"
recommendations = llm.generate(rec_prompt)
return recommendationsundefinedChapter 2: Routing (路由)
第2章:Routing(路由)
Directing requests to specialized agents or models.
python
undefined将请求导向专门的Agent或模型。
python
undefinedExample: Intent-based routing
Example: Intent-based routing
def route_query(user_query):
classifier_prompt = f"Classify intent: {user_query}\nOptions: technical, billing, general"
intent = llm.generate(classifier_prompt)
routes = {
"technical": technical_agent,
"billing": billing_agent,
"general": general_agent
}
agent = routes.get(intent, general_agent)
return agent.process(user_query)undefineddef route_query(user_query):
classifier_prompt = f"Classify intent: {user_query}\nOptions: technical, billing, general"
intent = llm.generate(classifier_prompt)
routes = {
"technical": technical_agent,
"billing": billing_agent,
"general": general_agent
}
agent = routes.get(intent, general_agent)
return agent.process(user_query)undefinedChapter 5: Tool Use (工具使用)
第5章:Tool Use(工具使用)
Enabling agents to call external tools and APIs.
python
undefined让Agent能够调用外部工具和API。
python
undefinedExample: Function calling pattern
Example: Function calling pattern
tools = [
{
"name": "search_database",
"description": "Search product database",
"parameters": {"query": "string"}
},
{
"name": "calculate_price",
"description": "Calculate final price with discount",
"parameters": {"base_price": "float", "discount": "float"}
}
]
def agent_with_tools(user_request):
# Agent decides which tool to use
response = llm.generate(
prompt=user_request,
tools=tools,
tool_choice="auto"
)
if response.tool_calls:
for tool_call in response.tool_calls:
result = execute_tool(tool_call.name, tool_call.arguments)
# Feed result back to agent
final_response = llm.generate(
context=[user_request, result]
)
return final_responseundefinedtools = [
{
"name": "search_database",
"description": "Search product database",
"parameters": {"query": "string"}
},
{
"name": "calculate_price",
"description": "Calculate final price with discount",
"parameters": {"base_price": "float", "discount": "float"}
}
]
def agent_with_tools(user_request):
# Agent decides which tool to use
response = llm.generate(
prompt=user_request,
tools=tools,
tool_choice="auto"
)
if response.tool_calls:
for tool_call in response.tool_calls:
result = execute_tool(tool_call.name, tool_call.arguments)
# Feed result back to agent
final_response = llm.generate(
context=[user_request, result]
)
return final_responseundefinedChapter 7: Multi-Agent Collaboration (多智能体协作)
第7章:Multi-Agent Collaboration(多智能体协作)
Coordinating multiple specialized agents.
python
undefined协调多个专门化的Agent。
python
undefinedExample: Research team pattern
Example: Research team pattern
class ResearchTeam:
def init(self):
self.researcher = Agent("researcher", "Find information")
self.analyst = Agent("analyst", "Analyze data")
self.writer = Agent("writer", "Write report")
def collaborate(self, topic):
# Stage 1: Research
research_data = self.researcher.execute(
f"Research topic: {topic}"
)
# Stage 2: Analysis
analysis = self.analyst.execute(
f"Analyze research: {research_data}"
)
# Stage 3: Writing
report = self.writer.execute(
f"Write report based on: {analysis}"
)
return reportundefinedclass ResearchTeam:
def init(self):
self.researcher = Agent("researcher", "Find information")
self.analyst = Agent("analyst", "Analyze data")
self.writer = Agent("writer", "Write report")
def collaborate(self, topic):
# Stage 1: Research
research_data = self.researcher.execute(
f"Research topic: {topic}"
)
# Stage 2: Analysis
analysis = self.analyst.execute(
f"Analyze research: {research_data}"
)
# Stage 3: Writing
report = self.writer.execute(
f"Write report based on: {analysis}"
)
return reportundefinedChapter 14: Knowledge Retrieval (RAG)
第14章:Knowledge Retrieval (RAG)
Retrieval-Augmented Generation pattern.
python
undefined检索增强生成模式。
python
undefinedExample: RAG implementation
Example: RAG implementation
from sentence_transformers import SentenceTransformer
import faiss
class RAGAgent:
def init(self, knowledge_base):
self.encoder = SentenceTransformer('all-MiniLM-L6-v2')
self.index = self._build_index(knowledge_base)
self.documents = knowledge_base
def _build_index(self, documents):
embeddings = self.encoder.encode([doc['text'] for doc in documents])
index = faiss.IndexFlatL2(embeddings.shape[1])
index.add(embeddings)
return index
def query(self, question, top_k=3):
# Retrieve relevant documents
query_embedding = self.encoder.encode([question])
distances, indices = self.index.search(query_embedding, top_k)
context = "\n".join([
self.documents[i]['text'] for i in indices[0]
])
# Generate answer with context
prompt = f"Context: {context}\n\nQuestion: {question}\nAnswer:"
answer = llm.generate(prompt)
return answerundefinedfrom sentence_transformers import SentenceTransformer
import faiss
class RAGAgent:
def init(self, knowledge_base):
self.encoder = SentenceTransformer('all-MiniLM-L6-v2')
self.index = self._build_index(knowledge_base)
self.documents = knowledge_base
def _build_index(self, documents):
embeddings = self.encoder.encode([doc['text'] for doc in documents])
index = faiss.IndexFlatL2(embeddings.shape[1])
index.add(embeddings)
return index
def query(self, question, top_k=3):
# Retrieve relevant documents
query_embedding = self.encoder.encode([question])
distances, indices = self.index.search(query_embedding, top_k)
context = "\n".join([
self.documents[i]['text'] for i in indices[0]
])
# Generate answer with context
prompt = f"Context: {context}\n\nQuestion: {question}\nAnswer:"
answer = llm.generate(prompt)
return answerundefinedChapter 8: Memory Management (记忆管理)
第8章:Memory Management(记忆管理)
Managing short-term and long-term memory.
python
undefined管理短期和长期记忆。
python
undefinedExample: Conversational memory
Example: Conversational memory
class ConversationMemory:
def init(self, max_history=10):
self.short_term = [] # Recent messages
self.long_term = {} # Summary of topics
self.max_history = max_history
def add_message(self, role, content):
self.short_term.append({"role": role, "content": content})
# Summarize if history too long
if len(self.short_term) > self.max_history:
summary = self._summarize_old_messages()
self._store_to_long_term(summary)
self.short_term = self.short_term[-self.max_history:]
def get_context(self):
# Combine long-term summary with recent history
context = []
if self.long_term:
context.append({"role": "system", "content": f"Previous context: {self.long_term}"})
context.extend(self.short_term)
return contextundefinedclass ConversationMemory:
def init(self, max_history=10):
self.short_term = [] # Recent messages
self.long_term = {} # Summary of topics
self.max_history = max_history
def add_message(self, role, content):
self.short_term.append({"role": role, "content": content})
# Summarize if history too long
if len(self.short_term) > self.max_history:
summary = self._summarize_old_messages()
self._store_to_long_term(summary)
self.short_term = self.short_term[-self.max_history:]
def get_context(self):
# Combine long-term summary with recent history
context = []
if self.long_term:
context.append({"role": "system", "content": f"Previous context: {self.long_term}"})
context.extend(self.short_term)
return contextundefinedTranslation Workflow
翻译流程
Contributing to Translation
参与翻译
- Check translation progress:
bash
cat progress.md # View current status- Select a chapter (currently all are in review status):
markdown
undefined- 查看翻译进度:
bash
cat progress.md # 查看当前状态- 选择章节(当前所有章节均处于审核状态):
markdown
undefinedUpdate progress.md
更新progress.md
- 已翻译 Chapter X
- 已审核 Chapter X
3. **Follow translation guide**:
```bash
cat translation-guide.md # Review standards
cat glossary.md # Check terminology- Key translation principles:
- Use glossary for consistent terminology
- Keep code examples in original language
- Preserve markdown structure
- Maintain image paths relative to
images/
- 已翻译 Chapter X
- 已审核 Chapter X
3. **遵循翻译指南**:
```bash
cat translation-guide.md # 查阅翻译规范
cat glossary.md # 核对术语- 核心翻译原则:
- 使用术语表保证术语一致性
- 代码示例保留原始语言
- 保留markdown结构
- 图片路径保持相对的格式
images/
Terminology Reference
术语参考
Common AI agent terms (from ):
glossary.mdmarkdown
| English | 中文 | Notes |
|---------|------|-------|
| Agent | 智能体 / 代理 | Context-dependent |
| Prompt Chaining | 提示链 | |
| Routing | 路由 | |
| Tool Use | 工具使用 | |
| RAG | 检索增强生成 | Keep acronym |
| Multi-Agent | 多智能体 | |
| Guardrails | 护栏 / 安全防护 | |
| Human-in-the-Loop | 人机协同 | |常见AI Agent术语(来自):
glossary.mdmarkdown
| English | 中文 | 说明 |
|---------|------|-------|
| Agent | 智能体 / 代理 | 根据上下文选择 |
| Prompt Chaining | 提示链 | |
| Routing | 路由 | |
| Tool Use | 工具使用 | |
| RAG | 检索增强生成 | 保留缩写 |
| Multi-Agent | 多智能体 | |
| Guardrails | 护栏 / 安全防护 | |
| Human-in-the-Loop | 人机协同 | |Configuration
配置说明
GitHub Pages (_config.yml)
GitHub Pages (_config.yml)
yaml
title: Agentic Design Patterns 中文翻译
description: AI Agent 系统设计模式完整中文指南
url: "https://adp.xindoo.xyz"
baseurl: ""
markdown: kramdown
theme: jekyll-theme-minimalyaml
title: Agentic Design Patterns 中文翻译
description: AI Agent 系统设计模式完整中文指南
url: "https://adp.xindoo.xyz"
baseurl: ""
markdown: kramdown
theme: jekyll-theme-minimalGitBook (SUMMARY.md)
GitBook (SUMMARY.md)
The book structure is defined in :
SUMMARY.mdmarkdown
undefined书籍结构定义在中:
SUMMARY.mdmarkdown
undefinedSummary
Summary
- 简介
- 核心章节
- [第1章:提示链](chapters/Chapter 1_ Prompt Chaining.md)
- [第2章:路由](chapters/Chapter 2_ Routing.md) ...
- 附录
- [附录A:高级提示技术](chapters/Appendix A_ Advanced Prompting Techniques.md) ...
undefined- 简介
- 核心章节
- [第1章:提示链](chapters/Chapter 1_ Prompt Chaining.md)
- [第2章:路由](chapters/Chapter 2_ Routing.md) ...
- 附录
- [附录A:高级提示技术](chapters/Appendix A_ Advanced Prompting Techniques.md) ...
undefinedCommon Patterns & Use Cases
常见模式与应用场景
Pattern 1: Sequential Processing (Prompt Chaining)
模式1:顺序处理(Prompt Chaining)
Use when: Breaking down complex analysis into steps
python
result = chain_step1() → chain_step2() → chain_step3()适用场景:将复杂分析拆解为多个步骤
python
result = chain_step1() → chain_step2() → chain_step3()Pattern 2: Parallel Processing (Parallelization)
模式2:并行处理(Parallelization)
Use when: Independent subtasks can run concurrently
python
results = await asyncio.gather(
task1(), task2(), task3()
)适用场景:独立子任务可同时执行
python
results = await asyncio.gather(
task1(), task2(), task3()
)Pattern 3: Self-Improvement (Reflection)
模式3:自我优化(Reflection)
Use when: Output quality needs iterative refinement
python
output = generate()
critique = reflect(output)
improved = regenerate(critique)适用场景:需要迭代优化输出质量
python
output = generate()
critique = reflect(output)
improved = regenerate(critique)Pattern 4: Dynamic Routing
模式4:动态路由
Use when: Different inputs need different handling
python
handler = router.select(input_type)
result = handler.process(input)适用场景:不同输入需要不同处理方式
python
handler = router.select(input_type)
result = handler.process(input)Troubleshooting
问题排查
Issue: Images not displaying
问题:图片无法显示
Problem: Image paths broken after translation
markdown
 # WrongSolution: Use correct relative paths
markdown
 # Correct from chapters/问题描述:翻译后图片路径失效
markdown
 # 错误路径解决方案:使用正确的相对路径
markdown
 # 从chapters/目录出发的正确路径Issue: Inconsistent terminology
问题:术语不一致
Problem: Same English term translated differently
Agent → 智能体 (Chapter 1)
Agent → 代理 (Chapter 2) # InconsistentSolution: Always check glossary.md first
bash
grep "Agent" glossary.md问题描述:同一英文术语翻译不同
Agent → 智能体(第1章)
Agent → 代理(第2章) # 不一致解决方案:先查阅glossary.md
bash
grep "Agent" glossary.mdUse: 智能体 (preferred) or 代理 (context-specific)
使用:智能体(优先)或代理(根据上下文)
undefinedundefinedIssue: Jekyll build fails
问题:Jekyll构建失败
Problem:
Liquid Exception: Invalid DateSolution: Check frontmatter dates in markdown files
yaml
---问题描述:
Liquid Exception: Invalid Date解决方案:检查markdown文件中的前置日期字段
yaml
---Remove or fix invalid date fields
移除或修复无效日期字段
updated_at: "2026-05-17" # Future date might cause issues
undefinedupdated_at: "2026-05-17" # 未来日期可能导致问题
undefinedIssue: Missing dependencies
问题:依赖缺失
Problem: fails
bundle exec jekyll serveSolution: Install dependencies
bash
gem install bundler
bundle install问题描述:执行失败
bundle exec jekyll serve解决方案:安装依赖
bash
gem install bundler
bundle installOr for GitBook:
若使用GitBook:
npm install -g gitbook-cli
gitbook install
undefinednpm install -g gitbook-cli
gitbook install
undefinedAdvanced Usage
高级用法
Searching the Content
内容搜索
Use grep for term searches:
bash
undefined使用grep进行术语搜索:
bash
undefinedFind all mentions of "RAG"
查找所有提及"RAG"的内容
grep -r "RAG" chapters/
grep -r "RAG" chapters/
Find specific pattern implementations
查找特定模式的实现
grep -r "def.*agent" chapters/
grep -r "def.*agent" chapters/
Search in Chinese
中文内容搜索
grep -r "多智能体" chapters/
undefinedgrep -r "多智能体" chapters/
undefinedExtracting Code Examples
提取代码示例
bash
undefinedbash
undefinedExtract all Python code blocks from a chapter
提取某一章节中的所有Python代码块
sed -n '//p' chapters/Chapter\ 5_\ Tool\ Use.md
python/,/undefinedsed -n '//p' chapters/Chapter\ 5_\ Tool\ Use.md
python/,/undefinedGenerating PDF/EPUB
生成PDF/EPUB格式
bash
undefinedbash
undefinedUsing GitBook
使用GitBook生成
gitbook pdf ./ ./agentic-patterns-zh.pdf
gitbook epub ./ ./agentic-patterns-zh.epub
undefinedgitbook pdf ./ ./agentic-patterns-zh.pdf
gitbook epub ./ ./agentic-patterns-zh.epub
undefinedResources
相关资源
- Online Book: https://adp.xindoo.xyz/
- GitHub Repo: https://github.com/xindoo/agentic-design-patterns
- Author: xindoo (https://zxs.io)
- Translation Guide:
translation-guide.md - Glossary:
glossary.md - Progress Tracker:
progress.md
- 在线书籍:https://adp.xindoo.xyz/
- GitHub仓库:https://github.com/xindoo/agentic-design-patterns
- 译者:xindoo(https://zxs.io)
- 翻译指南:
translation-guide.md - 术语表:
glossary.md - 进度跟踪:
progress.md
Contributing
贡献指南
bash
undefinedbash
undefinedFork and clone
Fork并克隆仓库
Create feature branch
创建功能分支
git checkout -b review/chapter-1-improvements
git checkout -b review/chapter-1-improvements
Make changes and commit
修改内容并提交
git add chapters/Chapter\ 1_\ Prompt\ Chaining.md
git commit -m "Review and improve Chapter 1 translation"
git add chapters/Chapter\ 1_\ Prompt\ Chaining.md
git commit -m "Review and improve Chapter 1 translation"
Push and create PR
推送并创建PR
git push origin review/chapter-1-improvements
Follow `CONTRIBUTING.md` for detailed guidelines.git push origin review/chapter-1-improvements
详细贡献规则请参考`CONTRIBUTING.md`。