在2026年,OpenAI于一篇博客中首次提及"harness engineering",即驾驭工程,这一概念迅速在人工智能领域引发了广泛关注。然而,许多人对它的确切含义仍一知半解,便已纷纷跟风热议,这在日新月异、充满爆炸性发展的AI圈子里虽显离谱,却也合乎情理。那么,驾驭工程究竟是什么?它与近年来大热的提示词工程和上下文工程又有何关联?
一、核心概念解析
(1)提示词工程
大模型实质上是一个存储在磁盘上的超大参数文件,其核心功能在于"基于当前输入的上下文,预测下一个最可能出现字词",本质上是根据输入来猜测用户意图。如果输入的指令过于宽泛,预测结果便会显得杂乱无章。通过精心调整和设计提示词(包括角色设定、背景信息、历史对话、参考文档以及输出格式等限制条件),可以有效引导模型按照预期内容和格式进行输出。这一技术手段正是为了解决大模型在缺乏明确引导时回答偏离问题核心的困境。
(2)上下文工程
提示词的长度和细致程度直接影响着模型回答的准确性。详细而冗长的提示词能够提供更多的信息,从而帮助模型给出更为精确的答复。反之,如果提示词过于简略,模型因缺乏足够的信息而无法进行准确的推断。在与大模型交互过程中,用户提供的所有信息,包括提示词,都构成了所谓的上下文。大模型在处理这些上下文时,存在一个最大的处理限制,即上下文窗口。这意味着在多轮对话中,随着信息的不断增加,系统可能会达到其处理上限,进而需要压缩或丢弃部分信息。这种情况下,关键信息的遗失便可能导致回答的前后不一致,这种现象被称为上下文腐化。值得注意的是,提示词工程作为上下文工程的一部分,其主要职责在于有效地管理和优化上下文信息,以克服上述问题,确保对话的连贯性和一致性
实现三步骤:
- 召回:找什么信息(来自外部新闻、聊天记录、代码环境、报错等,涉及RAG、Memory等技术)。
- 压缩:因为窗口有限,将信息变小(如分发给大模型做总结)。
- 组装:信息放置的位置和顺序会影响模型理解(越靠后越容易被关注),需通过一定结构重新组装,使上下文更精简、相关,输出更稳定。
各种AI工具(比如Cursor和Cloud Code)在上下文处理上采用了不同的策略,这就解释了为何相同的模型在不同的AI集成开发环境中会呈现出截然不同的效果。
(3)驾驭工程
提示词有效解决了"乱说话"的问题,上下文工程则巧妙地应对了"组织问题"的挑战。然而,模型的应用依旧局限于聊天范畴,无法在实际工作中为我们提供帮助。这其实是一套由大模型驱动的工程外壳。其核心公式为:AI Agent = 大模型 + Harness Engineering(凡是超出大模型范畴的部分,都可归入Harness Engineering的领域)。
二、Harness Engineering 的四层架构
(1)执行层
- 做法:通过集成Bash、沙箱、文件系统以及MCP等强大功能,大模型得以执行复杂的外部工具操作,包括读写代码、执行命令以及进行测试,从而显著提升其处理能力和应用范围。
- 机制:结合提示词与上下文工程,强大的人工智能模型承担起"思考"的重任,而外部程序则负责精准"执行"。这一思考与行动紧密交织的循环过程,便是ReAct的核心机制。它构建了所谓的AI Agent,成为智能化操作的中坚力量。
(2)记忆层
- 痛点:在Agent的运行过程中,如果循环变得过长,上下文信息将不可避免地膨胀,甚至可能趋于腐化。最初设定的目标和约束条件可能会被后续涌入的杂乱信息所稀释和掩盖,从而影响其执行效率和准确性。
- 做法:确保在大模型的每次输入中都包含"可复用的核心信息",如项目目标、技术栈、代码风格以及需要避免的事项,以保持一致性并提高效率。
- 落地:将这些核心信息编制成规则文件(例如,Claude 的 claude.md 或 Cursor 的 rules 文件),并将其作为系统的提示词自动注入其中。如果文件内容过于冗长,可以将其拆分为多个短文件(例如,bg.md 或 stack.md),并通过路由机制按需进行加载。
(3)反馈层
- 做法:Agent在编写代码、运行Linter检查以及执行单元测试时,如果检测到报错信息,会将这些测试输出和报错详情加入当前上下文中。这种机制促使Agent在下一轮循环中自动进行修复,从而提高开发效率和准确性。
(4)编排层
- 痛点:如果循环缺乏全面的全局规划以及明确的结束目标,Agent极易偏离正轨,甚至陷入无意义的死循环,从而降低效率并浪费资源。因此,在设计循环时,必须慎重考虑其整体架构与终止条件,以确保其能够按照预期执行任务并达成目标。
- 做法:以全局性的规划作为核心导向,将大型任务拆解为多个具有明确执行标准的子任务。依据规划来驱动智能体(Agent)分步骤执行,并实施全流程的管控,以确保各项任务有序推进并最终达成整体目标。
三、Harness Engineering 怎么落地?
以 Claude Code 为例,它已原生支持 Harness 的四层能力:
(1)方式一:纯手工写规则
在 claude.md 文件里写清楚:项目背景、希望模型做什么/不做什么、做完之后要跑哪些 Linter、单测和 CI 执行哪些 Script。
(2)方式二:引入插件(如 Spec Kit)
采用 SDD (Spec Driven Development,规格驱动开发) 模式:
- 根据项目将需求拆成多个阶段。
- 生成对应的约束文件,明确需求。
- 制定具体开发计划,拆解任务。
- 最后才是实际修改加测试。
- 每个阶段更新一次
claude.md,确保每一阶段注入的都是核心信息。
四、总结与程序员未来
- 提示词工程:让大模型明白你的具体需求和输出标准。
- 上下文工程:给大模型注入精准有效的上下文。
- 驾驭工程:让大模型持续按规范执行任务,并最终交付。
未来趋势:随着大模型能力的不断提升,Harness的外壳设计得以日益轻薄化,然而,这一层外壳依然不可或缺。程序员的工作职责正逐渐从编写代码转变为制定规则和开发技能,这成为了存量程序员的主要战场。