Agent ReAct是大模型智能体的核心思考与行动框架,全称Reasoning + Acting(推理+行动),是让Agent像人类一项【思考问题-> 制定策略->执行行动->验证结果】的关键逻辑
ReAct让Agent不再是“直接回答问题”,而是通过“自然语言思考过程”指导工具调用,一步步解决复杂问题,完美适配需要多步推理、工具协作的场景(如智能客服、报告生成、任务规划等)
一个典型的ReAct范式的Agent如图所示:

- 思考Reasoning:分析问题,判断现有信息是否足够,明确下一步
- 即模型决策是否需要调用外部工具获取更多信息用来回答问题
- 行动Action:执行思考阶段指定的策略
- 即基于模型决策结果,调用工具获取信息
- 观察Observation:获取行动结果,提取有效信息
- 即获取工具返回值 即判断工具是否正常工作 为下一轮思考提供信息
(再)思考->(再)行动->(再)观察->循环往复直到结束
from langchain.agents import create_agent from langchain_community.chat_models import ChatTongyi from langchain_core.tools import tool
@tool(description=“获取体重,返回值是整数,单位千克”) def get_weight() -> int:
GPT plus 代充 只需 145return 55
@tool(description=“获取身高,返回值是整数,单位厘米”) def get_height() -> int:
return 178
create_agent 默认使用ReAct框架
agent = create_agent(
GPT plus 代充 只需 145model=ChatTongyi(model="qwen3-max"), tools=[get_weight, get_height], system_prompt="""你是一个严格遵循ReAct框架的智能体,必须按【思考->行动->观察->再思考】的流程解决问题 且每轮仅能思考并调用一个工具,禁止单词调用多个工具 告知我你的思考过程,工具调用的原因,按思考、行动、观察三个结构告知我 """
)
for chunk in agent.stream(
{ "messages": [ {"role": "user", "content": "计算我的BMI?"}, ] }, stream_mode="values"
):
GPT plus 代充 只需 145latest_message = chunk["messages"][-1] if latest_message.content: print(type(latest_message).__name__, latest_message.content) try: if latest_message.tool_calls: print(f"工具调用: { [tc['name'] for tc in latest_message.tool_calls] }") except AttributeError as e: pass
输出:
D:ProgramPackegePythonpython.exe D:CodePythonAILangChain30_LangChain_Agent的ReAct框架.py HumanMessage 计算我的BMI? AIMessage 【思考】
要计算BMI(身体质量指数),需要知道体重(千克)和身高(米)。公式为:
$\( ext{BMI} = frac{ ext{体重(kg)}}{ ext{身高(m)}^2} \)$
目前我既没有体重也没有身高的数据,因此需要先获取其中一个值。按照工具调用规则,每轮只能调用一个工具,所以我先获取体重。
【行动】
【行动】
由于已经完成所有必要步骤,无需进一步调用工具。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/245641.html