看到那篇「8B 模型从 53% 到 99%」的文章后,很多人把 Forge 和 Harness 混着用,以为是同一个东西的两个名字。
不是的。它们的关系是:
Harness 是概念,Forge 是实现。
就像「网页框架」是个概念,Vue 是它的一个具体实现。
Harness(护栏/流程控制层)
Harness 是一个思路。指在 AI 模型外面包一层流程控制,用来规范模型的行为。
你可以把它想象成一个交管系统:
┌─────────────────────────────┐
│ Harness │
│ ┌───────────────────────┐ │
│ │ 规则校验层 │ │ ← 检查模型输出格式对不对
│ │ 重试兜底层 │ │ ← 错了自动重试
│ │ 流程控制层 │ │ ← 强制走正确流程
│ │ 异常处理层 │ │ ← 出错了也不崩
│ └───────────────────────┘ │
│ ↕ │
│ ┌───────────────────────┐ │
│ │ AI 模型 │ │ ← 里面的模型只管推理
│ └───────────────────────┘ │
└─────────────────────────────┘
核心思想:不改变模型的能力,改变模型的行为方式。
Forge(一个具体的 Harness 实现)
Forge 是 Antoine Zambelli 写的一个 Python 库,按照 Harness 的思路实现了一套工具。
# 这是 Forge——一个具体的库
pip install forge-guardrails
python -m forge.proxy \
--backend-url http://localhost:8080 \
--port 8081
它实现了 4 层具体功能:
| 层 | 做什么 | 对应 Harness 概念 |
|---|---|---|
| Response Validation | 检查工具名和参数是否合法 | 规则校验 |
| Rescue Parsing | 从乱格式中提取有效调用 | 格式兜底 |
| Retry + Error Track | 失败后重试 3 次 | 重试机制 |
| Synthetic Tool | 强制走工具调用 | 流程控制 |
类比理解
| 概念层 | 类比 | 例子 |
|---|---|---|
| Harness(概念) | 交管系统 | 红灯停、绿灯行、限速标志、摄像头 |
| Forge(实现) | 某个城市的交管系统 | 北京的交管系统(有具体的摄像头、信号灯、罚款规则) |
另一个类比:
| 概念层 | 例子 |
|---|---|
| 软件设计模式 | 单例模式、工厂模式(概念) |
| 具体代码 | 你在项目里写的那个单例类(实现) |
所以:
- Harness = 一种 AI 工程方法论 → 不需要安装,是一种思路
- Forge = 一个开源的 Python 库 → 需要
pip install,是具体代码
你正在做的事也是 Harness
我们之前聊的「给 Qwen3.5-9B 写问道刷道流程 prompt」,本质上也是在做一个 Harness:
你的 Harness(游戏自动化流程控制)
├── 截图分析层 → 模型看画面判断状态
├── 决策执行层 → 决定点哪个按钮
├── 失败重试层 → 点错了重新来
└── 异常处理层 → 弹窗、掉线等异常处理
你没有安装 Forge,但你已经在实践 Harness 的思路。
一句话总结
| 问题 | 答案 |
|---|---|
| Harness 需要安装吗? | ❌ 不需要,它是一种设计思路 |
| Forge 需要安装吗? | ✅ 需要,pip install forge-guardrails |
| 用了 Forge 就算用了 Harness 吗? | ✅ 对,Forge 是 Harness 的一种实现 |
| 不装 Forge 能做 Harness 吗? | ✅ 完全可以,自己写流程控制也是在实践 Harness |