尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
大模型Agent学习指南:收藏这份从用户侧到旁路的循环解析,小白也能轻松入门!
本文深入解析LLM Agent的核心循环结构从用户侧输入到Agent Runtime主循环再到工具层和旁路操作用青、绿、红、橙、紫、黄、灰七色图解四层交互逻辑。强调Agent的自主性源于循环而非模型本身通过推理→行动→观察→再推理不断迭代。主循环包含构建上下文、LLM调用、输出判定和停止条件四节点工具层涉及权限审批、结果追加、并行执行等关键设计旁路则处理上下文压缩与子智能体委派。最后提供伪代码示例并总结设计要点帮助开发者理解Agent运作机制适合初学者系统学习。最近在做Agent相关的东西也天天在Cursor里让Agent改代码。用得越多越觉得不管外面包装成什么产品里面跑的都是同一个结构一个循环。我把这个循环画成了一张图分成四层用户侧、Agent Runtime主循环、工具层、旁路。这篇就顺着这张图一层一层讲清楚它为什么长这样。LLM Agent Loop 智能体循环总览图用户侧、Agent Runtime 主循环、工具层、旁路四层结构先交代一下图例的颜色青色是用户界面绿色是Agent逻辑红色是策略橙色是工具操作紫色是上下文与追加黄色是云服务这里指模型推理灰色是外部系统。后面几张局部图沿用同一套配色。一、为什么是一个循环普通的LLM调用是一问一答拼好prompt发给模型拿回一段文本结束。Agent不一样。它要完成的任务往往需要先看看再说先读文件才知道要改哪里改完要跑测试才知道对不对测试挂了还得再读报错。每一步做什么取决于上一步的结果而这个结果在调用模型之前是不知道的。所以没法一次调用搞定只能让模型说出它想做什么tool_calls由运行时去执行再把结果喂回模型让它决定下一步。这个推理 → 行动 → 观察 → 再推理的过程不断重复就是Agent Loop。说白了Agent的自主性不在模型里而在这个循环里。模型每次只负责回答一个问题基于目前看到的一切下一步做什么。二、主循环一轮是怎么转起来的Agent 主循环用户输入与记忆召回进入构建上下文经 LLM 调用和输出判定有 tool_calls 时进入工具层执行并追加结果再回到 LLM 调用无 tool_calls 时进入停止条件并返回响应主循环有四个节点按顺序是构建上下文把system prompt、历史消息history、可用工具的定义tools拼成这一轮要发给模型的输入。用户的新消息、召回的记忆都在这一步进来。LLM 调用一次模型推理。输出一边以流的形式推给用户侧一边交给下一个节点。输出判定看模型这次的输出里有没有tool_calls。这是整个循环唯一的分叉点。停止条件没有tool_calls说明模型认为自己做完了进入停止判定结束后把最终响应返回给用户。有tool_calls就走另一条路进入工具层执行结果追加回历史然后回到 LLM 调用开始下一轮。这里有个容易忽略的细节图里追加结果的箭头指回的是LLM 调用而不是最开始的用户输入。也就是说一次用户请求内部可能转很多轮用户只发了一条消息模型可能已经被调用了十几次。理解这一点才能理解为什么Agent的成本、延迟和稳定性都跟转了几圈强相关。三、工具轮次审批、执行、追加模型给出tool_calls之后并不是直接执行。中间隔着一层权限审批。工具轮次输出判定拿到 tool_calls 后进入权限审批允许则执行工具拒绝则把拒绝原因作为结果两者都进入追加结果经轮次检查后回到 LLM 调用1. 权限审批user or policy审批的来源有两种问用户或者按策略自动决定。读文件、搜索代码这类只读操作通常可以直接放行执行shell命令、删文件、发请求这类有副作用的操作就需要用户确认或者匹配一份白名单规则。Cursor和Claude Code这类工具都有类似的设计有的命令直接跑有的会弹出来等你点确认。图里把审批画成红色的策略放在工具层入口意思很明确模型只负责提议执行权在运行时手里。模型可能会误判可能被文件里的内容误导所以不能让它的输出直接变成副作用。2. 拒绝也是一种结果注意图里的拒绝箭头被拒绝之后并没有中断循环而是同样走到追加结果。这个设计很重要。如果拒绝后直接报错退出用户每拒绝一次整个任务就断掉了。把用户拒绝了这个操作原因是 xxx作为工具结果写回历史模型在下一轮就能看到然后换个思路换一个更安全的命令或者先问清楚再动手。3. 并行执行parallel if independent模型一次可能返回多个tool_calls比如同时读三个文件。这些调用之间互不依赖就可以并行执行一轮的耗时从三次读取的总和变成最慢那一次。关键在independent这个前提。读和读之间通常可以并行但写文件和读同一个文件之间有先后关系两个shell命令之间也可能有隐式依赖。比较稳妥的做法是只读工具默认并行有副作用的工具按顺序执行。宁可慢一点也别让结果依赖执行时序。4. 追加结果然后回到 LLM执行完的结果或者拒绝原因按顺序追加到历史里每条结果要和对应的tool_call对上号。然后检查轮次没到上限就回到LLM 调用让模型基于新的观察继续推理。工具结果本身也值得设计。一个命令输出几万行日志原样塞回去下一轮上下文就爆了。常见的做法是截断、只保留头尾、或者把大结果写进文件只把路径和摘要告诉模型。四、停止条件四个出口循环必须能停下来而且要停得明白。图里的停止条件写了三个done、max turns、fatal再加上用户侧的用户中断一共四个出口。停止条件用户中断与 fatal 错误从上方、输出判定的 done 从左侧、max turns 护栏从下方汇入停止条件结束后返回响应done模型不再请求工具给出最终回答。这是正常结束。max turns轮次达到上限。这是一道护栏防止模型陷在改了又错、错了又改的死循环里。fatal不可恢复的错误比如模型接口持续失败、上下文压缩后还是放不下、运行环境挂了。用户中断用户点了取消。后三种都不是任务完成但处理方式应该和done一样认真。我的经验是两点第一区分可恢复和不可恢复。一个工具执行失败不是fatal它应该作为结果写回去让模型处理只有循环本身没法继续了才算fatal。第二停下来的时候说清楚停在哪。达到上限时告诉用户已经完成了什么、还差什么用户中断时已经做完的修改要保留而不是悄悄回滚或者留下一半的状态。用户最怕的不是Agent停下来而是不知道它停在了哪一步。五、旁路上下文压缩与子智能体主循环之外图的第四层画了两条旁路。它们不在每一轮都触发但决定了Agent能不能处理长任务。旁路构建上下文超出窗口时进入上下文压缩压缩后回到 LLM 调用执行工具时可以委派给子智能体子智能体运行自己的循环只把摘要回传给追加结果1. 上下文压缩每一轮都在往历史里追加内容转得越久上下文越长迟早会超出模型的窗口。图里的处理是构建上下文时发现超窗口就先走一趟上下文压缩把较早的历史总结成一段摘要用摘要替换原文再交给LLM 调用。压缩是有损的。哪些东西必须原样保留需要想清楚用户最初的目标和约束、已经改过的文件、尚未解决的问题这些丢了模型就会重复劳动甚至推翻之前的决定。而中间过程里大段的工具输出往往是最适合被压缩的部分。2. 子智能体另一条旁路是委派执行工具时把一个子任务交给子智能体。子智能体有自己的循环own loop有独立的上下文跑完之后只把摘要交回来作为一条工具结果追加到主循环里。这样做的好处是隔离。比如在整个仓库里找出所有调用某个接口的地方这个过程可能要搜很多次、读很多文件如果都在主循环里做中间结果会把上下文塞满。交给子智能体去做主循环只收到一份结论干净很多。代价是信息损失和额外开销主循环看不到子智能体的中间过程摘要写得不好主循环就会基于错误的结论继续。所以适合委派的是那种边界清晰、结果容易描述的任务。六、记忆召回与流式输出还有两个小节点放在主循环的两端。记忆召回与流式输出记忆召回把跨会话信息读进 prompt汇入构建上下文再交给 LLM 调用LLM 调用以 stream 把 text tokens 推到流式输出用户发现跑偏时可以发起中断Cancel进入停止条件记忆召回在构建上下文之前把跨会话的信息读进prompt比如项目约定、用户偏好、之前踩过的坑。Cursor的Rules、仓库里的AGENTS.md都可以看作这一类。它和上下文压缩是互补的压缩解决的是这次对话太长记忆解决的是上次对话的东西这次还要用。召回的内容也占窗口宁可少而准不要多而杂。流式输出从LLM 调用引出一条虚线把token实时推给用户。它不改变循环的逻辑但对体验影响很大一轮推理可能要好几秒多轮叠加起来更久用户需要看到Agent在想什么、正在调用哪个工具。流式输出也是用户中断的前提用户看到方向不对才能及时喊停。七、用伪代码写一遍把上面的图翻译成代码大概是这样async function agentLoop(userInput: string) { const memory await recallMemory(userInput); const history: Message[] [{ role: user, content: userInput }]; for (let turn 0; turn MAX_TURNS; turn) { if (signal.aborted) return stop(cancelled, history); let context buildContext({ system, memory, history, tools }); if (exceedsWindow(context)) { history.splice(0, history.length, ...(await compact(history))); context buildContext({ system, memory, history, tools }); } const reply await callLLM(context, { onToken: streamToUser }); history.push(reply); if (!reply.toolCalls?.length) return stop(done, history); const results await runTools(reply.toolCalls, async call { const ok await approve(call); // user or policy if (!ok) return { callId: call.id, content: 用户拒绝了该操作 }; if (call.name delegate) return runSubagent(call); // 只回摘要 return execute(call); }); // 互不依赖的调用并行有副作用的按顺序 history.push(...results); } return stop(max_turns, history); }fatal没有单独写出来可以理解为callLLM或compact抛出的、循环本身接不住的异常在外层统一收尾。八、几点设计上的体会最后总结几条我觉得比较实用的循环本身要简单。分叉点只有有没有tool_calls一个其他复杂度都放到工具、审批和旁路里。主循环越简单越容易排查问题。模型提议运行时决定。任何有副作用的操作都要经过审批这一层并且拒绝要作为结果回传而不是中断。每一种停止都要有交代。done之外的三种出口要让用户知道完成了什么、停在了哪。上下文是最稀缺的资源。工具结果要裁剪历史要压缩大任务要委派记忆要少而准本质上都是在管理同一块窗口。可观察性从一开始就要有。流式输出给用户看每一轮的输入输出也最好留日志给自己看不然出了问题只能靠猜。Agent产品之间的差别很多时候不在循环的形状而在这些细节上审批怎么分级工具结果怎么裁剪压缩保留什么什么时候委派。把这张图里的每个节点都想清楚大部分问题就有了方向。如何学习大模型 AI 由于新岗位的生产效率要优于被取代岗位的生产效率所以实际上整个社会的生产效率是提升的。但是具体到个人只能说是“最先掌握AI的人将会比较晚掌握AI的人有竞争优势”。这句话放在计算机、互联网、移动互联网的开局时期都是一样的道理。我在一线科技企业深耕十二载见证过太多因技术卡位而跃迁的案例。那些率先拥抱 AI 的同事早已在效率与薪资上形成代际优势我意识到有很多经验和知识值得分享给大家也可以通过我们的能力和经验解答大家在大模型的学习中的很多困惑。我们整理出这套AI 大模型突围资料包✅ 从零到一的 AI 学习路径图✅ 大模型调优实战手册附医疗/金融等大厂真实案例✅ 百度/阿里专家闭门录播课✅ 大模型当下最新行业报告✅ 真实大厂面试真题✅ 2026 最新岗位需求图谱所有资料 ⚡️ 朋友们如果有需要《AI大模型入门进阶学习资源包》下方扫码获取~① 全套AI大模型应用开发视频教程包含提示工程、RAG、LangChain、Agent、模型微调与部署、DeepSeek等技术点② 大模型系统化学习路线作为学习AI大模型技术的新手方向至关重要。 正确的学习路线可以为你节省时间少走弯路方向不对努力白费。这里我给大家准备了一份最科学最系统的学习成长路线图和学习规划带你从零基础入门到精通③ 大模型学习书籍文档学习AI大模型离不开书籍文档我精选了一系列大模型技术的书籍和学习文档电子版它们由领域内的顶尖专家撰写内容全面、深入、详尽为你学习大模型提供坚实的理论基础。④ AI大模型最新行业报告2025最新行业报告针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估以了解哪些行业更适合引入大模型的技术和应用以及在哪些方面可以发挥大模型的优势。⑤ 大模型项目实战配套源码学以致用在项目实战中检验和巩固你所学到的知识同时为你找工作就业和职业发展打下坚实的基础。⑥ 大模型大厂面试真题面试不仅是技术的较量更需要充分的准备。在你已经掌握了大模型技术之后就需要开始准备面试我精心整理了一份大模型面试题库涵盖当前面试中可能遇到的各种技术问题让你在面试中游刃有余。以上资料如何领取为什么大家都在学大模型最近科技巨头英特尔宣布裁员2万人传统岗位不断缩减但AI相关技术岗疯狂扩招有3-5年经验大厂薪资就能给到50K*20薪不出1年“有AI项目经验”将成为投递简历的门槛。风口之下与其像“温水煮青蛙”一样坐等被行业淘汰不如先人一步掌握AI大模型原理应用技术项目实操经验“顺风”翻盘这些资料真的有用吗这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理现任上海殷泊信息科技CEO其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证服务航天科工、国家电网等1000企业以第一作者在IEEE Transactions发表论文50篇获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。资料内容涵盖了从入门到进阶的各类视频教程和实战项目无论你是小白还是有些技术基础的技术人员这份资料都绝对能帮助你提升薪资待遇转行大模型岗位。以上全套大模型资料如何领取
RELATED

相关推荐

Vue3 + Cesium 加载 GeoTIFF 的 4 种方案对比

Vue3 + Cesium 加载 GeoTIFF 的 4 种方案对比

方案 1:前端直接解析 GeoTIFF(COG 优先,tiff-imagery-provider /georaster) ✅ 特点:不需要后端服务、不用切片、前端直接拉取 tif 文件解析渲染;适合小文件、COG 云优化 GeoTIFF、临时调试;不适…

📅 2026/10/31 2:12:03
C盘无损扩容 win10(亲测,良心,有用)

C盘无损扩容 win10(亲测,良心,有用)

Win10 用上两三年,C 盘经常说红就红。系统更新缓存和休眠文件常年占着几个 G。微信的聊天记录默认存在文档里,浏览器下载也不问一声就往系统盘落。软件能装到 D 盘,系统盘本身却没处挪,重装系统折腾半天,找人远程扩容又…

📅 2026/10/31 2:12:03
地方政府“三套牌“——北京搞科研、上海搞数据、深圳搞量产

地方政府“三套牌“——北京搞科研、上海搞数据、深圳搞量产

《2026具身智能技术与产业发展报告》给出了一张地图:北京——重科研底座、千亿级基金,推动大脑-小脑-本体协同。上海——聚焦算力、数据联盟,模型和场景耦合。深圳——发挥硬件产业链优势,以企业和城市开放场景牵引产业化。这三座…

📅 2026/10/31 2:07:03
MORE NEWS

更多资讯

📰

Discuz! X社区搭建实战:轻量级论坛架构与生产部署指南

1. 项目概述:为什么Discuz! X至今仍是社区构建的“隐形冠军”Discuz! X不是新面孔,但每次在某高校实验室搭建学生技术交流平台、某创业团队需要快速上线用户反馈社区、甚至某地方文化爱好者想建一个纯粹的本地手作分享站时,它依然会出现在技术…

📰

OpenShell 实战:构建可编程交互外壳,实现稳定可复用的自动化流程

1. OpenShell 是什么,为什么值得你花时间了解第一次听到 OpenShell 这个名字,很多人会下意识以为它又是一个“命令行增强工具”或者“终端美化壳”。但真正用过一段时间之后你会发现,它更像是一层可编程的交互外壳——把原本零散、重复、靠记…

📰

上下文模式实战:从设计选型到问题排查的工程指南

1. 从“上下文模式”说起:一个被低估的工程概念第一次看到“context-mode”这个词,很多人会下意识地把它归到某个具体框架的配置项里,觉得无非是个开关或者枚举值。但我在实际项目里反复踩坑之后才意识到,上下文模式本质上是一套关…

📰

OpenShell任务编排框架:从设计到落地的工程实践

1. 从零认识 OpenShell:它到底解决什么问题第一次听到 OpenShell 这个名字,很多人会下意识以为它跟某个操作系统的命令行外壳有关。实际上,在我接触过的项目语境里,OpenShell 指的是一类开放式的命令执行与任务编排框架——它把原…

📰

解压玩具爆款背后的心理学与设计原理

1. 项目背景与现象解析"捏捏"这类解压玩具在TikTok平台一周爆卖70万件的现象,揭示了当代年轻人独特的消费心理和情感需求。这类产品通常由硅胶、泡沫等柔软材质制成,通过揉捏、挤压等动作产生触觉反馈,帮助使用者释放压力。从产品形…

📰

CANOCO 5.0 PCA分析全流程:数据导入、变换标度与避坑

简介:CANOCO 5.0 是一套面向生态学与植被分析学习者的排序分析软件资料包,适合需要理解群落连续分布、解释植被与环境因子关系的初学者和中级研究者使用,也可配合 PCA 等排序方法完成样方或物种数据的梯度分析。压缩包共 34 个文件&#xff0…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬