Agent 概念
Agent 的核心是让大模型自主决策、调用工具、执行多步任务
一、Agent 核心概念与架构
1. Agent 的定义与组成
- 核心组件:LLM(大脑)+ 工具(Tools)+ 记忆(Memory)+ 规划(Planning)
- 与 RAG 的区别:RAG 是“检索-增强生成”,Agent 是“推理-行动循环”
- 典型流程:观察(Observe)→ 思考(Think)→ 行动(Act)→ 循环
2. Agent 的类型
- ReAct 模式:交替进行推理(Reasoning)和行动(Acting),输出可解释的轨迹
- Function Calling Agent:利用模型自带的函数调用能力,直接输出结构化工具调用
- Plan-and-Execute Agent:先规划步骤,再逐步执行(适合复杂任务)
- 多智能体系统:多个 Agent 协作(如 AutoGen、CrewAI)
二、推理与规划机制
1. 推理方法
- Chain-of-Thought (CoT):让模型逐步推理
- Tree-of-Thoughts (ToT):探索多条推理路径
- Graph-of-Thoughts (GoT):更复杂的推理图结构
2. 规划策略
- 任务分解:将大任务拆分为子任务(如使用
Plan-and-Solve) - 重新规划:根据执行结果动态调整计划
- 使用规划工具:如
LangGraph的状态图规划
3. 关键提示技术
- ReAct 提示模板:
Thought: ... Action: ... Observation: ... - CoT 提示:
Let's think step by step.
三、工具(Tools)与函数调用
1. 工具的定义与封装
- 如何将任意 Python 函数/API 封装成 Agent 可调用的工具
- 工具的描述文档(对 LLM 至关重要)
2. 常用工具类型
- 信息检索:搜索引擎(Google/Bing)、数据库查询、API 调用
- 代码执行:Python REPL、Bash 终端
- 文件操作:读写文件、图像处理
- 计算器:数学表达式计算
- 外部服务:发送邮件、创建日历事件、调用内部 API
3. 工具调用方式
- OpenAI Function Calling:模型输出 JSON 结构,由框架解析执行
- LangChain Tools:使用
@tool装饰器,自动生成 schema - 自定义解析器:从模型文本输出中解析工具名称和参数
4. 工具选择与路由
- Tool Router:根据用户意图自动选择合适的工具
- 多工具协作:一个 Agent 调用多个工具完成子任务
四、记忆(Memory)管理
Agent 需要比 RAG 更复杂的记忆系统,因为需要记住对话历史、中间步骤、长期偏好。
1. 记忆类型
- 短期记忆:当前对话上下文(滑动窗口)
- 长期记忆:向量数据库存储历史交互、用户画像
- 工作记忆:当前任务执行过程中的中间状态
2. 记忆组件(以 LangChain 为例)
- BufferMemory:保存最近 N 条对话
- VectorStoreRetrieverMemory:从向量库检索相关记忆
- ConversationSummaryMemory:对旧对话生成摘要压缩
- EntityMemory:存储关于特定实体(人物/地点)的信息
3. 记忆与 RAG 的区别
- RAG 通常只检索外部知识库,而 Agent 的记忆包含自身行动历史和环境反馈
五、Agent 框架
1. LangChain Agent
- 旧版
AgentExecutor(功能完整但灵活性一般) - 新版
LangGraph(推荐):基于图的状态机,支持循环、分支、人机交互
2. AutoGen(微软)
- 多智能体对话框架,支持多个 Agent 协同工作
- 内置
UserProxyAgent、AssistantAgent等角色
3. CrewAI
- 角色化 Agent 团队,适合任务编排
4. LlamaIndex Agent
- 与 RAG 紧密集成,提供
ReActAgent、OpenAIAgent
5. OpenAI Agents SDK
6. 手写 ReAct 循环(理解原理)
while True:
thought = llm.generate(prompt + history)
if "Final Answer" in thought:
break
action = parse_action(thought)
observation = execute_tool(action)
history += f"Observation: {observation}\n"
六、关键进阶主题
1. 错误处理与鲁棒性
- 重试机制:工具调用失败后的重试
- 解析错误:模型输出非预期格式时的 fallback
- 循环检测:防止 Agent 陷入无限循环
2. 人机协作(Human-in-the-Loop)
- 关键步骤请求用户确认
- 允许用户中途修改计划
3. 评估与调试
- 轨迹评估:检查 Agent 的推理链条是否合理
- 工具成功率:统计工具调用的正确率
- 任务完成率:端到端的成功率
- 常用工具:LangSmith、AgentBench
4. 安全与限制
- 工具权限控制:禁止 Agent 调用危险操作(如删除文件)
- 成本控制:限制模型调用次数、token 消耗
- 沙箱执行:将代码执行放入隔离环境
项目
- 个人助手 Agent:查询天气、发送邮件、设置提醒
- 数据分析 Agent:读取 CSV → 写 Python 代码分析 → 生成图表
- 网页自动化 Agent:使用 Playwright 工具完成表单填写