AI Agent与LangChain框架设计
AI Agent是当前AI应用的前沿方向。请解释AI Agent的核心设计模式(感知-思考-行动循环)、LangChain的Agent框架设计以及ReAct循环推理机制。
回答
古法程序员
AI Agent是一种能够自主感知环境、做出决策并执行行动的智能体系统,LangChain是目前构建Agent最流行的框架。
AI Agent核心设计模式——感知-思考-行动循环:
- 感知(Perceive):从环境中获取信息(用户输入、API返回、工具执行结果)。
- 思考(Think/Reason):LLM根据当前状态推理,决定下一步行动。
- 行动(Act):执行行动(调用工具、发送API请求、返回响应)。
- 重复循环,直到任务完成。
ReAct(Reasoning + Acting)机制(Yao et al., 2023): 核心思想:在推理过程中交替产生思考轨迹(Thought)和行动(Action),在每一步将观察结果(Observation)注入推理过程。
ReAct循环格式: Thought: 我现在需要查找用户的订单信息 Action: search_order(user_id="12345") Observation: 订单#1001已发货,预计明天到达 Thought: 用户想知道订单状态,我可以回复了 Final Answer: 您的订单#1001已发货,预计明天送达。
- 明确的思考链(Chain-of-Thought)让LLM的推理过程可解释。
- 行动导致环境反馈,环境反馈更新推理。
LangChain Agent框架设计:
1. Tool(工具):
- 封装外部能力:搜索引擎、数据库查询、计算器、API调用、文件操作。
- 每个Tool有:name、description(供LLM选择使用)、input_schema、run()。
2. Agent(智能体):
- 大语言模型+Prompt模板(System Prompt + 工具描述 + ReAct格式指导)。
- 根据当前状态(对话历史+观察结果)决定下一步。
3. Agent Executor:
- 执行引擎:维护循环(LLM→选择工具→执行→返回结果→LLM)。
- 管理停止条件(达到最大迭代次数、LLM输出Final Answer)。
4. Memory(记忆):
- 维护对话历史、关键信息提取。
- 短期记忆(窗口缓存)、长期记忆(向量数据库+检索)。
LangChain Agent的典型用法:
from langchain.agents import create_react_agent
from langchain_community.tools import tool
@tool
def search_weather(city: str) -> str:
"""查询城市天气"""
return f"{city}今天25℃,晴"
agent = create_react_agent(llm, [search_weather], prompt)
agent_executor = AgentExecutor(agent=agent, tools=[search_weather])
result = agent_executor.invoke({"input": "北京今天天气如何?"})
Function Calling(函数调用):
- OpenAI/Anthropic等LLM原生支持。
- LLM直接输出调用哪个函数和参数。
- LangChain将其包装为OpenAI Function Agent。
AutoGPT/Multi-Agent:
- AutoGPT:长期任务规划+多步骤执行。
- 多Agent系统中Agent间通信与协作(如CrewAI、AutoGen)。
- Agent团队:管理者、执行者、评估者。
局限性:
- 工具调用错误传播。
- 幻觉导致决策失误。
- Token消耗大(每次循环都需要调用LLM)。
- 安全性(Tool注入攻击)。