什么是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的每一步推理和行动,便于调试