恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

小白程序员必看:收藏这份手把手教你写 Agent 大模型循环指南

  • 首页
  • 资讯中心
  • /
  • 小白程序员必看:收藏这份手把手教你写 Agent 大模型循环指南

相关资讯

基于Python与OpenCV的图像增强工具开发实战 2026/10/14 21:14:37
Ubuntu换阿里云软件源全指南:从apt原理到排查实战 2026/10/14 21:14:37
先进封装技术驱动智能汽车与AI芯片集成升级 2026/10/14 21:09:37

最新资讯

OpenClaw 开源智能体框架实战:从环境配置到任务自动化的完整指南
VLLM推理服务process_output_sockets异常排查与性能优化实践
客户流失预警:用Python重构业务认知与决策闭环
性能测试避坑指南:从环境准备到结果分析的实战总结
MiniMind:两小时3元成本从零训练64M参数中文大模型
从gpmall-repo.rar到可运行商城:源码包解压与部署实战

今日推荐

IBM Verify Identity Access 修复 22 个漏洞:两个 9.8 严重 RCE 无需认证
小区物业管理系统
小型超市仓库管理系统

本周热门

UE动画修改实战:从资产编辑到重定向与蒙太奇驱动
统计随机数生成器攻击下的KLJN安全密钥交换协议Matlab仿真
政务API安全治理:资产测绘、低代码编排与行标对标实践

本月精选

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)

小白程序员必看:收藏这份手把手教你写 Agent 大模型循环指南

发布时间:2026/10/14 21:14:37
小白程序员必看:收藏这份手把手教你写 Agent 大模型循环指南 本文深入浅出地解析了 Agent 的工作原理强调 Agent 是一个持续循环的过程而非单次 API 调用。通过 ReAct推理行动循环模式类比前端开发中的 useEffect 依赖循环阐述了 Agent 如何通过观察、思考、行动不断迭代直至任务完成。文章还提供了 50 行手写 Agent 循环的 TypeScript 代码示例并详细讨论了循环终止条件、Backtracking 回退机制等关键知识点帮助读者快速掌握 Agent 开发核心是入门大模型开发的实用指南。Agent 不是一次 API 调用是一个死循环。你跟它的区别在于你知道什么时候该停。开篇上篇写完 Tool Use 和 Streaming 之后有个读者在后台留言说了一段让我愣了半天的话。他说“我照着你的代码写了工具调用模型确实能查天气了。但我发现一个问题——它查完天气就停了。我以为 Agent 会’自己接着干活’结果它跟普通 API 没什么区别调一次工具就下班。”我说你这个问题问到点子上了。Tool Use 只是给了模型一双手。但一双手不是一个人。人之所以能干活是因为他会反复地看一眼→想一下→动手→看一眼结果→再想→再动手直到把事情做完。你缺的不是工具是循环。ReAct 循环全景观察→思考→行动→观察→思考→行动Agent 的核心工作模式● ● ●● ● ●Agent 的工作方式一个死循环Agent 这个词被用得有点滥了。但如果你让我用一句话说清楚 Agent 跟调一次 API的本质区别我会说Agent 在循环调 API 是一次性的。学术上有个词叫 ReAct——Reasoning Acting。说人话就是模型先推理我现在该干什么然后动手干干完之后看结果再推理下一步该干什么。你仔细想一下你自己写代码的流程。你接到一个需求你不是上来就写。你先看需求文档观察想一想怎么实现思考然后写一段代码行动运行一下看有没有报错观察修 bug思考行动再跑一遍测试观察直到功能跑通。Agent 跟你一模一样。唯一的区别是你做这套动作不需要人给你写 while 循环Agent 需要。// Agent 的本质一个while循环while(true){const observationgetCurrentState();// 观察 const thoughtawait model.reason(observation);// 思考 const actionawait executeAction(thought);// 行动if(shouldStop(thought, action))break;// 该停了}就这四行。剩下所有东西——Max Steps、Backtracking、Termination——都是在给这个骨架加血肉。框架给你加了一万行但核心就这些。useEffect vs Agent 循环前端工程师每天都在写类似的东西● ● ●● ● ●50 行手写一个 React 循环我不想让你觉得我在画饼。下面这 50 行 TypeScript不依赖任何框架复制出来就能跑。interface AgentState{messages: Message[];tools: Recordstring, Tool;maxSteps: number;currentStep: number;}asyncfunctionagentLoop(state: AgentState): Promisestring{while(state.currentStepstate.maxSteps){state.currentStep;// Step1: 调模型让它决定下一步 const responseawait client.messages.create({model:claude-sonnet-4-20250514, max_tokens:1024, tools: Object.values(state.tools), messages: state.messages,});// Step2: 把模型的回复记下来 state.messages.push({role:assistant, content: response.content});// Step3: 找 tool_use const toolUsesresponse.content.filter((block)block.typetool_use);// Step4: 没有工具调用模型觉得做完了if(toolUses.length0){const textBlockresponse.content.find(bb.typetext);return(textBlock as any)?.text ??任务完成;}// Step5: 执行工具 const resultsawait Promise.all(toolUses.map(async(tool){const fnstate.tools[tool.name];if(!fn)return{error:未知工具: ${tool.name}};try{const outputawait fn(tool.input);return{tool_use_id: tool.id, content: JSON.stringify(output)};}catch(e){return{tool_use_id: tool.id, content: JSON.stringify({error: String(e)}),};}}));// Step6: 把结果塞回消息列表进入下一轮 state.messages.push({role:user, content: results});}// 超过 maxSteps强制退出returnAgent 达到最大步数限制任务未完成;}几件事值得注意。第一没有工具调用就停。这是很自然的一个判断——模型如果只回了文字没调工具说明它认为任务结束了。但实际上这里有个坑我后面说。第二工具执行结果要原样塞回去。模型不会记住之前的工具调用结果你必须把新的 user message 带着工具结果一起发过去。这就是为什么state.messages在不断增长。第三maxSteps 是硬兜底。模型有时候会卡住——反复调同一个工具、反复问同样的问题。maxSteps是你最后的安全网。我一般设 20-30 步看任务复杂度。扯远一句我第一次写 Agent 循环的时候忘了加maxSteps一个简单的查天气任务跑了 90 步才自己停。原因是模型在拿到找不到该城市的结果之后换了一个拼音写法又查了一次没查到又换了英文名又没查到……它把地球上叫Springfield的城市全遍历了一遍。那次之后我学乖了——永远设 maxSteps永远。Agent 循环代码结构while 循环 模型推理 工具执行 消息累积什么时候停Loop Termination上面那个循环看似简单但真正难的地方在终止条件。我见过三种典型的停不下来01模型不知道完了任务已经完成但模型还在确认问用户是否可以帮到您02工具出错死循环工具报错了模型重试又报同样的错又重试03模型失忆消息太长模型忘掉了最初的任务开始做别的事第一种最烦人。你让 Agent “帮我查一下北京天气然后发邮件给我”它查完天气、发完邮件……然后问了一句还需要我帮您做别的吗你不在场循环就卡在这了。解决方案是你在一开始的 System Prompt 里写清楚“任务完成后直接给出结果不要问用户是否需要其他帮助”。这不是技术问题是 prompt 问题。第二种更难搞。刚才说的查天气死循环就是一个例子。解决的思路不是阻止出错——出错是常态——而是给同类错误设上限。同一工具同一错误连续出现 3 次 停告诉用户这个工具暂时用不了。// 在循环里加一个错误计数器 const errorKey${tool.name}:${extractErrorType(result)};errorCount.set(errorKey,(errorCount.get(errorKey)??0)1);if(errorCount.get(errorKey)!3){return工具 ${tool.name}连续失败3次任务中断;}第三种是上下文窗口的锅。消息越积越多超过一定长度之后模型会遗忘最前面的内容。这个留到下一篇文章专门说记忆系统今天你只需要知道它会发生就行了。Loop 终止条件决策无工具调用/任务完成/错误上限/maxSteps四种退出路径等一下。上面这三种停不下来我写得好像很全面——但我想了一下其实还有一种情况更隐蔽模型自己觉得做完了但其实没做完。比如你让它整理项目里所有 TODO 注释并创建 GitHub issues。它搜了一个文件找到 3 个 TODO建了 3 个 issue然后开心地告诉你已完成。但实际上项目里有 84 个 TODO它只搜了一个文件。这不是循环的问题是工具设计的问题。如果你给模型的搜索 TODO工具只返回当前文件的结果它天然不知道还有别的文件。解决方案一般是让你的工具返回更完整的上下文——比如在 12 个文件中找到 84 个 TODO。模型看到12 个文件就知道不能只查一个。我说的可能不太对这种情况其实跟终止条件的关联不大更多是工具返回信息的完备性。但管它呢既然我觉得这是个坑就写在这了。Backtracking走错了能不能回头这个特性大部分 Agent 框架都不支持但我觉得它才是 生产级 Agent 跟 demo 的分界线。什么叫 Backtracking模型调用了一个工具拿到的结果跟它预期不一样——不是错误而是这个信息不是我需要的。这时候它能回退到调用工具之前的状态换一个工具或者换一个参数再试。说实话完整的 Backtracking 实现起来挺复杂的——你需要保存每一步的状态快照维护一个状态栈。大多数场景你用不上。但有一个简化版本非常好用允许模型自己说这个不对我重来。// 在 System Prompt 里加一句 //如果你认为前一个工具调用拿到的信息不对可以说 BACKTRACK: 原因 // 系统会撤销上一次工具调用的结果让你重新决策。const lastAssistantMsgstate.messages.at(-2);if(lastAssistantMsg?.roleassistant){const textgetTextContent(lastAssistantMsg);if(text.startsWith(BACKTRACK:)){// 撤销上一个工具调用 state.messages.splice(-2,2);continue;// 不增加 step 计数重新来}}这里有个细节我用了continue而不是让 step 计数增加。因为这个回退本身不应该消耗步数——它是模型的自我纠错不是继续往前拱。我在一个订票 Agent 里试过这个模式。模型第一次调了搜索航班工具拿到 30 个结果它愣了一下它自己的描述说结果太多需要缩小范围触发了 BACKTRACK换了时间参数重新搜。最终它花了 4 步完成任务如果没有 Backtracking 它会在 30 个结果里硬选一个。但我也要泼个冷水Backtracking 只在特定的场景有用。如果模型的每一步都是确定性的——查天气、发邮件、建 issue——那不需要 Backtracking。它的价值在于模型需要探索的场景搜索、对比、筛选。你八成的情况不需要这个别过度设计。Backtracking 回退机制模型自我检测 → 撤销上一步 → 换策略重试● ● ●● ● ●useEffect 是最诚实的类比写到这儿我突然意识到我应该在系列第一篇就用这个类比。Agent 循环跟useEffect的依赖循环不说一模一样至少是失散多年的亲兄弟。你每天写的useEffectuseEffect(() {fetchUser(userId).then(setUser); // Action}, [userId]); // Dependency → 变了就重新触发Agent 循环while (true) {const r await model.reason(messages); // Thinkconst result await executeTools®; // Actmessages.push(result); // Observe → 更新依赖// 新消息 → 新的 Thought → 新的 Action}共同点是状态变化触发副作用副作用产生新状态新状态再次触发副作用。区别只是useEffect的思考是你写的逻辑Agent 的思考是模型在推理。但循环模式一模一样。有人可能会说这比喻不太精确useEffect 是声明式、Agent 是命令式。对是不精确但你懂我意思就行。我的目的不是做学术对比是让你在第一分钟就理解 Agent 循环不是新东西——它是你写了几年的模式换了一身皮。这个比喻一旦成立你就会发现很多认知可以平移useEffect的 clean-up 函数 ≈ Agent 循环的终止条件依赖数组忘记传导致无限循环 ≈ 模型没有收到完整的工具结果导致重复调用useCallback包一下避免不必要的 effect ≈ 给工具描述写清楚避免模型乱调React 的 strict mode 跑两次帮你发现 bug ≈ 加个 maxSteps 帮你抓死循环你在前端领域积累的直觉全都是 Agent 开发的直觉。只是没人帮你做过翻译。useEffect 依赖循环 vs Agent 思考循环同一模式不同实现● ● ●● ● ●写在最后说回开头那个留言的读者。我回了他的消息把上面那 50 行代码贴给他。他过了大概二十分钟回了一句“跑通了。它连续调了 5 次工具最后自动停了。这种感觉好奇怪。”我问他什么奇怪。他说“它好像在真的干活不是我一个个按钮按出来的。有点恐怖也有点爽。”我说你这种感觉是对的。Agent 循环是你在代码里创造的第一个看起来像在工作的东西。之前的代码都是你让它干什么就干什么每一步都是你推的。Agent 循环是你把下一步怎么走的决策权交了出去——你只定义了规则模型在规则里自己做决定。这个感觉不习惯是正常的。但一旦你习惯了你就回不去了。下一篇讲 Agent 的记忆系统——短期记忆、长期记忆、上下文窗口管理。Agent 循环告诉你怎么让模型干活记忆告诉你模型怎么不忘记正在干什么。两样加起来你就能写一个真正能用的 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大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。资料内容涵盖了从入门到进阶的各类视频教程和实战项目无论你是小白还是有些技术基础的技术人员这份资料都绝对能帮助你提升薪资待遇转行大模型岗位。以上全套大模型资料如何领取

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号