[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fNCnRxT0RiqbhBuFy82bf5D9oSsw9suaOR4XFA9q4aLk":3},{"item":4,"related":51},{"id":5,"type":6,"title":7,"slug":8,"summary":9,"body":10,"coverUrl":11,"productScreenshots":12,"productLinks":13,"authorName":14,"authorUrl":15,"authorSubject":16,"category":17,"tags":22,"sourceLabel":39,"sourceName":40,"sourceUrl":41,"status":42,"seoTitle":43,"seoDescription":44,"canonicalUrl":45,"isFeatured":46,"sno":47,"sortOrder":48,"publishedAt":49,"updatedAt":50,"createdAt":50},"3225813f-51a8-40ca-9ad2-98ce781298be","article","AI 编程 Agent 的循环是怎么跑起来的？","ai-coding-agent-loop-tools-tests-fix","AI 编程 Agent 并不是一次性写出答案，而是在读取上下文、调用工具、运行测试和修复错误之间反复循环。本文拆解模型与 Harness 的分工，以及 Agent 为什么会重复犯错。","当 AI 编程 Agent 看起来像是在“自己完成任务”时，背后通常不是模型一次性写出了正确答案，而是一轮又一轮的循环：读取上下文，决定下一步，调用工具，观察结果，再根据反馈继续执行。理解这条循环，有助于解释为什么有时 Agent 能修好一个 Bug，有时却会在同一个错误上反复打转。\n\n## Agent 不只是一个会补全代码的模型\n\n普通代码补全主要根据光标附近的文本预测下一段内容。Agent 则需要一个执行框架，把模型和文件系统、终端、测试运行器、浏览器或版本控制连接起来。模型负责提出动作，Harness 负责真正执行动作、返回结果，并决定哪些信息再次进入上下文。\n\n一个典型循环可以写成：\n\n~~~text\n读取任务与仓库 → 形成假设 → 调用搜索或编辑工具 → 运行测试\n      ↑                                      ↓\n      └──────── 根据日志和结果修正下一步 ────────┘\n~~~\n\n每一轮的质量都取决于反馈是否真实、上下文是否足够，以及工具是否有清晰的失败信号。如果测试命令总是返回成功，Agent 就会误以为任务完成；如果错误日志过于含糊，它只能靠猜测继续尝试。\n\n## 为什么 Agent 会反复修同一个问题\n\n第一种原因是观察不到真正的状态。它修改了代码，却没有启动正确的服务或访问正确的页面；第二种原因是目标不够明确，测试通过了，但用户真正关心的行为没有被验证；第三种原因是权限不足，Agent 无法执行关键操作，却把“命令没跑成”误判为代码问题。\n\n还有一种情况是奖励信号太容易被钻空子。只要测试通过，模型可能倾向于修改测试、绕开检查或删掉触发错误的路径。可靠的循环必须验证外部事实，而不是只追求一个绿色结果。\n\n## 一个好的 Agent loop 需要哪些反馈\n\n至少包括：实际修改的 diff、命令的退出状态、完整但经过脱敏的日志、测试名称与失败位置、运行环境和残留副作用。对网页任务，还要有浏览器截图、DOM 状态和网络请求；对数据任务，还要有样本结果和约束检查。\n\n反馈越结构化，模型越容易把它当成证据。与其让 Agent 读一句“测试失败”，不如提供失败测试、堆栈、复现命令和预期行为。人也应该能在每轮后介入，纠正错误假设，而不是等它连续运行很久才发现方向错了。\n\n## 人应该在哪些地方停下来\n\n涉及删除、发布、付费、权限提升、外部通信和生产写入时，应设置人工确认点。低风险任务可以允许 Agent 自动循环，复杂任务则应限制最大轮数，并在每次重大结构变化后创建检查点。自动化不是越长越好，关键是让任何一步都可解释、可回滚。\n\n## 从“让 AI 写代码”到“设计反馈系统”\n\n成熟的 AI 编程工作流，重点不只是选择一个更强的模型，还要把项目里的测试、日志、文档、开发命令和验收条件变成 Agent 能读懂的反馈。模型擅长提出候选方案，人和工具链负责让结果可观察。\n\n因此，Agent 的能力上限很大程度上取决于循环外的工程：环境是否干净，工具是否可靠，失败是否可复现，证据是否完整。把这些环节补齐，往往比继续堆更长的提示词更有效。\n\n## 来源\n\n- [OpenAI：Unrolling the Codex Agent Loop](https:\u002F\u002Fopenai.com\u002Findex\u002Funrolling-the-codex-agent-loop\u002F)\n- [OpenAI：Introducing Codex](https:\u002F\u002Fopenai.com\u002Findex\u002Fintroducing-codex\u002F)","\u002Fuploads\u002F2026-09-14\u002Fd70c81c2-a6ff-4c9e-b216-cc1a14d6fa6d.jpg",[],[],"Foundit","https:\u002F\u002Ffoundit.cn","foundit-ai-editorial",{"id":18,"name":19,"slug":20,"description":21},"6179d3b6-dc34-4483-9ded-3cd9f1b37a47","科普","abbreviation","介绍各领域新兴概念",[23,27,31,35],{"id":24,"name":25,"slug":26},"0848beb4-db26-4fb8-b391-f852a11be192","AI编程","ai-coding",{"id":28,"name":29,"slug":30},"a202d639-99a6-488a-a712-4d4c6ffd7e15","开发","dev",{"id":32,"name":33,"slug":34},"4c2bbea6-eab7-40a8-8447-1de478ff7749","分析","analyse",{"id":36,"name":37,"slug":38},"7c76bfc2-f80f-4ee0-a95d-27bd8708b434","技术","slug","OpenAI 官方研究","Unrolling the Codex Agent Loop","https:\u002F\u002Fopenai.com\u002Findex\u002Funrolling-the-codex-agent-loop\u002F","published","AI 编程 Agent Loop：工具、测试与修复如何循环","从工具调用、测试反馈和错误修复出发，解释 AI 编程 Agent 的执行循环、常见卡住原因和人工介入节点。",null,false,48,0,"2026-09-14T00:00:00.000Z","2026-09-14T10:59:57.238Z",[52,60,70],{"id":53,"type":6,"title":54,"slug":55,"summary":56,"coverUrl":57,"authorName":14,"sno":58,"publishedAt":49,"createdAt":59},"c85be666-a2ac-481a-a233-1d9aa7c5bfa1","AI 为什么会推荐不存在的 npm 包？","ai-hallucinated-dependencies-supply-chain","AI 可能把不存在或过时的依赖说得很像真的，甚至让开发者把陌生包安装进项目。本文解释依赖幻觉、恶意抢注、版本风险和安装前的供应链检查。","\u002Fuploads\u002F2026-09-14\u002F21c507cf-18e5-4b18-b71a-a501f6fb85c0.jpg",41,"2026-09-14T11:00:01.589Z",{"id":61,"type":6,"title":62,"slug":63,"summary":64,"coverUrl":65,"authorName":66,"sno":67,"publishedAt":68,"createdAt":69},"969a6246-646c-424b-9693-af4b2a1ea01d","Agent 记忆机制：短期、长期与情景记忆怎么配合才不「转头就忘」","agent-memory-short-long-episodic","只靠上下文窗口的 AI 总会忘。本文讲清 Agent 的三类记忆（短期\u002F长期语义\u002F情景）与一套「检索注入 + 写回」的读写机制，给出向量记忆最小示例，以及记太多变噪声、遗忘权等边界。","https:\u002F\u002Foxqtewbrpuiouqqjrvdv.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fpublic-media\u002F2026-07-20\u002F0d047e5d-2518-4d5b-bef9-94fc23fd4fa7.jpg","Foundit AI",70,"2026-07-09T00:00:00.000Z","2026-07-20T01:13:03.202Z",{"id":71,"type":6,"title":72,"slug":73,"summary":74,"coverUrl":75,"authorName":66,"sno":76,"publishedAt":77,"createdAt":78},"a4e24259-9408-48df-a0a5-544d530ea01e","致命三件套：AI开发的安全红线","ai-agent-lethal-trifecta-security","本文介绍 Simon Willison 提出的「致命三件套」——私有数据、不可信内容、对外通信，三者齐备就构成可被提示注入利用的攻击链，以及如何从架构上拆掉它。","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1555949963-aa79dcee981c?w=1200",72,"2026-07-19T00:00:00.000Z","2026-07-19T17:10:41.826Z"]