本篇是《AI Agent 实战:从设计模式到生产落地》的附录 A + B 合集:主流框架速查 + 工具与资源清单,方便随时查阅。
附录 A:主流框架速查
本附录为全书涉及的 5 大框架/协议的横向对比速查。详细选型逻辑见正文对应章节。
A.1 框架总览
| 框架/协议 | 类型 | 核心概念 | 适合 | 正文章节 |
|---|
| LangGraph | 编排框架 | 图(StateGraph)+ 节点 + 条件边 | 复杂编排、生产级 | 6、10-16 章 |
| AutoGen | 多 Agent 框架 | Agent 群聊(ConversableAgent) | 研究、辩论、协商 | 16 章 |
| CrewAI | 多 Agent 框架 | 角色/任务/工具声明式 | 快速原型 | 16 章 |
| MCP | 工具接入协议 | Server / Client + 工具/资源/提示 | 工具标准化接入 | 7 章 |
| OpenAI 兼容 API | 模型接口 | chat.completions + tools 参数 | 通用模型调用 | 5、14 章 |
A.2 LangGraph 速查
核心概念
StateGraph(状态图)→ 节点(Node)+ 边(Edge)
├─ add_node: 添加处理节点
├─ add_edge: 顺序边
├─ add_conditional_edges: 条件边(路由/循环)
└─ compile: 编译为可执行图 → invoke(输入)
最小示例(提示链)
from langgraph.graph import StateGraph, END
g = StateGraph(dict)
g.add_node("extract", lambda s: {**s, "e": extract(s)})
g.add_node("write", lambda s: {**s, "r": write(s)})
g.add_edge("extract", "write")
g.add_edge("write", END)
app = g.compile()
result = app.invoke({"q": "..."})
关键能力
- 状态管理:节点间通过 state 传递,天然支持分支/循环
- 条件边:实现路由、反思循环、重试
- checkpointer:断点续跑、人工介入(Human-in-loop)
A.3 AutoGen 速查
核心概念
ConversableAgent(可对话 Agent)
├─ UserProxyAgent(人类代理:可执行代码/工具)
├─ AssistantAgent(助手)
└─ GroupChat(群聊)+ GroupChatManager(群聊管理者)
最小示例(双 Agent 对话)
from autogen import ConversableAgent, UserProxyAgent
assistant = ConversableAgent("assistant", llm_config={"model": "..."})
user_proxy = UserProxyAgent("user", code_execution_config={"work_dir": "."})
user_proxy.initiate_chat(assistant, message="帮我写个冒泡排序")
注意事项
- 群聊模式易失控:自由对话需强约束(停止条件/轮数上限,见 16 章)
- 生产场景慎用自由对话:优先结构化传递(16.3.1)
A.4 CrewAI 速查
核心概念
Agent(角色)+ Task(任务)+ Crew(团队)
├─ Agent: role/goal/backstory/tools
├─ Task: description/expected_output/agent
└─ Crew: agents + tasks + process(sequential/hierarchical)
最小示例
from crewai import Agent, Task, Crew
researcher = Agent(role="研究员", goal="查资料", backstory="...")
writer = Agent(role="写手", goal="写报告", backstory="...")
task1 = Task(description="调研市场", expected_output="要点清单", agent=researcher)
task2 = Task(description="写报告", expected_output="报告", agent=writer)
crew = Crew(agents=[researcher, writer], tasks=[task1, task2])
result = crew.kickoff()
注意事项
- 上手快但封装深:底层控制力弱,复杂逻辑受限
- 适合原型:快速验证多 Agent 想法(16.4)
A.5 MCP 速查
架构
MCP Client(Agent 应用) ←协议→ MCP Server(工具/数据提供方)
├─ 传输:stdio(本地)/ HTTP(远程)
├─ 能力:tools(工具)/ resources(资源)/ prompts(提示)
└─ SDK:mcp(官方)/ fastmcp(FastMCP 简化)
最小 Server(FastMCP)
from fastmcp import FastMCP
mcp = FastMCP("my-tools")
@mcp.tool()
def my_tool(x: int) -> int:
"""工具描述:何时用/做什么"""
return x * 2
mcp.run(transport="stdio")
关键点
- docstring 即工具描述(7.4.2)
- 接入前审查 Server 暴露的工具(供应链安全,22 章)
A.6 OpenAI 兼容 API 速查
基础调用
from openai import OpenAI
client = OpenAI(base_url="https://api.deepseek.com", api_key="<key>")
resp = client.chat.completions.create(
model="deepseek-chat",
messages=[{"role": "user", "content": "你好"}],
temperature=0.3,
max_tokens=1000,
)
print(resp.choices[0].message.content)
工具调用(第 5 章)
resp = client.chat.completions.create(
model="deepseek-chat",
messages=[{"role": "user", "content": "查订单 A1"}],
tools=[{...}],
tool_choice="auto",
)
msg = resp.choices[0].message
if msg.tool_calls:
print(msg.tool_calls[0].function.name, msg.tool_calls[0].function.arguments)
结构化输出(第 4 章)
resp = client.chat.completions.create(
model="deepseek-chat",
messages=[...],
response_format={"type": "json_object"},
)
A.7 框架选型速查表
| 你的需求 | 首选 | 备选 |
|---|
| 纯顺序流程(提示链) | 自研(10 章) | LangGraph |
| 复杂图结构(分支/循环) | LangGraph | 自研 |
| 多 Agent 协作(生产) | LangGraph + 自研编排 | CrewAI |
| 多 Agent 研究/辩论 | AutoGen | LangGraph |
| 工具标准化接入 | MCP | 手写 Schema |
| 快速原型验证 | CrewAI | AutoGen |
| 通用模型调用 | OpenAI 兼容 API | 各厂商 SDK |
核心原则(第 29 章):先自研跑通理解原理,再按需选框架;学模式,不追框架。
附录 B:工具与资源清单
本附录汇总全书涉及的开发工具、开源项目、云服务与学习资源。均为第三方资源,使用时以官方文档为准,接入前按第 22 章做安全审查。
B.1 开发框架与库
| 类别 | 工具 | 用途 | 备注 |
|---|
| Agent 编排 | LangGraph | 图结构工作流 | 第 10-16 章对照 |
| Agent 编排 | AutoGen | 多 Agent 对话 | 第 16 章 |
| Agent 编排 | CrewAI | 声明式多 Agent | 第 16 章 |
| 工具接入 | MCP / FastMCP | 工具标准化 | 第 7 章 |
| 提示工程 | LangChain | 链式组件 | 部分章节对照 |
| 评测 | Langfuse | LLM 追踪/评测 | 第 20-21 章 |
| 评测 | LangSmith | LangChain 生态评测 | 第 20 章 |
| 评测 | LLM-as-Judge(自建) | 模型评分 | 第 17、20 章 |
| 向量库 | Chroma | 轻量向量库 | 第 8 章 |
| 向量库 | Qdrant | 生产级向量库 | 第 8 章 |
| 向量库 | FAISS | Meta 开源向量库 | 第 8 章 |
| 向量库 | Milvus | 大规模向量库 | 第 8 章 |
| 语义路由 | semantic-router | embedding 意图路由 | 第 11 章变体 |
| 记忆存储 | Redis | 会话/缓存 | 第 3、9 章 |
| 记忆存储 | PostgreSQL | 结构化记忆 | 第 9 章 |
B.2 模型与 API
| 模型 | 厂商 | 接入方式 | 特点 | 备注 |
|---|
| DeepSeek-V3 | 深度求索 | OpenAI 兼容 API | 通用强、价格低 | 第 2 章推荐主力 |
| DeepSeek-R1 | 深度求索 | OpenAI 兼容 API | 推理强 | 别乱调温度(24 章) |
| Qwen 系列 | 阿里 | OpenAI 兼容 API / 开源 | 开源可私有化 | 长窗口 |
| 豆包 Doubao | 字节 | 火山方舟 API | 中文对话自然 | 字节生态 |
| 混元 Hunyuan | 腾讯 | OpenAI 兼容 API | 腾讯生态 | 微信场景 |
| GPT 系列 | OpenAI | 官方 API | 综合最强 | 成本高 |
| Claude | Anthropic | 官方 API | 长文本/代码强 | MCP 起源 |
B.3 追踪与可观测
| 工具 | 类型 | 特点 | 正文章节 |
|---|
| Langfuse | 开源可自部署 | LLM 专用 trace/评测/成本面板 | 21 章推荐 |
| OpenTelemetry | 标准 | 通用可观测,可接 LLM | 21 章 |
| LangSmith | SaaS | LangChain 生态 | 20-21 章 |
| 自建 JSON 日志 | 自研 | 零依赖起步 | 21 章 |
B.4 部署基础设施
| 类别 | 工具/服务 | 用途 |
|---|
| 无服务器 | AWS Lambda / 云函数 | Agent 服务托管 |
| 容器 | Docker | 环境打包 |
| 编排 | Kubernetes / 云原生 | 大规模部署 |
| 网关 | API Gateway | 限流/鉴权/路由 |
| 消息队列 | Redis Streams / Kafka | 异步任务 |
| 定时任务 | APScheduler / Celery beat | 周期任务 |
B.5 安全工具
| 工具 | 用途 | 说明 |
|---|
| Guardrails AI | 输出护栏 | 第 17 章 |
| NeMo Guardrails | 企业级护栏 | NVIDIA,第 17 章 |
| LlamaGuard | 内容安全分类 | Meta,第 22 章 |
| 自建注入检测 | 输入过滤 | 第 22 章 22.4 |
| 沙箱(Docker) | 代码执行隔离 | 第 22 章 |
B.6 学习资源
| 类型 | 资源 | 说明 |
|---|
| 文档 | MCP 官方文档 | 协议最新规范 |
| 文档 | LangGraph 官方文档 | 图编排 API |
| 开源 | AutoGen / CrewAI 仓库 | 学习多 Agent 实现 |
| 图书 | 本书参考书单 | 见策划方案 1.1 节竞品表 |
| 社区 | GitHub Trending / Hacker News | 跟踪 Agent 生态演进 |
| 论文 | ReAct / Reflexion / ToT | 设计模式源头 |
B.7 快速上手建议
- 起步组合:DeepSeek API + Chroma + 自建日志(零成本跑通第 1-9 章)
- 工程组合:DeepSeek/Qwen API + Qdrant + Langfuse + MCP(生产级)
- 私有化组合:Qwen 开源 + Docker + 自建(数据敏感场景)
- 多 Agent 组合:LangGraph + MCP Server 群(复杂编排)
注意:第三方服务随时可能变更,接入前查看最新文档;涉及数据/安全的工具,先过第 22 章检查清单。