admin 管理员组文章数量: 1184232
Agent ReAct and Loop
我一直在使用 ChatGPT 或通义千问这样的 AI 工具,它们很强大,但多数情况下都是“一问一答”。我提一个问题,它给一个答案。
但我注意到,像 Manus 或 Claude Code CLI 这样的“Agent”(智能体)产品,它们似乎可以自动执行任务。你给它一个目标,它会自己去调用工具、分析结果、继续下一步,直到任务完成。
这到底是怎么做到的?它如何摆脱“一问一答”的限制,实现自动循环?这就是我这周探索的问题。
关键概念:ReAct
我读了一些资料,发现了一个关键概念:ReAct。
这是 2022 年一篇论文(ReAct: Synergizing Reasoning and Acting in Language Models)提出的思想。它模仿了人类的工作方式:
- Reason(思考):分析当前情况,决定下一步该做什么。
- Act(行动):执行一个动作(比如调用工具、搜索信息)。
完成“行动”后,会得到一个新的“观察”(Observation),比如工具的返回结果。然后,Agent 带着这个新结果,回到第 1 步,再次“思考”,形成一个循环。
一个线索:Claude 的日志
这个“思考-行动”的循环听起来很合理。为了验证它,我做了一个小实验。
我查看了 Claude 编码助手(我在 Mac 上的路径是 ./claude/projects/*.jsonl)的会话日志文件。这些 .jsonl 文件记录了我和 Agent 的完整对话。
我发现,里面的消息(Message)并不仅仅是“我问”和“它答”,而是主要有四种类型:
user:用户的消息。assistant:模型(Agent)的消息。tool_call:模型决定调用一个工具。tool_result:工具执行后返回的结果。
这揭示了一个秘密:assistant 的回复并不总是最终答案。它可能是一个 tool_call(工具调用)请求,用来告诉外部程序:“请帮我执行这个函数”。
执行完毕后,系统会把 tool_result(工具结果)再发给 assistant。
流程:一个循环
看到这里,我基本想通了。Agent 的自动执行,本质上就是这样一个流程:
[用户输入]->[LLM 思考]->[决定:调用工具 A]->[系统执行 A]->[A 的结果]->[LLM 思考]->[决定:调用工具 B]->[系统执行 B]-> ... ->[最终答案]
这个流程的核心,就是一个循环(Loop)。
只要 LLM 返回的不是最终答案,而是一个 tool_call,系统就去执行它,然后把结果塞回去,让 LLM 继续“思考”。
Demo 快速验证
我的逻辑很清晰:一个主函数,它负责调用 LLM。调用后,检查返回结果。
- 如果结果是普通文本(最终答案),就返回它。
- 如果结果是
tool_call,就去执行工具,然后把工具结果和之前的对话历史“拼”在一起,递归调用自己。
下面是一个简化的伪代码:
class SimpleAgent {
async chat(message) {
const assistantResponse = await this.callLLM(message)
if (assistantResponse.hasToolCall) {
const toolResult = await this.callTool(assistantResponse.toolCall) // 递归调用,将tool result作为新消息
return this.chat(toolResult)
}
return assistantResponse.content
}
}
为了快速验证我的想法,我让 Claude Code 基于 Plasmo 快速开发了一个侧边栏形式的 Browser Agent,效果如下:
这不是产品,只是 Demo。仅用于验证我自己所理解的 Loop。
我的感想
在做完这些事情以后,我豁然开朗。
Agent 的“自动执行”,其核心就是这个 “LLM 思考 -> 工具执行 -> 结果反馈 -> LLM 再思考” 的循环。
当然,我这个实现非常简陋。一个工业级的 Agent 框架(比如 LangChain)要复杂得多,它们需要处理:
- LLM 兼容:如何适配不同厂商(OpenAI, Anthropic, Google)的接口和
tool_call格式。 - 工具管理:如何动态注册、描述和安全地执行工具。
- 记忆(Memory):如何在循环中管理越来越长的对话历史,防止 Token 溢出。
- 路由(Router):当有上百个工具时,如何决定调用哪一个。
但通过亲自动手,我总算摸清了 ReAct 架构的基本原理。这对于我后续的学习,算是打下了一个很好的基础吧。
如何学习大模型?
学习AI大模型是一个系统的过程,需要从基础开始,逐步深入到更高级的技术。
这里给大家精心整理了一份全面的AI大模型学习资源,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等,资料免费分享!
这是一份大模型从零基础到进阶的学习路线大纲全览,小伙伴们记得点个收藏!
100套AI大模型商业化落地方案
大模型全套视频教程
200本大模型PDF书籍
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
LLM面试题合集
大模型产品经理资源合集
大模型项目实战合集
😝有需要的小伙伴,可以扫描下方二v码免费领取【保证100%免费】🆓
版权声明:本文标题:Agent ReAct and Loop 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1765993815a3430354.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论