一个反直觉的悖论

📅 2026/6/28 8:24:01
一个反直觉的悖论
几乎同时Anthropic Labs 让 Claude 用 6 小时独立构建了一个 2D 复古游戏引擎4 小时构建了一个数字音频工作站DAW。在多轮迭代中它还设计出了荷兰艺术博物馆的高质量官网——那种在第 10 轮迭代时突然抛弃常规布局、改用 CSS 3D 透视渲染展厅空间的创造性跳跃。这两个实验的主角不是 GPT-5 也不是 Claude Opus 4.5。主角是一套被称为 Harness 的运行制度。但这里有一个悖论模型能力明明在指数级增长为什么反而更需要缰绳如果马跑得越来越快缰绳不应该越来越松吗答案是大模型的原生缺陷不是能力不足而是组织自己的能力不足。就像一位天才工匠被扔进一个没有时间概念、没有记忆、不能回头的房间。他能做出精美的零件但做不出一架飞机。Harness Engineering 的本质 —— 为什么大模型时代急需它从 Prompt Engineering 到 Harness Engineering 的范式跃迁大模型应用的发展经历了三个阶段阶段核心关注点代表实践局限Prompt Engineering单次输入的魔法咒语Few-shot、CoT、ToT无法处理长周期、多步骤任务Context Engineering如何高效填充上下文窗口RAG、压缩、分层检索只解决 输入什么不解决 如何运转Harness Engineering设计智能体的运行环境与制度体系多 Agent 协作、状态外化、反馈回路需要系统性架构思维Harness缰绳这个词的隐喻极其精准它不是马匹本身模型能力也不是骑手人类意图而是连接二者、传递力量、施加约束、确保方向的整套装备系统。在大模型语境下Harness 是一套包含工具接口、沙箱环境、架构约束、自动化测试、反馈循环及监控仪表盘的完整运行环境与制度体系旨在引导和约束 AI 智能体使其能够自主、可靠地完成复杂长周期任务而无需人类实时干预。大模型的原生缺陷为什么必须需要 Harness没有 Harness 的前端模型即使强如 Opus 4.5在面对 构建一个 claude.ai 克隆 这样的高级指令时也会表现出四种系统性失败模式一次性冲刺One-shotting试图在一个上下文窗口内完成所有工作导致中途耗尽上下文留下半成品和未记录的状态。过早宣布完成Premature Completion看到局部进展就认为任务完成忽略后续功能。上下文焦虑Context Anxiety当接近上下文限制时模型会主动 收尾草率结束尚未完成的工作。这是 Anthropic 发现的一个关键现象——仅靠上下文压缩Compaction无法解决因为压缩会传递模糊指令而模型对上下文边界的 恐惧 会改变其行为模式。自我评估过度自信Overconfidence模型评估自己的产出时倾向于高估质量尤其在主观任务如 UI 设计上。这些缺陷的根源在于大模型的底层机制上下文窗口是有限且离散的Transformer 的注意力机制在超长序列上呈二次方复杂度即使窗口扩展到 200k有效注意力Effective Attention依然集中在局部。模型在窗口末端的推理质量显著下降。状态内置于参数而非显式记忆模型没有真正的长期记忆所有 记忆 都是上下文中的 token。一旦会话结束状态即丢失。自回归生成的不可逆性模型生成 token 的过程是单向的无法像人类一样 先思考再动手容易陷入局部最优。Harness Engineering 正是为了系统性解决这些原生缺陷而生。OpenAI 与 Anthropic 的 Harness 实践业务背景与技术路线对比两篇文章表面上是技术实践我觉得底层是更像是两种工程世界观的碰撞。OpenAI制度工程师OpenAI 的 Codex 团队构建的是产品级 Harness——一套需要持续演进五个月的工业化制度。他们的核心信念是人类掌舵智能体执行。工程师不写代码而是设计环境、意图和反馈回路。随着代码吞吐量增加人类 QA 成为瓶颈因此他们将审核工作 Agent 化形成了所谓的Ralph Wiggum 循环源自《辛普森一家》中那个总是说我什么都没做的角色——讽刺的是人类在这个循环中确实越来越不需要做什么。关键设计代码仓库即记录系统System of Record。所有知识必须版本化、可机械检查。专职 linter 验证文档链接有效性、新鲜度、结构合规性。甚至有一个doc-gardening智能体定期扫描过时文档并发起修复 PR。渐进式披露Progressive Disclosure。AGENTS.md只有约 100 行是地图而非说明书。它指向docs/目录中的深层文档——设计文档、执行计划、产品规范、技术债务追踪器。可观测性即感官延伸。Chrome DevTools MCP 让 Codex 能选择目标、清除控制台、捕获 DOM 快照、触发 UI 路径、截图对比。验证循环是指标的可观测性则是通过日志查询LogQL和指标查询PromQL直接暴露给 Agent。这样前后端都是可观测的Anthropic对抗训练师Anthropic Labs 构建的是项目级 Harness——针对单次 4-6 小时的长周期任务强调对抗性优化。他们的核心信念是每个新 session 都是一位失忆的新工程师靠交接文档恢复状态。关键设计三 Agent 架构Planner Generator Evaluator。受 GAN 启发Generator 和 Evaluator 形成对抗式优化闭环。Planner 将高级目标分解为 JSON 格式的 Feature List。Sprint Contract 机制。Generator 和 Evaluator 在每次编码前先协商完成的定义Definition of Done。Generator 提议构建内容和验证方式Evaluator 审查以确保 Generator 在构建正确的东西。这种先签合同再干活的机制解决了过度乐观问题。Context Reset 而非 Compaction。对于长任务主动结束 session通过 Handoff Artifactclaude-progress.txt、feature-list.json、init.sh启动新 session。Reset 不是放弃记忆而是将记忆外化到更可靠的存储——文件系统。一个关键的差异模型进化如何淘汰 Harness 组件Anthropic 在实验中发现了一个反常识现象Harness 的组件不是越复杂越好而且模型的进化会不断让某些组件失效。Opus 4.5 表现出强烈的 Context Anxiety因此必须依赖 Sprint 分解和 Context Reset。但 Opus 4.6 发布时其官方改进包括更谨慎地规划、更长时间地维持 Agent 任务、在更大代码库中更可靠地运行、更好的代码审查和调试能力。于是 Anthropic 做了一个实验移除 Sprint 结构。结果令人惊讶4.6 可以在没有 Sprint 分解的情况下连续运行超过两小时保持连贯。Evaluator 仍然有价值但只在超出模型原生能力边界的任务上。对于模型已经能可靠完成的任务Evaluator 变成了不必要的开销。这揭示了一个深层原则Harness 中的每个组件都编码了一个关于模型不能做什么的假设。这些假设会随模型进化而失效因此 Harness 必须持续被压力测试和简化。维度OpenAICodex 团队AnthropicLabs 团队业务目标从零构建内部 SaaS 产品百万级代码库长周期自主软件工程前端设计 全栈应用Harness 哲学制度性GovernanceCI、linter、doc-gardening对抗性AdversarialGenerator-Evaluator 博弈状态管理仓库即真相源渐进式披露文件系统外化JSON progress.txt init.sh测试策略Chrome DevTools MCP LogQL/PromQLPlaywright MCP 结构化评分评估机制Agent 自审 交叉审查 人类可选审核独立 Evaluator四维度评分Design/Originality/Craft/Functionality成本特征持续投入追求吞吐量单次高成本$200 vs $9追求质量跃迁共性提炼优秀 Harness 的五大黄金法则尽管路线不同两篇文章在底层设计上高度一致法则一状态必须外化到文件系统OpenAI 将docs/目录作为知识库的唯一真相源Anthropic 将claude-progress.txt、feature-list.json和init.sh作为跨 session 的 交接文档。核心共识上下文窗口不是存储文件系统才是。这类似于解决内存泄漏的思路——不优化内存而是重启进程并从磁盘恢复状态。法则二渐进式披露优于百科全书式灌输OpenAI 的AGENTS.md只有 100 行是 地图 而非 说明书Anthropic 的 Feature List 是 JSON 结构化数据每次只加载当前任务所需信息。两团队都发现给 Agent 一张地图比给一本 1000 页的说明书更有效。过多的指导会挤占任务上下文导致模型进行错误的局部模式匹配。法则三分离 做事 与 评判OpenAI 让 Codex 在提交 PR 前进行自我审查并引入其他 Agent 进行交叉审查Anthropic 明确将 Generator 与 Evaluator 分离并指出让独立的 Evaluator 保持怀疑态度远比让 Generator 自我批评更容易实现far more tractable。 这本质上是在 Harness 层面实现了关注点分离Separation of Concerns。法则四可观测性必须对 Agent 可读OpenAI 将 Chrome DevTools Protocol、日志查询LogQL、指标查询PromQL直接暴露给 CodexAnthropic 让 Evaluator 通过 Playwright MCP 与实时页面交互。两者的共同洞见如果人类需要看截图才能判断 UI 好坏Agent 也需要同样的感知通道。可观测性不是给人类看的仪表盘而是 Agent 的感官延伸。法则五增量推进是长周期任务的唯一可行策略OpenAI 采用 深度优先 的模块化解构Anthropic 强制 每次只做 1 个 feature。两者都拒绝了 大爆炸式 开发因为上下文窗口的离散性决定了复杂任务必须被切分为可在单个窗口内完成的原子单元。2.3 差异分析产品级 Harness vs 项目级 HarnessOpenAI 的 Harness 是为持续演进的产品设计的需要处理 1500 个 PR、维护技术债务、进行文档园艺doc-gardening、支持多人多 Agent协作。其 Harness 强调制度性——CI 验证、 linter、知识库新鲜度检查。Anthropic 的 Harness 是为单次长周期项目设计的6 小时构建游戏引擎、4 小时构建 DAW。其 Harness 强调对抗性——Generator-Evaluator 的迭代循环、上下文重置的干净启动。这种差异决定了 Harness 设计的两个方向产品 Harness 需要治理Governance项目 Harness 需要对抗Adversarial。第三章多 Agent 协作机制深度拆解3.1 Anthropic 的三 Agent 架构Planner-Generator-EvaluatorAnthropic 在前端设计和全栈开发中采用了受 GAN 启发的三 Agent 架构plain复制plain┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ Planner │────→│ Generator │←────│ Evaluator │ │ (规划器) │ │ (生成器) │ │ (评估器) │ └─────────────┘ └─────────────┘ └─────────────┘ │ ↑ │ └───────────────────┴───────────────────┘ (迭代循环5-15 轮)Planner将高级目标构建 claude.ai 克隆分解为可执行的 Feature ListJSON 格式确定优先级和依赖关系。Generator每次 session 只处理一个 feature编写代码并进行端到端测试。Evaluator使用 Playwright MCP 与实时页面交互从Design Quality、Original