当前位置: 首页 > news >正文

Agent Loop:让 Agent 自己跑起来

就是今天要聊的核心——Agent Loop

Anthropic 怎么说的

Anthropic 在他们那篇很有影响力的文章《Building effective agents》中,对 Agent 有一个非常精辟的定义:

Agents can handle sophisticated tasks, but their implementation is often straightforward. They are typically just LLMs using tools based on environmental feedback in a loop.

Agent 可以处理复杂的任务,但它们的实现往往很简单。本质上就是 LLM 在一个循环中,根据环境反馈来使用工具。

注意这句话里的关键词:in a loop(在一个循环中)。

这就是 Agent 和普通 LLM 应用最本质的区别。普通的 LLM 应用是你问一句它答一句,流程是预先写死的。

而 Agent 是把控制权交给 LLM,由模型自己决定下一步做什么、调什么工具、什么时候停下来。

Anthropic 在文章中还特别强调了一点:Agent 的核心循环结构非常简单,关键在于模型的能力和工具的设计,而不是复杂的编排逻辑。

Claude Code 就是这个理念的直接产物。如果你用过 Claude Code,你应该能感受到:你给它一个任务,它会自己去读代码、改文件、跑命令,一步步推进,直到搞定。

背后驱动这一切的,就是 Agent Loop。

从一个真实场景说起

假设你在用 Claude Code 写代码,然后你说了一句:

“帮我在项目里找到所有 TODO 注释,整理成一个清单。”

这个任务对人来说很简单:打开搜索,输入 TODO,看看结果,整理一下。但对 Agent 来说,它需要经历一个完整的循环。

我们一步一步来看。

循环的每一步

第一轮:搜索 src 目录

你的任务发给 LLM 之后,LLM 会思考:要找 TODO 注释,我应该先用搜索工具在项目里搜一下。

于是它返回了一个tool_use

{ "type": "tool_use", "name": "search", "input": { "pattern": "TODO", "path": "./src" }}

Agent 执行搜索,拿到结果:

src/auth.js:42 // TODO: add token refresh logicsrc/api.js:18 // TODO: handle timeout errorssrc/utils.js:7 // TODO: refactor this function

Agent 把结果作为tool_result返回给 LLM。

第二轮:还要不要继续搜?

LLM 拿到搜索结果后,不是直接就给你答案了。

它会再想一下:找到了 3 个 TODO,但我只搜了 src 目录,是不是还应该看看测试目录?

于是它又返回一个 tool_use:

{ "type": "tool_use", "name": "search", "input": { "pattern": "TODO", "path": "./tests" }}

Agent 执行,发现测试目录里没有 TODO,把空结果返回给 LLM。

第三轮:够了,生成回答

这时候 LLM 判断信息已经足够了,不再调用工具,而是直接输出一段文字:

"项目中共有 3 处 TODO 注释:

  1. src/auth.js 第 42 行:需要添加 token 刷新逻辑
  2. src/api.js 第 18 行:需要处理超时错误
  3. src/utils.js 第 7 行:需要重构该函数"

此时stop_reason变成"end_turn",循环结束。

整个流程画出来

你再回头看一遍,其实就是一个循环:

用户输入 → LLM 思考 → 需要工具?→ 是 → 执行工具 → 结果返回 LLM → LLM 再想 → 需要工具?→ 是 → …… → 不需要了 → 输出最终结果

这就是所谓的Agent Loop(智能体循环)。

用代码来表达的话,核心逻辑就是一个 while 循环:

while true: response = 调用 LLM(消息历史) if response 包含 tool_use: result = 执行工具(tool_use) 把 tool_result 加入消息历史 continue // 继续循环 else: 输出最终回答 break // 退出循环

没错,就这么简单。正如 Anthropic 说的:Agent 可以处理复杂的任务,但它的实现往往很简单。整个 Agent 最核心的调度逻辑,就是这几行伪代码。

为什么这个循环这么重要

没有这个循环,LLM 就只能做一问一答的事情。你问它一个问题,它凭自己脑子里的知识回答你,完事了。

但有了这个循环,事情就完全不一样了。LLM 可以根据中间结果动态决定下一步做什么。搜完代码发现有个文件可疑,那就再读一下这个文件;读完发现还需要看看 git 历史,那就再调一个命令;命令执行发现报错了,分析一下原因再试一次。

Anthropic 把这种模式叫做autonomous agent(自主智能体),和那些流程写死的 workflow 做了明确区分。workflow 是你提前规定好第一步做什么、第二步做什么;而 agent 是让模型自己决定该怎么走。这种灵活性,正是 Agent Loop 带来的。

这也是为什么 Claude Code 处理一个稍微复杂点的任务,可能要跑几十轮循环。它不是一步到位的,而是像人一样,边做边想,一步步推进。

循环中的关键细节

看上去简单的循环,实际跑起来有几个重要的细节:

消息历史是关键

每一轮循环,LLM 的回复(包含 tool_use)和工具的执行结果(tool_result)都要追加到消息历史里。下一轮调用 LLM 时,要把完整的历史都带上。

为什么?因为 LLM 本身是无状态的,它不记得上一次说了什么、做了什么。只有你把历史消息全部喂给它,它才能知道:“哦,我之前已经搜过 src 目录了,现在应该搜 tests 目录。”

消息历史就是 Agent 的"记忆"。

stop_reason 决定循环走向

上篇文章我们提到过,LLM 的返回里有一个 stop_reason 字段:

  • "tool_use":LLM 想调工具,循环继续
  • "end_turn":LLM 觉得完事了,循环结束

Agent 程序就是靠这个信号来决定:是继续跑,还是停下来把结果给用户。

循环不能无限跑

LLM 有时候会陷入奇怪的状态,比如反复调用同一个工具,或者在两个工具之间来回跳。所以实际的 Agent 都会设一个最大循环次数,超过了就强制停止。

这不是什么高深的技术,就是一个计数器加一个 if 判断。但不加的话,你的 Agent 可能会一直跑下去,token 费用也跟着蹭蹭涨。

一个更复杂的例子

上面找 TODO 的例子比较简单,只跑了两三轮。

来看一个更贴近真实场景的例子。

你跟 Claude Code 说:“帮我修一下 login 接口的那个 bug,用户登录后 token 没有正确返回。”

Claude Code 可能会这样跑:

轮次LLM 决策工具调用结果
1先找到 login 接口在哪search("login")找到 src/auth/login.ts
2读一下这个文件read_file("src/auth/login.ts")拿到源码
3看看 token 生成逻辑read_file("src/utils/token.ts")发现 generateToken 函数
4找到 bug 了,改代码write_file("src/auth/login.ts")修复完成
5跑一下测试确认bash("npm test")2 个测试失败
6看看测试为什么挂了read_file("tests/auth.test.ts")发现测试也需要更新
7更新测试代码write_file("tests/auth.test.ts")修改完成
8再跑一次测试bash("npm test")全部通过 ✅
9任务完成,汇报结果无(end_turn)输出修复总结

9 轮循环,用了 4 种不同的工具,中间还经历了一次测试失败后的自我纠正。

这就是 Agent 的威力:它不是按固定脚本执行的,而是根据每一步的实际结果,动态调整下一步该做什么。

就像一个真正的开发者在工作一样:遇到问题就分析,分析完就动手,动手后验证,验证不通过就再来。

一句话总结

Agent Loop 就是一个 while 循环:不断调 LLM、执行工具、喂回结果,直到任务完成。

它是整个 Agent 的调度核心,把 LLM 的"思考能力"和工具的"执行能力"串成了一条完整的工作链。没有这个循环,LLM 就只是一个聊天机器人;有了它,LLM 才真正变成一个能干活的 Agent。

到这里,AI Agent 的三大核心概念:LLM、Tool Use、Agent Loop,我们就全部讲完了,你已经理解了一个 Agent 到底是怎么工作的。

学AI大模型的正确顺序,千万不要搞错了

🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!

有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!

就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋

📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇

学习路线:

✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析
✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑
✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操
✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用
✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代
✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经

以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!

我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

http://www.jsqmd.com/news/673906/

相关文章:

  • 【紧急通告】C# 14原生AOT已成Dify企业版合同SLA新增条款!未启用AOT部署的客户将于2025 Q3起暂停远程模型热更新支持——立即获取迁移检查表与ROI测算器
  • CANoe/CANalyzer诊断利器:详解on errorFrame事件与错误码解析(附Vector官方代码解读)
  • PVZ Toolkit 终极指南:5分钟掌握植物大战僵尸最强修改器
  • 8大网盘直链下载助手终极指南:一键获取真实下载地址的完整方案
  • PHP 8.3实操指南|3个必用新特性(json_validate+typed常量)
  • 如何解决ORA-00845内存不足_shmfs共享内存挂载大小调整
  • Mac百度网盘下载加速终极指南:免费解锁SVIP级体验
  • OmenSuperHub深度解析:如何为惠普OMEN游戏本解锁隐藏性能与精确散热控制
  • 2026年至今:五大梳齿机品牌综合实力深度横评 - 2026年企业推荐榜
  • CAD土地报备辅助工具|坐标一键提取与国土TXT批量生成软件
  • 聊聊数据库事务隔离级别与实际坑点
  • 2025-2026年新疆旅行社推荐:十大口碑服务评测对比顶尖单人出行社交匮乏 - 品牌推荐
  • Dify多模态调试失效的7个隐性原因:从LLM-Vision对齐断层到Embedding跨模态漂移全链路诊断
  • 2026年4月更新:西安领包入住装修公司专业评测与避坑指南 - 2026年企业推荐榜
  • 调试技巧大全
  • 2026年4月最新发布:温州商务笔记本厂家实力深度测评与五大厂商推荐榜单 - 2026年企业推荐榜
  • MusicBee网易云歌词插件:打造专业级音乐播放体验
  • Makefile工程管理完全指南:从基础到实践
  • 从‘换脸’到‘换物’:手把手用Attention-GAN实现图片局部精准转换(避坑指南)
  • C++ 学习杂记01:C++ vector 容器详细
  • 【Dify文档解析性能跃迁指南】:3大底层优化策略+实测提升327%解析效率
  • 玄机靶场:应急响应之公交车系统应急排查 WP
  • 企业级智能体开发平台产品测评报告
  • 2026年Q2温州记事本采购指南:五大实力品牌横向对比 - 2026年企业推荐榜
  • RT-Thread设备驱动避坑指南:eMMC块设备注册成功却挂载失败?这5个配置细节要检查
  • 新概念英语第二册16_A polite request
  • 大模型算法岗实习:给本科生的深度解析与建议,收藏这份超全指南!
  • 【限时开源】Dify文档解析性能诊断工具集(含PDF结构分析热力图、文本流失追踪器、Embedding一致性校验器)
  • 基于深度学习的UNet的卫星图像新增建筑检测 违章建筑识别 建筑物识别
  • 2026年当下,韩系女鞋供应链变革:如何选择你的决胜合作伙伴? - 2026年企业推荐榜