Agent 架构设计:构建智能 AI 系统
什么是 AI Agent?
AI Agent 是能够:
- •感知环境
- •制定计划
- •执行行动
- •学习改进
的自主系统。
Agent 核心组件
┌─────────────────────────────┐
│ AI Agent │
│ ┌─────────────────────┐ │
用户 ────▶│ │ LLM(大脑) │ │
│ └─────────────────────┘ │
│ │ │
│ ┌────────┼────────┐ │
│ ▼ ▼ ▼ │
│ 记忆 规划器 工具 │
└─────────────────────────────┘
1. LLM(大脑)
核心推理引擎:
- •理解用户意图
- •制定行动计划
- •生成回复
2. 记忆系统 (Memory)
短期记忆:当前对话上下文 长期记忆:历史交互、用户偏好
interface Memory {
shortTerm: Message[]; // 当前对话
longTerm: VectorStore; // 向量数据库
workingMemory: any; // 当前任务状态
}
3. 规划器 (Planner)
将复杂任务分解为可执行步骤:
用户目标:"帮我订下周去北京的机票和酒店"
↓
规划器分解:
1. 确认出发日期和返回日期
2. 搜索北京机票
3. 筛选合适航班
4. 搜索北京酒店
5. 推荐酒店选项
6. 确认预订
4. 工具集 (Tools)
Agent 可调用的外部能力:
- •搜索引擎
- •计算器
- •代码执行
- •API 调用
常见架构模式
1. ReAct 模式
思考-行动-观察循环:
while not done:
thought = llm.think(context)
action = llm.decide_action(thought)
observation = execute(action)
context.add(observation)
2. Plan-and-Execute 模式
先规划,后执行:
plan = planner.create_plan(goal)
for step in plan:
result = executor.run(step)
if need_replan(result):
plan = planner.replan(goal, result)
3. LATS 模式 (Language Agent Tree Search)
探索多条路径,选择最优:
目标
/ \
路径A 路径B
/\ /\
A1 A2 B1 B2
↓
评估并选择最佳路径
Agent 设计最佳实践
1. 工具描述要精确
❌ "搜索工具"
✅ "search_web: 搜索互联网获取实时信息。
适用于:查询最新新闻、产品价格、天气。
不适用于:访问付费内容、需要登录的页面。"
2. 错误处理要健壮
async function executeWithRetry(action, maxRetries = 3) {
for (let i = 0; i < maxRetries; i++) {
try {
return await execute(action);
} catch (error) {
if (i === maxRetries - 1) {
return fallback(action, error);
}
await sleep(exponentialBackoff(i));
}
}
}
3. 记忆管理要高效
// 短期记忆:滑动窗口
function trimShortTermMemory(messages, maxTokens) {
while (countTokens(messages) > maxTokens) {
messages.shift(); // 移除最旧消息
}
}
// 长期记忆:相关性检索
function retrieveRelevant(query, k = 5) {
return vectorStore.similaritySearch(query, k);
}
实战示例:构建研究 Agent
const researchAgent = {
name: "Research Assistant",
tools: [
"search_web", // 搜索网络
"read_url", // 读取网页
"take_notes", // 记录要点
"write_report" // 生成报告
],
systemPrompt: `
你是一个研究助手,帮助用户收集和整理信息。
工作流程:
1. 理解研究主题
2. 搜索相关资料
3. 阅读并提取关键信息
4. 整理成结构化报告
始终标注信息来源。
`,
memory: {
notes: [], // 研究笔记
sources: [], // 来源列表
outline: null // 报告大纲
}
};
Agent 评估指标
| 指标 | 描述 | 目标 | |-----|------|------| | 任务完成率 | 成功完成任务的比例 | > 90% | | 步骤效率 | 平均完成任务的步骤数 | 越少越好 | | 工具调用准确率 | 正确选择工具的比例 | > 95% | | 错误恢复率 | 从错误中恢复的能力 | > 80% |
练习
设计一个"购物助手"Agent:
功能需求:
- •搜索商品
- •比较价格
- •查看评价
- •下单购买
思考:
- •需要哪些工具?
- •系统提示怎么写?
- •如何处理用户改变主意?
小结
- •Agent = LLM + 记忆 + 规划 + 工具
- •选择合适的架构模式
- •工具描述要精确
- •错误处理和记忆管理很重要
下一课我们将学习多 Agent 协作。