超越模型本身:WorkBuddy如何构建Agent稳定落地的Harness工程体系

1 阅读

在人工智能技术飞速迭代的今天,许多团队陷入了一种误区:认为只要接入最强大的大语言模型,或者编写足够详尽的提示词,就能构建出完美的AI智能体(Agent)。然而,当真正深入一线业务场景时,我们会发现模型能力仅仅是冰山一角。一个能在生产环境中稳定运行、可靠交付结果的Agent产品,其核心壁垒往往不在于模型本身的参数量,而在于如何构建一套精密的工程化体系,将模型不确定的输出转化为确定性的业务价值。

从模型到Harness:WorkBuddy如何把Agent做成可用产品

这套体系被称为Harness Engineering(驾驭工程)。它涵盖了从上下文的精准组织、工具的标准接入、权限的严格边界,到结果的自动化验证与反馈纠正。本文将基于WorkBuddy的研发实践,剥离晦涩的理论概念,从产品与工程的双重视角,拆解如何将Agent从单纯的模型能力推进为可用的产品能力。

从模型到Harness:WorkBuddy如何把Agent做成可用产品

重新定义模型:无状态函数与外部依赖

从模型到Harness:WorkBuddy如何把Agent做成可用产品

要构建可靠的Agent,首先需要对大语言模型(LLM)有一个清醒的认知抽象:在产品层面,模型本质上是一个无状态的函数。它根据输入的系统提示词、工具定义、会话历史及用户指令,生成后续的文本或结构化请求。这个抽象揭示了两个关键约束,也是所有上层工程存在的根本理由。

首先,模型是无状态的。它不会自动保留上一次调用的记忆,所有的对话连续性、工作进度和中间状态,都必须由产品在模型外部进行维护,并在需要时重新注入上下文。其次,模型的知识具有截止性。对于训练数据之后的实时信息,或者读取文件、查询数据库等外部动作,模型本身并不具备直接执行能力。因此,产品必须在模型之外接入工具和执行环境,让模型知道“有哪些工具可用”,并将执行结果回传以供后续推理。

这种“模型负责推理,Agent负责执行”的分层架构,决定了权限校验、参数验证和审计日志必须发生在模型外部的工程层,而非依赖模型的自我约束。这是确保高风险操作不被误执行的前提。

能力接入的标准化:从Tool Call到MCP

为了让模型能够与外部世界交互,我们需要解决能力接入的问题。这里涉及四个核心概念:工具调用(Function Call)、模型上下文协议(MCP)、技能(Skill)和插件(Plugin)。

从模型到Harness:WorkBuddy如何把Agent做成可用产品

工具调用是模型与外部系统之间的基础协议。模型生成结构化的调用请求,Agent负责校验参数、检查权限并执行API或脚本,最后将结果返回给模型。然而,如果每接入一个外部系统都单独适配其接口,维护成本将呈指数级上升。此时,MCP(Model Context Protocol)的价值得以体现。作为Anthropic推出的开放协议,MCP通过统一接口连接AI应用与外部数据源,解决了外部能力接入的标准化问题。

从模型到Harness:WorkBuddy如何把Agent做成可用产品

MCP不仅提供工具(Tools),还提供资源(Resources)和提示模板(Prompts)。资源是只读内容,由Agent驱动读取;工具是模型驱动的动作;提示模板则是用户驱动的预设指令组合。这种分层设计使得Agent可以更灵活地获取信息,而无需将所有数据都塞入昂贵的模型上下文窗口。例如,MCP Apps允许工具返回可直接渲染的交互式UI,既保留了用户体验,又减少了Token消耗。

从模型到Harness:WorkBuddy如何把Agent做成可用产品

如果说MCP解决了“怎么连”的问题,那么Skill则解决了“怎么做”的问题。真实任务往往不是单次工具调用就能完成的,而是包含一系列步骤、判断标准和异常处理流程。Skill将这些经过验证的工作方法沉淀下来,指导Agent按既定流程执行。而Plugin则是能力的打包分发单位,它将MCP连接、Skills流程、规则规范和Hooks组合在一起,形成可安装、可复用的能力包。

从模型到Harness:WorkBuddy如何把Agent做成可用产品

上下文工程:决定模型看到什么

从模型到Harness:WorkBuddy如何把Agent做成可用产品

在Agent执行任务的过程中,上下文的质量直接决定了决策的准确性。Context Engineering(上下文工程)的核心目标,是在每次模型决策前,精心设计哪些信息进入上下文、以何种形式呈现、何时更新或移除。

从模型到Harness:WorkBuddy如何把Agent做成可用产品

这包含五个关键动作:写入、选择、检索、压缩和隔离。写入是将目标、规则和环境状态显式化;选择是从候选信息中筛选当前步骤所需的内容;检索是从历史或数据库中按需拉取信息;压缩是将长内容外置或总结;隔离则是通过子Agent处理旁支任务,避免污染主上下文。

从模型到Harness:WorkBuddy如何把Agent做成可用产品

一个常见的误区是认为上下文窗口越大越好,从而将所有信息一股脑填入。事实上,无关信息不仅增加成本,还会降低模型对重点信息的注意力。WorkBuddy采用渐进式加载策略:默认只暴露工具名称和简要描述,仅在意图识别确认需要时,才加载完整的工具定义或Skill详情。同时,利用Prompt Cache技术,保持System Prompt和基础规则的前缀稳定,仅追加动态内容,从而大幅提高缓存命中率,降低推理成本。

从模型到Harness:WorkBuddy如何把Agent做成可用产品

记忆系统:让正确的过去重现

从模型到Harness:WorkBuddy如何把Agent做成可用产品

记忆功能常被误解为“越用越懂你”,但其工程本质是解决重复交代背景的问题。WorkBuddy将记忆分为五类:稳定事实、用户知识背景、行为信号、表达偏好和会话延续信息。关键在于建立严格的“准入判断”机制,决定哪些历史信息有资格影响未来的任务。

从模型到Harness:WorkBuddy如何把Agent做成可用产品

值得注意的是,WorkBuddy刻意未将程序性记忆(Procedural Memory,即做事的方法)纳入长期记忆。因为一旦将特定的操作步骤固化为长期记忆,容易导致局部经验被误升为通用策略,干扰模型在当前场景下的独立推理,甚至引发隐性行为改写。相反,经过验证的工作流程应保存为Skill,通过版本化管理、评审和测试来确保其可靠性。记忆的作用域也需分层,从当前轮临时上下文到团队级记忆,作用范围越大,写入和晋升的门槛应越高。

从模型到Harness:WorkBuddy如何把Agent做成可用产品

Harness工程:引导、约束与整合

从模型到Harness:WorkBuddy如何把Agent做成可用产品

当Agent开始执行写文件、运行命令等操作时,Harness Engineering的重要性凸显出来。它可以被拆解为三类能力:驾驭(Steer)、约束(Constrain)和整合(Integrate)。

从模型到Harness:WorkBuddy如何把Agent做成可用产品

驾驭侧重于控制执行方向。通过System Prompt、规则文件(如WORKBUDDY.md)和Task清单,明确Agent的工作方式和目标拆解。约束侧重于安全边界,包括权限控制、沙箱隔离、审批网关和白名单机制,防止Agent执行危险操作。整合则关注能力的协同,确保工具、记忆、子Agent和自动化流程能够有序配合。

从模型到Harness:WorkBuddy如何把Agent做成可用产品

WorkBuddy构建了五层Harness架构:

  1. 运行环境层:提供文件系统、Shell、沙箱等基础执行环境。
  2. 引导层:在执行前注入项目上下文、环境信息和规则,提高首次正确率。
  3. 反馈层:通过Lint、测试、构建等确定性信号,以及审查Agent等推断型信号,将错误信息返回给Agent进行自我纠正。
  4. 编排层:管理多Agent协作、并行工具调用和意图路由。
  5. 迭代层:根据模型能力提升和用户反馈,持续调整规则和工具配置。

从模型到Harness:WorkBuddy如何把Agent做成可用产品

这种分层设计确保了Agent不仅在“知道做什么”,更在“安全地做”和“正确地做”。特别是反馈循环的设计,强调将验证结果左移,在编辑后、提交前就发现问题,而非依赖事后的人工审查。

从模型到Harness:WorkBuddy如何把Agent做成可用产品

循环工程:长周期任务的自动化

从模型到Harness:WorkBuddy如何把Agent做成可用产品

对于需要跨时间执行的长期任务,Loop Engineering提供了触发、流转、验收和停止的机制。一个完整的Loop包含触发器、独立执行环境、技能工具、子Agent、持久化记忆、传感器评估和停止条件。

从模型到Harness:WorkBuddy如何把Agent做成可用产品

以每日依赖安全更新为例:定时触发后,创建独立工作树,读取规则,查询漏洞,修改锁文件,运行测试和扫描。若失败则反馈修正,若成功则生成PR草稿供人审批。Loop的关键在于将任务状态持久化,并在每次迭代中记录进度和问题,确保任务在中断后能恢复,或在达到预算上限时优雅停止。

从模型到Harness:WorkBuddy如何把Agent做成可用产品

然而,Loop并不能自动解决目标正确性和业务验证的问题。如果初始目标错误或验收标准缺失,Loop只会加速错误的执行。因此,人类仍需负责设定目标、定义标准和承担最终责任。

从模型到Harness:WorkBuddy如何把Agent做成可用产品

挑战与展望:业务正确性的验证缺口

从模型到Harness:WorkBuddy如何把Agent做成可用产品

尽管Harness工程提升了Agent的稳定性,但在业务正确性验证上仍存在巨大缺口。需求往往难以完整说明,实现与测试可能共享同一误解,且部分业务逻辑缺乏可计算的判定标准。因此,AI的自治度应随风险等级调整:在核心业务逻辑中,必须保留人工审批和严格验证。

从模型到Harness:WorkBuddy如何把Agent做成可用产品

此外,代码库的“Harnessability”决定了建设难度。老旧系统因结构混乱、缺乏测试和可观测性,难以直接应用Agent自动化。建议先从结构清晰、价值高的子模块入手,逐步补齐测试和监控,再扩展Harness覆盖范围。

从模型到Harness:WorkBuddy如何把Agent做成可用产品

未来,随着AI技术的普及,技术方案的选择可能会向“易于AI理解”的方向倾斜。标准化的Harness模板和服务拓扑将成为趋势,帮助团队减少重复造轮子,聚焦于核心业务创新。但无论技术如何演进,工程严谨度从代码编写向环境、反馈和控制系统的转移,要求我们持续投入基础设施的建设。人依然是主线任务的主导者,负责方向选择和价值判断,而Agent则是高效的执行者和加速器。

从模型到Harness:WorkBuddy如何把Agent做成可用产品

photoLink