Harness:模型周围的执行与治理系统
建议用时:25 分钟(含练习)
学习目标
能够说明 Harness 如何组合提示、工具、权限、状态、验证、日志和恢复机制。
本节产出
一张最小 Harness 组件图
核心知识:模型周围也有一套系统
Harness
在 Agent 工程讨论中,Harness 通常指围绕模型组织任务执行的工程系统。不同文章的边界划分可能不同,它并不是所有产品都遵循的统一组件标准。学习这个词的价值,是把“模型会回答什么”与“整个应用实际上能做什么”分开分析。
模型收到上下文并产生输出;周围的系统负责选择上下文、提供工具说明、验证调用参数、执行权限策略、保存状态、收集结果以及决定是否继续。这些责任可能分散在应用、工具服务和基础设施中。模型能力再强,也不能替代真实的访问控制、事务处理或日志存储。
图中各模块是本课程用于分析的最小设计,不要求你照搬某个框架。我们关注每项责任由谁实现、如何验证,以及缺失时会产生什么后果。例如在提示里写“只读”,与使用只读账号访问数据库,是不同层面的限制;前者指导行为,后者由系统拒绝写入。
六类责任如何配合
Harness 的六类责任
| 责任 | 要回答的问题 | 可检查的证据 |
|---|---|---|
| 上下文管理 | 模型看到了哪些材料 | 输入来源、版本与筛选规则 |
| 工具执行 | 参数是否合法、动作能否执行 | 契约校验和工具结果 |
| 权限控制 | 谁授权了哪类访问 | 账号范围、策略与拒绝记录 |
| 状态管理 | 中断后从哪里继续 | 已完成步骤和未知结果 |
| 结果验证 | 产物是否满足合同 | 测试、校验器或人工审阅 |
| 可观测与恢复 | 出错后能否定位和接手 | 脱敏日志、恢复点与交接说明 |
这些功能不必全部做成复杂平台。一个受约束的小脚本、清晰的任务状态和几项检查,可能已经足以支持简单任务。系统复杂度应由风险和规模决定,不能因为学会了新词就增加无必要的组件。
案例:公开资料的摘要助手
假设助手只能读取一组已审核的公开网页,输出带链接的摘要草稿。模型擅长概括,但整个系统仍需处理网页超时、来源更新、正文提取失败和引用不匹配。若把抓取结果直接拼成提示,页面中夹带的“忽略前面的规则”也可能进入上下文。
一个合理设计是先限定来源范围,记录获取时间,把抓取正文明确标为资料,再让模型形成主张与证据映射。输出经过链接格式检查和人工抽查后成为草稿。页面中的命令式文字只是被研究的材料,不能获得修改工具权限的资格。
如果抓取失败,状态中保留失败地址与原因,不让模型补写缺失事实。如果发现内容已经改版,则重新核对适用日期。发布权限与生成草稿权限分开配置,防止一次摘要错误直接变成公开信息。
日志记录什么才有用
应记录任务编号、使用的公开来源、工具动作、状态变化、验证结果和必要错误信息。凭证、完整私人文档或不必要的个人数据不应进入普通日志。日志的目的,是让工程人员重建可观察的执行过程,不是要求模型提供隐藏思维链。
恢复时也要核对外部状态。假设输出文件已经写入,但进程在保存“完成”标记前中断,直接重跑可能生成重复文件。恢复流程可以先检查目标文件和版本,再决定继续或结束。可靠性来自这种具体边界处理,而不是增加一句“请认真”。
动手练习
- 为摘要助手填写六类责任表,每项指定一个实现位置。
- 演练网页超时、资料夹带指令、引用不支持结论三种失败。
- 设计一个最小恢复记录,使另一人能够判断哪些动作已经发生。
参考答案与推演
上下文筛选可放在抓取与整理层;参数和权限校验放在执行器;状态放在持久记录;结果检查由程序规则与人工审阅共同承担。网页超时应留下缺口,夹带指令应保持资料身份,引用失配应修正或删除对应主张。
恢复记录至少包含任务目标、来源版本、已完成动作、输出位置、未知结果和下一步条件。若只保存聊天摘要,却不知道输出文件是否已写入,就还不足以安全恢复。你也应说明哪些能力尚未实现,避免把设计图当成实际保证。
完成检查
- 能指出至少六类系统责任及其执行位置。
- 权限和验证有真实机制,不只依靠提示约束。
- 日志能帮助定位问题,同时避免无关敏感数据。
- 恢复流程会核对外部状态,并保留未知事项。
参考与来源
- Anthropic:Effective context engineering for AI agents:理解上下文组织与长期任务状态。
- OpenAI:Running Codex safely:观察执行隔离与权限策略的工程实践。
Harness:模型周围的执行与治理系统
3 道题 · 及格分 60 分