01 Harness 模型
返回 AI Harness
一句话定义
AI Harness 是模型外部的工程控制面:它把不确定的模型输出约束在一个可执行、可观察、可验证、可回滚的系统里。
换句话说:
Prompt = 这一次对模型说什么
Harness = 模型在什么环境里工作,能看什么、做什么、受什么限制、如何验收最小组成
| 组件 | 最小问题 | 缺失后的典型失败 |
|---|---|---|
| Goal | 这次任务到底算完成什么? | 输出看似合理,但不满足真实目标 |
| Context | 模型能看到哪些事实、历史、文档和约束? | 幻觉、漏读证据、过度泛化 |
| Tools | 模型能调用哪些外部能力? | 只会建议,不能执行;或误用工具 |
| Permissions | 哪些动作必须审批? | 越权写入、删除、发送、生产变更 |
| Guardrails | 哪些输入/输出/工具调用要拦截? | prompt injection、PII 泄露、不安全动作 |
| State / Memory | 跨步骤状态怎么保存和交接? | 长任务失忆、重复劳动、上下文爆炸 |
| Verification | 用什么判断做对? | 靠主观感觉验收,质量不可复现 |
| Observability | 失败时能否重建完整轨迹? | 出错后只能猜,不能定位 |
| Rollout | 怎么灰度、监控、回滚? | demo 能跑,上线不可控 |
五层结构
1. 指令层
包括 system prompt、developer instruction、任务 prompt、输出格式、拒答策略。它定义“应该怎么做”,但不等于完整 harness。
连接: 相关私有笔记、Prompt
2. 上下文层
包括真实文件、PR、issue、日志、检索片段、历史消息、用户偏好、few-shot 示例。上下文要 tight:足够支撑判断,但不把所有东西一次性塞进窗口。
连接: Context building、Evidence-first
3. 工具层
包括工具描述、参数 schema、返回格式、错误语义、幂等性、权限边界、沙箱。工具不是普通函数,而是模型理解世界和行动的接口。
连接: Agent 工程知识地图、相关私有笔记
4. 控制层
包括 guardrails、human approval、max turns、预算、停止条件、risk threshold、tool policy。它决定 agent 什么时候可以继续,什么时候必须停下来。
连接: AI workflow escalation、相关私有笔记
5. 反馈层
包括 trace、dataset、eval、dashboard、失败分类、用户反馈、CI gate、incident review。它让 harness 能持续变好,而不是每次靠人工凭印象修 prompt。
连接: Eval & Observability Playbook、Hypothesis loop
和现有方法论的关系
- AI Harness 101 是概念入口。
- Evidence-first 负责把真实对象接入上下文层。
- Hypothesis loop 负责把不确定结论变成可验证循环。
- Minimum viable change 负责把执行范围压到最小。
- Agentic execution 负责把 agent 从建议推进到闭环执行。
- Knowledge capture 负责把失败样例和偏好沉淀回长期 harness。
最小可用 Harness Checklist
- 任务目标有明确完成条件。
- 输入绑定到真实证据,不是抽象描述。
- 工具清单最小化,每个工具有清晰用途和参数。
- 高风险工具调用有审批或 dry-run。
- 输出有结构化格式或验收标准。
- 至少能记录模型调用、工具调用、错误、latency、token。
- 失败样例能进入 regression dataset。
- 上线前有 sandbox 或 canary 路径。
常见反模式
- 把 harness 简化成“更好的 prompt”。
- 工具越多越好,但工具描述互相重叠。
- eval 只看最终回答,不看中间 trajectory。
- 只在上线前评估,不从生产 trace 回流 dataset。
- 让 agent 自评自己的主观质量,没有独立 grader 或人工复核。
- 没有明确停止条件,长任务越跑越偏。
- 只记录日志,没有结构化 trace 和 failure taxonomy。