
Agent Factory 回顾:代理外壳、左移实践与自主编码

Google Cloud 开发者博客发布了一期 Agent Factory 播客的文字回顾,围绕自主编码代理(autonomous coding agents)的真实落地展开。核心人物 Ryan Lopopolo(Google Cloud 软件工程师,也是 agent harness 一词的提出者)分享了他对代理工作流的理解和实践。他认为,AI 代理的本质是「大语言模型(LLM)+ 代理外壳(harness)」。外壳指模型之外的一切:工具、上下文、验证机制、执行环境。比如在 Google Antigravity 中使用 Gemini 3.8 Flash,模型是 Gemini,Antigravity 就是外壳。裸模型只能回答简单问题,无法查询实时天气或操作工作区;外壳负责捕获意图、调用工具、把结果拼回提示词,再交给模型生成答案。Ryan 自去年 5 月起再没有打开过传统代码编辑器,他主张工程师不再逐行编写或审查语法,而是用自然语言描述规格,直接检查最终产物(如 pull request、文档、表格),判断是否符合组织标准。他把这种工作方式称为「harness engineering」,并警告不做这种工作就会陷入「prompt and pray」(提示词和祈祷)的被动状态。
Ryan 强调前期对 harness 的投资能让工程师变成「懒惰的提示者」:当仓库里有结构化文档、清晰接口和可发现工具时,模型能自行拉取所需上下文,无需每早粘贴大段提示词。他提到「shift left」原则——把干预从提示词层面移到开发周期更早、更便宜、更自动化的环节:从提示词到仓库文档、linter、测试,再到上游评估。linter、测试和 AGENTS.md 文件充当持久记忆和执行标准,让代理在不需要人工频繁纠正的情况下保持正确方向。他还建议优先使用预训练数据中大量出现的标准命令行工具,把推理负担转移到确定性工具上,减少模型需要聚合的上下文量。一个具体的环境设计技巧:在 markdown 文件中,链接锚点直接放在对应正文下方,而不是内联,这能避免上下文杂乱,缓解「lost in the middle」检索问题。由于 Ryan 只审查最终产物,清晰的文档让他能快速定位代理在哪个环节出错。
关于长期任务,Ryan 认为 harness 工程的核心挑战是让代理在长时间跨度内保持一致性。人类组织通过迭代细化产生软件,代理工作流也应如此。他用小范围、可审查的 pull request 来缩小代理的状态空间,把高置信度的变更端到端堆叠起来,让监督者逐步扩大循环规模,建立信任,最终代理能自主执行大型任务(包括整个语言迁移)。他还用 RPG 属性来比喻团队协作:让不同专长的成员共同贡献给代理,相当于提升角色的各项属性。比如新来一位 React 架构师,前端架构和性能相关的属性就得到增强。代理能自动分类任务并调用所需技能,同时充当后端架构师和前端专家。
对于是否要自建 harness,Ryan 的建议是不要从零开始。标准 harness 已经提供文件读取、grep 搜索、命令执行等基础能力。过度定制僵化框架会制造技术债,并在前沿模型更新时陷入沉没成本陷阱。他主张把精力集中在工具和上下文质量上,这样能自由采用最新模型,持续积累杠杆。在 Google Cloud 的工作中,Ryan 提到要消除「能力过剩」(capability overhang)——即前沿模型理论能力与实际生产产出之间的差距。云平台是可编程的巨大表面,给代理提供直接接口,就能让它们管理部署基础设施,把模型能力转化为企业价值。他最后强调,工程师要不断更新对 AI 的认知,六个月前会失败的任务现在可能轻松运行。应该围绕两个长期有效的接口构建:工具和上下文。代理永远需要上下文来做最后一公里适配,而越来越强的工具会成为记忆和执行标准的载体,模型会不断做出更令人惊喜的事。
随后,Billy Jacobson 演示了如何自定义 harness。他先解释了为什么需要理解 harness 机制:不能把它当黑盒,调试代理故障时,自己构建 harness 才能深入理解。每个工作流有三个核心设计决策:循环次数和退出条件、工具访问范围和调用时机、记忆的重要性和检索/压缩策略。他展示了三种模式:线性 harness(确定性单次执行,适合固定流程)、闭环 harness(迭代测试驱动修复,自动运行单元测试,失败时把错误日志和堆栈喂回代理内存,最多 5 次迭代防止死循环)、以及基于 Google Agent Development Kit(ADK)的护栏 harness(利用 ADK 原生上下文压缩避免上下文膨胀,用自定义拦截钩子过滤危险 shell 操作,如递归删除、数据库删除、未经授权的 git push)。
最后,Smitha Kolan 强调编码代理不一定需要更重的推理模型,高性能来自三层栈的平衡:模型、harness、知识。她推荐三个工具:模型层用 Gemini 3.8 Flash(高频代理循环每任务 20-60 次顺序跳转,轻量模型降低延迟和成本);harness 层用 Google Antigravity 的 /boost 命令(启动协调器并行调度子代理,并在修改文件前做独立审计);知识层用 Google Skills 仓库(超 19000 GitHub stars,100+ 领域包覆盖 Google Cloud、Firebase、Flutter、Maps,按需注入精确领域上下文)。总结:构建高效编码代理不是换更大模型,而是把最佳实践左移,投资于工具、确定性验证器和精心策划的上下文,这些能跨越模型升级。结合快速推理模型、结构化编排 harness 和模块化领域知识,代理才能从对话玩具变成可靠的自主工程伙伴。


