跳到主要内容

第 6 章 · Harness:让 Agent 持续、可控地运行

运行层,而不只是安全带​

Harness 在 Agent 工程中通常指模型周围的运行与编排层。它把模型调用、工具执行、上下文、状态和控制逻辑组织成一个可持续运行的系统。不同团队对边界的划分并不完全一致,它不是单一产品或统一协议。

“工作台和安全带”只覆盖其中一部分。现代 Harness 还要回答:任务运行到哪了?模型下一次需要哪些信息?工具失败怎样恢复?什么时候应该停止?

六类核心职责​

职责具体问题用户能观察到的表现
运行循环何时调用模型、执行行动、检查结束条件持续执行多步任务
上下文组织如何选择指令、文件、检索结果和历史摘要长任务中的摘要、引用与材料加载
工具路由与控制请求交给谁执行,参数和权限是否合法调用记录、批准提示、拒绝原因
状态与恢复怎样保存进度、处理超时和中断恢复任务、异常清单、检查点
预算与调度限制调用次数、耗时和费用到达限额后停止或请求调整
可观察性与评估怎样证明做过什么,发现质量退化日志、轨迹、测试和产物核验

并非每个产品都提供所有功能;多 Agent 协调、长期记忆也不是必需项。通常由模型提出下一步,Harness 根据策略放行、路由或拒绝;固定流程也可以直接指定工具。

Harness、框架、沙箱、界面分别是什么​

  • 框架/SDK:帮助开发者实现循环、工具和状态的库。
  • Harness:实际运行这些机制的系统层,可以自建,也可以托管。
  • 执行环境/沙箱:命令、脚本和文件操作发生的地方,提供相应隔离。
  • 产品界面:用户交代任务、查看结果和管理设置的入口。

一个 IDE 或助手通常包含 Harness,但不能把整个产品简单等同于它。作为具体实现例子,OpenAI 文档把 Harness、执行环境和应用服务器明确区分;这不意味着所有产品都采用同一架构。官方架构说明

为什么“让它自己检查”还不够​

设想 AI 把 9 月销售额写成 10 月,再自己读一遍并说“没有问题”。若检查仍依赖同一份错误摘要,循环再多次也未必纠正。

更可靠的做法是把检查落实到外部证据:

  1. 原始 CSV 与汇总结果逐项比对;
  2. 由程序校验金额和行数;
  3. 重新打开导出文件,检查实际内容;
  4. 给遗漏、错误和未完成事项保留状态,不把它们隐藏在最终回复中。

这也是 Harness engineering 的工作:围绕真实失败样例调整上下文、工具设计、验证和恢复流程,再看任务表现是否改善,而不只是换一个更大的模型。

安全来自实际配置​

“删除前询问”是一种交互策略,不等于底层禁止删除。真正的边界可能由操作系统权限、沙箱、网络策略和业务 API 权限共同落实。自动批准范围不同,风险也不同;选择知名产品不能替代检查设置。

外部网页和文件仍是不可信输入。Skill 中写了“不要泄露”也不能替代凭据隔离。长期运行还应考虑重复执行、失效登录、工具版本变化与费用上限。

普通用户的检查方法​

给它一个可恢复的练习目录,观察是否能说明当前进度、展示操作结果、保留失败信息,以及中断后能否正确续接。只授权任务需要的范围。对一次性普通任务不必搭建复杂平台。

自测: 把“绝不能删除文件”写在提示词里,和只授予读取权限有什么区别?前者是行为指令,后者是系统执行边界。

延伸阅读:Harness 与执行环境。

修订记录 · 补充运行循环、上下文与状态恢复
  1. · 补充运行循环、上下文与状态恢复

    示例为教学设计;术语边界和产品实现可能不同。

查看课程完整修订记录