跳转至

Prompt Context Harness 三次演进

📊 Level ⭐⭐⭐ | 8.1KB

从Prompt、Context到Harness,工程的三次进化与终局之战

原文:从Prompt、Context到Harness,工程的三次进化与终局之战 OpenAI 内部实验:3-7人团队,5个月,AI生成近100万行生产级代码。全程没有工程师手写业务代码。

相关实体

→ 原文存档

深度分析

Harness 衰变定律指向了 AI 工程化的核心矛盾:模型的快速进化正在压缩人工 Harness 的价值窗口。 文章提出的「模型能力越强,所需的 Harness 越简单」这一洞察,在 2026 年的模型能力背景下具有特殊的工程含义。Claude 3.0 时代需要极严格的 Harness 约束——逐点执行、频繁重置上下文、大量硬编码检查——到了 Claude 3.5 时代许多规则自然消失。这个现象背后是一个更深层的问题:当模型能力提升的速度快于团队构建 Harness 的速度时,今天精心设计的 Harness 体系可能在 6-12 个月后成为冗余约束。这要求团队在设计 Harness 时必须区分「因模型能力不足而必需的约束」和「业务逻辑本身必需的约束」,前者是过渡性的、应该在模型升级后主动移除,后者则是持久的设计选择。

F-Harness 三角色模式揭示了多 Agent 协作中「权力分立」的工程价值。 Anthropic 发现的「AI 倾向于给自己的 Bug 打高分」这一「自恋问题」,本质上反映了一个通用认知偏见在 AI 系统中的具体表现。Planner-Generator-Evaluator 三角色架构的精髓在于:Evaluator 必须与 Generator 完全独立,不受生成偏见影响,才能有效履行审核职责。这一设计的工程价值远超单纯的分工:它本质上是把「构建者」和「验证者」分属到不同的激励体系和能力边界中,避免了单一 Agent 在自我生成和自我验证时的利益冲突。效率数据的对比极具说服力——单 Agent 模式 20 分钟、$9,但输出质量勉强可用;三角色模式 6 小时、$200,却是生产环境级别。20 倍时间代价和 22 倍成本代价换来的是质的飞跃,这说明在高质量 Agent 应用中,评估和验证的成本不是浪费,而是质量的必要代价。

上下文治理的「百行原则」揭示了 Agent 系统中最容易被忽视的信号衰减问题。 OpenAI 百万行代码实验中,「巨型 agent.md 导致 Agent 什么都抓不住重点」是一个极具代表性的工程失败模式。当 Agent 的上下文文档过长时,有效信息被淹没在噪声中,模型对关键指令的注意力被稀释——这本质上是注意力机制在系统设计层面的具象化表现。文章提出的「压缩至百行只保留索引」方案背后的原理是:与其让模型在长上下文中进行信息检索(这会消耗大量 token 且检索质量不稳定),不如在源头就强制执行严格的信息过滤,只保留索引和指向代码仓库的引用。这一原则在工程实践中具有广泛适用性:任何面向 Agent 的上下文文档,都应该先问「如果只能保留 100 行,哪些是绝对必要的?」然后果断丢弃其余内容。

「Human Steer, Agents Execute」标志着 AI 工程评价标准的根本性范式转移。 文章列举的新旧衡量标准对比(从「每天能写多少行代码」到「Harness 能支撑多高的代码产出率」,从「能实现多复杂的业务逻辑」到「能设计多健壮的 Agent 系统」)揭示了一个深刻转变:个人生产力的衡量维度正在被系统性杠杆所取代。这个转变对工程团队的影响是深远的——在旧标准下,工程师的价值体现在「自己能写多少行」;在新标准下,工程师的价值体现在「能构建多完善的自动闭环机制」。这意味着技术面试、项目评估、团队配置等一系列工程管理实践都需要重新校准标准。那些仍然以代码产出量评估工程师生产力的团队,正在用工业时代的尺子测量知识经济时代的产出。

三层嵌套关系的澄清,对于防止 AI 工程中的「技术时尚病」具有重要价值。 最大的误解——认为 Harness Engineering 最高级、前两个过时了——在 AI 圈子里有相当普遍的代表性。这种线性升级思维的误区在于,它把三个层次看成相互替代的关系,而实际上它们是相互依存的嵌套结构。没有好的 Prompt,Context 注入的信息无法被正确理解;没有好的 Context,Harness 的 Agent 在信息真空中瞎跑;没有好的 Harness,再好的 Prompt 和 Context 只是沙滩上的城堡。对于工程团队而言,这个嵌套结构意味着:任何一个层次的短板都会成为系统能力的上限。因此,资源的分配不应该追逐「最先进」的概念,而应该优先补足当前系统中最薄弱的层次。

实践启示

  1. 建立 Harness 的「必要性审查」清单:每次设计新的 Harness 约束时,明确标注该约束是「因模型能力不足而必需」(模型升级后应移除)还是「业务逻辑本身必需」(持久保留)。每季度回顾一次 Harness 体系,移除那些模型能力已经覆盖但仍然存在的冗余约束,避免 Harness 体系随时间累积变得臃肿低效。

  2. 在关键代码路径上强制引入独立的 Evaluator 角色:当 Agent 输出涉及金额、权限、安全策略等高风险决策时,必须有一个与 Generator 完全独立的 Evaluator 进行独立验证。即使评估成本较高,也应该视为高风险场景的必要工程投入,而非可选项。可以先从规则驱动的 Evaluator 起步,逐步过渡到模型辅助的评估。

  3. 对所有面向 Agent 的上下文文档执行「百行压缩测试」:在将技术规范、决策文档、API 文档接入 Agent 上下文之前,先问自己:如果只能保留 100 行,哪些是让 Agent 正确执行任务绝对必要的信息?超过这个阈值的文档都应该被压缩、切片或建立索引式引用,而非直接整块塞入上下文。

  4. 重新校准工程团队的能力评估标准:从「代码产出量」向「系统杠杆率」迁移。具体的评估维度应包括:能否设计有效的验证闭环、能否构建可靠的 Agent 协作架构、能否建立可持续的 Harness 演进机制。在招聘、晋升和技术方案评审中,将系统设计能力置于个人编码速度之上。

  5. 每次系统能力出现瓶颈时,首先诊断是哪一层的问题:Agent 系统表现不佳时,团队容易第一时间怀疑 Prompt 不够好、或者模型能力不够强,而实际上很多问题的根因在 Context 层(上下文信息错误或缺失)或 Harness 层(缺少有效的验证和反馈机制)。建立系统性的根因诊断流程,先确认是哪一层的问题再行动,可以避免大量的无效 Prompt 调优和模型切换成本。