1. Agent 的核心机制:ReAct 循环
LangChain Agent 通过 ReAct(Reasoning + Acting)框架驱动自主决策,形成"思考→行动→观察→再思考"的闭环。具体执行过程如下:
- 推理(Reason):LLM 根据当前状态(任务、对话历史、工具描述)生成思考文本和决策
- 行动(Act):Agent 解析 LLM 的输出,识别工具调用指令并执行对应工具函数
- 观察(Observe):工具执行结果作为新的观察输入反馈给 LLM
- 循环判断:如果 LLM 继续请求调用工具,则重复上述步骤;如果输出 Final Answer,则循环终止
2. create_agent:v1.x 标准入口
在 LangChain v1.0 中,create_agent 成为唯一推荐的 Agent 创建方式,取代了旧的 AgentExecutor 和 initialize_agent 等碎片化写法。其底层统一运行在 LangGraph 上,自带 ReAct 循环:
from langchain.agents import create_agent
agent = create_agent(
model=model,
tools=[get_weather, search_movies],
system_prompt="You are a helpful assistant.",
)
create_agent 自动处理工具调用的循环逻辑,开发者只需提供模型、工具和系统提示词即可。
3. Agent 的关键组件
- Agent(决策大脑):基于 LLM 进行推理和决策,决定下一步该做什么
- Tools(执行手脚):标准的 Python 函数,带有名称、描述和参数定义。描述至关重要,因为 LLM 通过阅读工具描述来决定是否以及如何调用它
- Prompt(指令模板):包含系统指令、工具描述、历史对话和用户输入的模板,直接决定 LLM 的推理质量
- AgentExecutor(运行时引擎):负责管理 ReAct 循环的执行,处理解析、调用和状态推进
4. Agent 的工作流程
- 组装提示:将用户问题、对话历史(来自 Memory)、可用工具列表及其描述组合成详细提示词
- LLM 推理:分析提示词,生成遵循约定格式的结构化文本(Thought/Action/Action Input 或 Final Answer)
- 解析分发:识别 Action 则调用对应 Tool 函数,识别 Final Answer 则终止循环
- 执行与观察:工具返回结果标记为 Observation,连同之前的 Thought、Action 等作为新上下文再次发送给 LLM
- 结束与记忆:循环终止后,最终问答对存入 Memory