第十部分:业界共识与分歧全景

综合 OpenAI、Anthropic、Stripe、Martin Fowler / Böckeler、Mitchell Hashimoto、Charlie Guo、Alex Lavaee、SmartScope 等 8 个独立信息源的交叉对比,以下梳理出 Harness Engineering 领域目前已形成共识的方面和仍存在分歧的方面。 10.1 六大共识
共识 1:瓶颈在基础设施,不在模型智能。这是整个领域最核心的共识。Can.ac 实验中仅改变 Harness 的工具格式就让 Grok Code Fast 1 从 6.7% 跳到 68.3%,LangChain 同一模型靠 Harness 改进从第 30 名跳到第 5 名。Alex Lavaee 的总结最直接:"Five independent teams. Same conclusion: the bottleneck is infrastructure, not intelligence." 六个以上独立来源支持这一判断,无反对意见。 共识 2:文档必须是活的反馈循环,不是静态制品。Hashimoto 的 Ghostty 项目 AGENTS.md 每一行都对应一个历史 Agent 失败案例。OpenAI 更进一步,让后台 Agent 定期扫描过期文档并提交清理 PR——Agent 为 Agent 维护文档。Anthropic 用 claude-progress.txt + git 日志做跨会话活文档。四个以上来源支持,无反对意见。 共识 3:思考与执行必须分离。OpenAI、Anthropic、Hashimoto、Horthy、Huntley、Boris Tane 全部独立发现了"先规划再执行"的模式。Boris Tane 的表述最简洁:"永远不要让 Agent 在你审查和批准书面计划之前写代码。" Anthropic 把这个做到了极致——初始化 Agent 生成超过 200 个功能的结构化列表,全部初始标记为 failing。六个以上来源支持。 共识 4:上下文不是越多越好。Horthy 给出了量化经验——上下文填到约 40% 就开始走下坡路,之后进入 Dumb Zone。Carlini 花大量精力做"上下文窗口污染缓解"。OpenAI 从单个巨大 AGENTS.md 迁移到分层渐进式披露。Vasilopoulos 的 283 个开发会话学术验证也证实单文件指令集在规模化后会崩溃。四个以上来源支持。 共识 5:约束必须机械化执行,不能靠文档记录。OpenAI 原话:"if it cannot be enforced mechanically, agents will deviate." Carlini 的项目后期 Claude 频繁破坏现有功能,解决方案是更严格的 CI——"a harness-level solution to a model-level problem"。Huntley 的 Backpressure 概念核心就是上下游的机械化约束。Martin Fowler 提到 ArchUnit 等结构测试框架的重要性。四个以上来源支持。 共识 6:工程师角色正在从"写代码"转向"设计环境 + 管理工作"。OpenAI、Charlie Guo、Hashimoto、Martin Fowler / Böckeler 都在强调这一转变。Chad Fowler 用 "Relocating Rigor" 描述这个现象——rigor 没有消失,只是从写代码转移到了设计约束系统。 10.2 四大分歧
分歧 1:Harness 应该越做越复杂还是越做越简单?
这是目前争议最大的问题之一。Manus 团队半年重写五次 Harness,每次方向都是简化——用通用 Shell 执行替代复杂工具定义。Phil Schmid 据此提出"如果 Harness 越做越复杂,大概率是过度工程化了"。但 OpenAI 花了 5 个月构建了大量自定义 Linter、结构测试、分层文档系统和后台清理 Agent。Carlini 随着模型从 Opus 4.5 升级到 4.6,每个能力级别都需要重新设计 Harness。Martin Fowler 没有明确站队,但暗示未来可能走向标准化模板。 这个分歧的根源在于场景不同:Manus 做通用 Agent 产品,追求最小化 Harness 以适应各种场景;OpenAI 做特定产品的深度开发,Harness 可以高度定制。两者并不矛盾,但"哪个方向是主流"尚无定论。 分歧 2:单 Agent 还是多 Agent 架构?
Carlini 用 16 个并行 Agent 构建 C 编译器,Vasilopoulos 部署了 19 个领域特定 Agent,Alex Lavaee 的 Atomic CLI 内置了 10 个专业化子 Agent。但 Hashimoto 明确说 "I'm not \\[yet?\\] running multiple agents, and currently don't really want to",Anthropic 的长时间运行 Agent 研究用的是单 Agent 循环跑多次会话。Stripe 和 Huntley 介于两者之间——Stripe 的 Minions 是多个独立 Agent 并行,但每个 Agent 独立完成端到端任务。 Anthropic 自己也承认这是 open question——"it's still unclear whether a single, general-purpose coding agent performs best across contexts, or if better performance can be achieved through a multi-agent architecture." 目前的证据表明,任务复杂度和代码库规模是决定因素:小项目单 Agent 够用,大项目几乎必然需要多 Agent 专业化。 分歧 3:人类应该介入到什么程度?
光谱的一端是 Hashimoto——一次只跑一个 Agent,保持深度参与。另一端是 Stripe Minions 和 Huntley——开发者发个消息就走了,Agent 全程包办到 PR,甚至直接推 master,不做人工代码审查。中间是 OpenAI 和 Anthropic——规划阶段人类审查,执行阶段 Agent 自主,验证阶段自动化加人类审查。 Charlie Guo 的分析最到位:团队在这个光谱上的位置取决于"Harness 的成熟度"和"对 Agent 在代码库中的信任程度"。Stripe 能做到无人值守,是因为 Toolshed + 预热 Devbox + CI 集成已经非常成熟。大多数团队还不具备这些条件。这不是理念分歧,而是成熟度差异。 分歧 4:术语边界怎么画?
SmartScope 和 Alex Lavaee 主张嵌套关系:Harness ⊇ Context ⊇ Prompt,三者是渐进扩展的关注域。mtrajan 主张互补关系:"Context Engineering helps the model think, while Harness Engineering prevents the system from going off the rails." Martin Fowler / Böckeler 则对术语本身持保留态度:"The term is used only once in the article body. It may be a retroactive label." SmartScope 的务实结论是:"In practice, the choice of framing does not significantly affect design decisions." 争的是怎么画框,不是框里有什么。
|