AI Agent 入门:手把手实现 ReAct 模式(思考→行动→观察循环)

AI Agent 入门:手把手实现 ReAct 模式(思考→行动→观察循环)

2026 年最热的技术方向就是 AI Agent。而所有 Agent 的基石,是一个叫 ReAct 的循环模式。这篇文章用最小 Python 代码,带你从零实现一个能"思考、调用工具、观察结果"的 Agent。

一、背景:Agent 为什么"聪明"

你有没有发现,直接问大模型"帮我查一下北京的天气并订机票",它做不到——因为大模型本身不能执行动作,只能生成文字。

ReAct(Reasoning + Acting,2022 年提出)解决的就是这个问题:让大模型在"思考"和"行动"之间交替,通过调用外部工具(API、数据库、代码)来真正完成任务。

二、核心原理:Thought→Action→Observation

ReAct 循环的三个阶段:

  1. Thought(思考):模型分析当前状态,决定下一步做什么
  2. Action(行动):模型输出一个工具调用(如 search(“北京天气”))
  3. Observation(观察):系统执行工具,把结果返回给模型

如此循环,直到模型认为任务完成,输出最终答案。

Thought: 用户想查北京天气,我需要调用天气查询工具
Action: search_weather("北京")
Observation: 北京今天 28°C,晴
Thought: 天气已获取,可以回答用户了
Answer: 北京今天 28°C,天气晴朗 ☀️

三、代码实战:最小 ReAct 引擎

class ReActAgent:
    def __init__(self, tools):
        self.tools = tools          # 工具注册表
        self.max_steps = 5          # 最大循环步数(防死循环)
    
    def think(self, query, history):
        # 真实场景这里调用 LLM;此处用规则模拟"思考"
        for name, fn in self.tools.items():
            if name in query:
                return f"ACTION: {name}({query.split(name)[1].strip()})"
        return "ANSWER: 我无法处理这个请求"
    
    def run(self, query):
        history = []
        for _ in range(self.max_steps):
            step = self.think(query, history)
            print(f"Thought → {step}")
            if step.startswith("ACTION:"):
                action = step[7:].strip()
                tool, arg = action.split("(", 1)
                arg = arg.rstrip(")")
                obs = self.tools[tool](arg)   # 执行工具
                print(f"Observation → {obs}")
                history.append(obs)
            elif step.startswith("ANSWER:"):
                return step[7:].strip()
        return "达到最大步数,任务未完成"

# 定义工具
tools = {"search_weather": lambda city: f"{city} 今天 28°C,晴"}
agent = ReActAgent(tools)
print("最终回答:", agent.run("帮我查一下 search_weather 北京"))

防死循环:max_steps 限制循环次数是工程必备——真实 Agent 中模型可能反复调用同一个工具,必须有兜底。

四、关键经验(避坑)

  1. 工具描述要清晰:模型靠描述决定调哪个工具,描述写得好调用才准
  2. 参数要校验:工具收到的参数必须做类型和范围校验,防注入
  3. 循环必须有上限:无限制的 Agent 会烧光你的 Token
  4. 观察结果要结构化:返回给模型的观察结果格式要统一,便于它理解
  5. 可观测性:记录每一步的 Thought/Action/Observation,出问题才能回溯

五、完整系列推荐

本文选自《AI Agent 工程实战:从 LLM API 到生产级智能体》100 期系统教程,覆盖 ReAct、工具调用、RAG、MCP、多智能体、生产部署,每期配可运行 Python 仿真。

该系列及 65+ 技术知识库已在 ima 知识号发布,搜索「Kruptos」即可订阅。

8 款 AI 技能(含 self-evolving-agent 自进化 Agent、humanize-writing 去 AI 味写作)已上线 ima 技能广场,搜索即装。


作者:Kruptos(西电毕业,13 年无线通信/DSP/嵌入式科研,现深耕 AI 与云原生)
原创内容,转载注明出处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值