Agent Harness

agent_harness2026-09-09 14:38:22

Agent Harness 是包围模型、使模型能够作为 Agent 运行的一整套支撑系统。它接收任务和环境信息,组织模型上下文,执行工具调用,把观察结果返回模型,并负责权限、验证、状态和错误恢复。

Harness 原意是挽具或安全带。在 Agent 语境中,这个比喻强调:模型提供推理与生成能力,Harness 则把这种能力连接到真实环境,同时限制它能够采取的动作及其影响范围。

可以用一个便于理解的公式表示:

Agent = Model + Harness

这不是严格的行业标准定义,而是一种工程视角。不同资料也会使用 Agent Runtime、Scaffold 或 Orchestrator 等相近名称,但它们关注的范围可能不同。

子词条概述

当前子词条包括 DeepSeek Harness,用于说明一种插件化通用 Agent Harness 的具体实现及其适用边界。主词条保留 Harness 的通用职责、组成、风险和设计原则。

Harness 负责什么

一个完整的 Agent Harness 通常包含以下部分:

上下文组装

把系统指令、用户任务、对话历史、工具定义、外部知识、当前状态和中间结果组织成模型当前需要的上下文。Harness 还需要在信息过多时进行筛选、压缩或持久化。

工具与环境接口

向模型提供结构化工具,并把工具调用连接到文件系统、数据库、浏览器、业务服务或其他环境。工具接口需要有清晰的名称、参数、结果和错误信息。

Agent 循环

Harness 驱动模型与环境反复交互:

  1. 组装当前上下文;
  2. 调用模型;
  3. 解析模型给出的回答或工具调用;
  4. 检查工具调用是否允许执行;
  5. 执行工具并获取观察结果;
  6. 把结果加入状态,再次调用模型;
  7. 在满足完成条件、达到限制或需要人工处理时结束。

权限与约束

决定 Agent 能读取、修改或调用哪些资源,并对高风险操作进行拒绝、隔离或人工审批。约束既可以作用于工具参数和执行环境,也可以作用于完整的任务流程。

结果验证

检查工具是否真正执行成功,以及最终结果是否满足任务目标。验证信号可以来自测试、Schema、业务状态、规则检查器或人工审核,而不能只依赖模型声称“已经完成”。

错误恢复

识别超时、无效参数、工具故障、重复循环和上下文丢失等问题,并决定重试、改变策略、回退到检查点、降级处理或移交给人。

状态、日志与可观测性

记录当前进度、工具调用、环境变化、审批和验证结果,使长任务能够恢复,也使开发者能够调试、评测和审计 Agent 的行为。

Model、Framework、Harness 与 Sandbox

概念 主要职责
Model 根据上下文生成文本、推理过程或工具调用
Agent Framework 帮助开发者构建 Agent 的代码库、SDK 或开发框架
Agent Harness 某个 Agent 实际运行时使用的上下文、工具、循环、约束和恢复机制
Sandbox 隔离文件、进程、网络和资源的受限执行环境

框架可以用来实现 Harness,但框架本身不等于一个已经配置好的 Harness。Sandbox 通常只是 Harness 的一个安全组件,不能替代权限判断、验证和任务状态管理。

不是只有 Coding Agent 才有 Harness

所有能够读取环境、采取行动并持续推进任务的 Agent 都需要某种 Harness,只是不同领域提供的工具和验证方式不同。

Agent 类型 Harness 中的典型能力
Coding Agent 搜索与编辑代码、执行命令、运行测试、Git、沙盒和变更审查
研究 Agent 网络搜索、资料读取、引用管理、研究计划和事实核查
客服 Agent 查询订单、调用业务接口、身份验证、退款审批和操作审计
Wiki 整理 Agent 搜索词条、读取来源、编辑草稿、目录检查和人工审核
Computer Use Agent 截图、点击、键盘输入、界面状态识别和敏感操作确认

Coding Agent 的 Harness 特别容易观察,因为软件工程已经拥有测试、类型检查、Linter、构建系统和版本控制等自动反馈机制。其他领域同样需要 Harness,但往往需要额外设计业务验证器或人工确认环节。

Harness 工程

Harness 工程是设计、实现、评测和持续改进 Agent Harness 的工程实践。它关注的不只是“模型能否调用工具”,还包括整个系统能否安全、稳定并可证明地完成任务。

典型问题包括:

  • 模型当前应该看到哪些信息;
  • 工具怎样设计才不容易误用;
  • 哪些动作需要审批或必须禁止;
  • 什么证据可以证明任务完成;
  • Agent 陷入重复、超时或失败时如何恢复;
  • 长任务怎样跨会话保存和交接状态;
  • 如何从失败轨迹和评测结果中改进系统。

提示工程主要优化模型收到的指令,上下文工程管理模型当前能够看到的信息;Harness 工程进一步覆盖工具接口、运行循环、约束、验证、状态和恢复机制。

代表性 Harness 实现

DeepSeek Harness

DeepSeek Harness 是 DeepSeek AI 开源的通用 Agent Harness。它采用“所有能力均为插件”的组合式架构,把 Session、系统提示、工具、Agent 循环、模型适配、状态持久化、权限、SDK 和用户界面等职责拆分为可组合组件。

它不是 DeepSeek 模型本身,也不只是一款固定的 Coding Agent 产品。开发者可以选择模型和插件,把它组成编码、研究或其他领域的 Agent 运行时。创建本词条时,官方仍将项目标记为 Developer Preview,并明确提示可能出现不兼容变化。

Coding Agent 领域的另一种代表性设计是 Pi。Pi 强调轻量核心和高度可扩展,其编码场景的具体机制参见 Coding Agent Harness。

常见失败

  • 工具很多,但缺少明确的完成条件;
  • 只检查工具是否返回成功,没有检查外部状态是否真正改变;
  • 把不可信网页、文件或工具输出当作高优先级指令;
  • 无限制重试相同动作,导致成本增加或陷入循环;
  • 上下文压缩后丢失任务要求或已经完成的工作;
  • 权限过宽,使一次误判能够造成不可逆影响;
  • 日志只记录最终答案,无法还原执行和审批过程。

设计原则

  1. 从完成任务所需的最小工具和权限开始;
  2. 优先使用结构化、及时且接近真实环境的反馈;
  3. 将危险动作限制在可隔离、可审批和可回退的边界内;
  4. 把“完成”定义为经过验证的环境状态,而不是模型的一句话;
  5. 保存足够的状态和轨迹,使失败可以分析、任务可以恢复;
  6. 根据真实失败案例改进 Harness,而不只继续增加提示词。

参考资料

本页目录