agentic-design-patterns-chinese

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Agentic 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 standards
agentic-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

本地部署

  1. Clone the repository:
bash
git clone https://github.com/xindoo/agentic-design-patterns.git
cd agentic-design-patterns
  1. For local Jekyll server (GitHub Pages style):
bash
bundle install
bundle exec jekyll serve
  1. 克隆仓库:
bash
git clone https://github.com/xindoo/agentic-design-patterns.git
cd agentic-design-patterns
  1. 使用本地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 serve
undefined
undefined

Key Chapters & Patterns

核心章节与模式

Chapter 1: Prompt Chaining (提示链)

第1章:Prompt Chaining(提示链)

Breaking complex tasks into sequential prompts.
python
undefined
将复杂任务拆解为一系列连续的提示。
python
undefined

Example: 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 recommendations
undefined
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 recommendations
undefined

Chapter 2: Routing (路由)

第2章:Routing(路由)

Directing requests to specialized agents or models.
python
undefined
将请求导向专门的Agent或模型。
python
undefined

Example: 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)
undefined
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)
undefined

Chapter 5: Tool Use (工具使用)

第5章:Tool Use(工具使用)

Enabling agents to call external tools and APIs.
python
undefined
让Agent能够调用外部工具和API。
python
undefined

Example: 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_response
undefined
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_response
undefined

Chapter 7: Multi-Agent Collaboration (多智能体协作)

第7章:Multi-Agent Collaboration(多智能体协作)

Coordinating multiple specialized agents.
python
undefined
协调多个专门化的Agent。
python
undefined

Example: 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 report
undefined
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 report
undefined

Chapter 14: Knowledge Retrieval (RAG)

第14章:Knowledge Retrieval (RAG)

Retrieval-Augmented Generation pattern.
python
undefined
检索增强生成模式。
python
undefined

Example: 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 answer
undefined
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 answer
undefined

Chapter 8: Memory Management (记忆管理)

第8章:Memory Management(记忆管理)

Managing short-term and long-term memory.
python
undefined
管理短期和长期记忆。
python
undefined

Example: 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 context
undefined
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 context
undefined

Translation Workflow

翻译流程

Contributing to Translation

参与翻译

  1. Check translation progress:
bash
cat progress.md  # View current status
  1. Select a chapter (currently all are in review status):
markdown
undefined
  1. 查看翻译进度
bash
cat progress.md  # 查看当前状态
  1. 选择章节(当前所有章节均处于审核状态):
markdown
undefined

Update progress.md

更新progress.md

  • 已翻译 Chapter X
  • 已审核 Chapter X

3. **Follow translation guide**:
```bash
cat translation-guide.md  # Review standards
cat glossary.md          # Check terminology
  1. 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          # 核对术语
  1. 核心翻译原则
  • 使用术语表保证术语一致性
  • 代码示例保留原始语言
  • 保留markdown结构
  • 图片路径保持相对
    images/
    的格式

Terminology Reference

术语参考

Common AI agent terms (from
glossary.md
):
markdown
| English | 中文 | Notes |
|---------|------|-------|
| Agent | 智能体 / 代理 | Context-dependent |
| Prompt Chaining | 提示链 | |
| Routing | 路由 | |
| Tool Use | 工具使用 | |
| RAG | 检索增强生成 | Keep acronym |
| Multi-Agent | 多智能体 | |
| Guardrails | 护栏 / 安全防护 | |
| Human-in-the-Loop | 人机协同 | |
常见AI Agent术语(来自
glossary.md
):
markdown
| 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-minimal
yaml
title: Agentic Design Patterns 中文翻译
description: AI Agent 系统设计模式完整中文指南
url: "https://adp.xindoo.xyz"
baseurl: ""
markdown: kramdown
theme: jekyll-theme-minimal

GitBook (SUMMARY.md)

GitBook (SUMMARY.md)

The book structure is defined in
SUMMARY.md
:
markdown
undefined
书籍结构定义在
SUMMARY.md
中:
markdown
undefined

Summary

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) ...
undefined

Common 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
![Image](../images/chapter-1/diagram.png)  # Wrong
Solution: Use correct relative paths
markdown
![Image](images/chapter-1/diagram.png)  # Correct from chapters/
问题描述:翻译后图片路径失效
markdown
![Image](../images/chapter-1/diagram.png)  # 错误路径
解决方案:使用正确的相对路径
markdown
![Image](images/chapter-1/diagram.png)  # 从chapters/目录出发的正确路径

Issue: Inconsistent terminology

问题:术语不一致

Problem: Same English term translated differently
Agent → 智能体 (Chapter 1)
Agent → 代理 (Chapter 2)  # Inconsistent
Solution: Always check glossary.md first
bash
grep "Agent" glossary.md
问题描述:同一英文术语翻译不同
Agent → 智能体(第1章)
Agent → 代理(第2章)  # 不一致
解决方案:先查阅glossary.md
bash
grep "Agent" glossary.md

Use: 智能体 (preferred) or 代理 (context-specific)

使用:智能体(优先)或代理(根据上下文)

undefined
undefined

Issue: Jekyll build fails

问题:Jekyll构建失败

Problem:
Liquid Exception: Invalid Date
Solution: 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

undefined

updated_at: "2026-05-17" # 未来日期可能导致问题

undefined

Issue: Missing dependencies

问题:依赖缺失

Problem:
bundle exec jekyll serve
fails
Solution: Install dependencies
bash
gem install bundler
bundle install
问题描述
bundle exec jekyll serve
执行失败
解决方案:安装依赖
bash
gem install bundler
bundle install

Or for GitBook:

若使用GitBook:

npm install -g gitbook-cli gitbook install
undefined
npm install -g gitbook-cli gitbook install
undefined

Advanced Usage

高级用法

Searching the Content

内容搜索

Use grep for term searches:
bash
undefined
使用grep进行术语搜索:
bash
undefined

Find 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/
undefined
grep -r "多智能体" chapters/
undefined

Extracting Code Examples

提取代码示例

bash
undefined
bash
undefined

Extract all Python code blocks from a chapter

提取某一章节中的所有Python代码块

sed -n '/
python/,/
/p' chapters/Chapter\ 5_\ Tool\ Use.md
undefined
sed -n '/
python/,/
/p' chapters/Chapter\ 5_\ Tool\ Use.md
undefined

Generating PDF/EPUB

生成PDF/EPUB格式

bash
undefined
bash
undefined

Using GitBook

使用GitBook生成

gitbook pdf ./ ./agentic-patterns-zh.pdf gitbook epub ./ ./agentic-patterns-zh.epub
undefined
gitbook pdf ./ ./agentic-patterns-zh.pdf gitbook epub ./ ./agentic-patterns-zh.epub
undefined

Resources

相关资源

Contributing

贡献指南

bash
undefined
bash
undefined

Fork 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`。