什么是AI Agent
AI Agent是一种能够自主感知环境、制定计划、使用工具并执行行动的智能系统。与传统的「一问一答」模式不同,Agent能够进行多步骤推理,自主决定何时调用外部工具、如何组合多个操作来完成复杂任务。
ReAct架构
ReAct(Reasoning + Acting)是最经典的Agent架构,它将推理和行动交替进行:
from langchain.agents import initialize_agent, AgentType
from langchain.tools import Tool
# 定义工具
tools = [
Tool(name="搜索", func=search_func, description="搜索互联网信息"),
Tool(name="计算器", func=calculator_func, description="执行数学计算"),
Tool(name="数据库查询", func=db_query, description="查询数据库")
]
# 创建ReAct Agent
agent = initialize_agent(
tools=tools,
llm=llm,
agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
verbose=True
)
# Agent自主推理和执行
result = agent.run("查询过去一周的销售数据,计算总销售额,并搜索行业平均增长率进行对比")ReAct的工作流程:Thought(思考)→ Action(行动)→ Observation(观察)→ Thought...循环直到得出最终答案。
Plan-and-Execute架构
Plan-and-Execute架构将规划和执行分离,先制定完整计划,再逐步执行:
from langchain.experimental.plan_and_execute import (
PlanAndExecute, load_agent_executor, load_chat_planner
)
planner = load_chat_planner(llm)
executor = load_agent_executor(llm, tools, verbose=True)
agent = PlanAndExecute(
planner=planner,
executor=executor,
verbose=True
)
result = agent.run("分析公司Q3财报,写一份投资分析报告")Plan-and-Execute的优势:
- 全局视角:先规划再执行,避免短视决策
- 可追踪:每一步都有明确的计划对应
- 可中断恢复:执行过程可以暂停和恢复
ReWOO架构
ReWOO(Reasoning WithOut Observation)将推理和工具调用分离,减少LLM调用次数。它先生成完整的工具调用计划,然后批量执行所有工具调用,最后统一生成最终答案。这种方式相比ReAct能减少50%以上的API调用。
架构选型指南
| 场景 | 推荐架构 |
|---|---|
| 简单工具调用 | ReAct |
| 复杂多步骤任务 | Plan-and-Execute |
| 对延迟敏感 | ReWOO |
| 需要多角色协作 | Multi-Agent |
Agent设计原则
- 工具原子化:每个工具只做一件事,做好一件事
- 错误处理:Agent需要能够处理工具调用失败的情况
- 安全边界:对敏感操作(如删除、支付)需要人工确认
- 可观测性:记录Agent的每一步推理和行动,便于调试