资讯动态

40 行手搓 Agent 大脑:ReAct 循环到底在转什么(附代码)

发布时间:2026/9/5 7:52:15 来源:尧图企业网站定制
写给入门读者Agent 不是调一次 API 就完事。它会多轮思考想一下 → 调工具 → 看结果 → 再想 → 再调……这个循环叫 ReAct。很多人听过 ReAct但没见过它的循环体到底长什么样。本文用 40 行核心代码讲透它怎么转。这套循环是 mini-llm-agent 项目的一部分——一个不靠 LangChain 从零手搓的桌面笔记 Agent8 章演进每章可独立运行。ReAct Reason Act循环每轮做四件事把上下文喂给 LLMLLM 输出要么是工具调用要么是最终答案若是工具调用执行工具把结果塞回上下文进下一轮若是最终答案退出循环关键不是循环本身是退出条件模型说我不调工具了这是我的答案就退。但模型会撒谎——说答完了其实没答完。所以还要加终答自检门下一章讲。循环每轮的骨架长这样简化版省略安全阀和压缩defrun(self,user_input):self.ctx.append({role:user,content:user_input})whileTrue:# 循环体replyself.llm.chat(self.ctx)# 1. 喂上下文拿回复tool_callsparse_tool_calls(reply)# 2. 解析有工具调用吗ifnottool_calls:# 3. 没有 → 是最终答案returnreply# 退出循环forcallintool_calls:# 4. 有 → 执行每个工具resultself.registry.execute(call)self.ctx.append({role:tool,content:result})# 结果塞回上下文进下一轮四步循环、一个 while、一个退出判断——骨架就这些。复杂度都在退出条件校验和上下文管理上循环体本身是干净的。代码在哪gitclone https://github.com/lvmaizi/mini-llm-agent.gitcdmini-llm-agentgitcheckout ch03-reactcatsrc/agent/loop.py核心循环 40 行可读。切到 ch03 这个 tag输入帮我记一条笔记你能看到 LLM 先调 write_note 工具、把结果塞回上下文、再输出最终答案的完整两轮循环。一句话ReAct 循环的骨架极简调 LLM、判输出、执行或退出。复杂度都在退出条件和上下文管理上循环体本身是干净的。← 完整代码与可跑示例见 github.com/lvmaizi/mini-llm-agentclone 即跑。觉得有用欢迎 ⭐

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价