LangGraph 0.3.x中create_react_agent是否默认内置ReAct提示词?
LangGraph 0.3.x 中 create_react_agent 未传入 prompt 的内部机制解析
1. 未传入自定义 prompt 时的默认行为
调用 create_react_agent 不传入 prompt 参数时,函数会自动使用内置的默认 ReAct 风格提示词,不存在无提示词运行的情况。
2. 默认提示词的样式与格式引导
默认提示词围绕 ReAct 范式设计,核心是明确告知模型需遵循的思考与输出规则:
- 开头定义任务目标,要求模型通过「思考-行动-观察」循环解决问题
- 清晰列出可用工具的名称、功能及调用格式
- 给出标准化示例,比如:
Thought: 我需要先查询用户所在城市的天气来回答问题
Action: weather_query
Action Input: {"city": "上海"}
Observation: 上海今日多云转晴,气温18-26℃
针对不同模型(OpenAI、Claude等),默认提示词会做适配调整,但核心逻辑一致:通过明确指令和示例,强制模型输出符合 Thought、Action、Action Input、Observation 结构的内容。
3. 确保 ReAct 结构的额外机制
除默认提示词外,create_react_agent 内部还有两项关键机制保障格式合规:
- 输出解析器绑定:函数会自动为模型绑定 ReAct 格式专属解析器,若模型输出偏离格式,解析器会尝试校正或抛出明确错误,引导后续输出回归规范
- 循环逻辑约束:LangGraph 的代理循环(Agent Loop)严格遵循 ReAct 流程执行:每次运行先调用模型生成思考与行动,执行工具得到观察结果,再将观察反馈给模型进入下一轮循环,这种闭环流程从逻辑上强制模型遵循 ReAct 范式
示例代码场景说明
对于你提供的无 prompt 调用代码:
from langgraph.prebuilt import create_react_agent # 假设model和tools已定义 agent = create_react_agent(model, tools)
此时 agent 会自动加载内置默认 ReAct 提示词,结合绑定的输出解析器和循环逻辑,确保模型始终按照 ReAct 格式生成内容,无需额外配置。
内容的提问来源于stack exchange,提问作者何子洋
相关产品推荐
相关产品推荐

