返回博客列表

Harness 不是新东西。它只是把一件一直存在的事,命名了出来。

2026-03-25
2 min read
agent

Harness:Agent 的问题,从来不在模型 这两天,Agent 圈开始频繁出现一个词:Harness。 很多人第一次看到,会以为这是某种: 新框架 新范式 下一代 Agent 技术 但如果你真正做过 Agent,很容易得出另一个结论: > Harness 不是新东西。它只是把一件一直存在的事,命名了出来。 这件事叫: > 软件工程 -- 一、Agent 很简单,难的是为什么它会崩 Ag...

Harness:Agent 的问题,从来不在模型

这两天,Agent 圈开始频繁出现一个词:Harness。

很多人第一次看到,会以为这是某种:

  • 新框架
  • 新范式
  • 下一代 Agent 技术

但如果你真正做过 Agent,很容易得出另一个结论:

Harness 不是新东西。它只是把一件一直存在的事,命名了出来。

这件事叫:

软件工程


一、Agent 很简单,难的是为什么它会崩

Agent 的核心其实非常朴素:

text
Agent = Loop(LLM + Context + Tools)

这个 loop 本身并不复杂:

  • 给模型上下文
  • 提供工具
  • 让它循环决策

十几分钟,你就能写出一个最小版本。

但问题在于:

为什么这些 Agent,一进真实环境就开始崩?

不是模型变笨了,而是系统开始失控:

  • 上下文变脏
  • 工具失控
  • 状态丢失
  • 错误不可解释
  • 安全边界被突破
  • 长任务无法推进

这些问题有一个共同点:

它们都不是模型问题,而是工程问题


二、Harness 是什么?

我给一个足够工程化的定义:

Harness = Agent 运行时的工程环境总和

它不是:

  • 模型
  • Prompt
  • Tool Call
  • 框架

它是这些东西之上的一层:

让 Agent 能稳定工作的全部系统条件


一个更直观的理解

如果 Agent 是“大脑”,那 Harness 是:

  • 身体
  • 神经系统
  • 工具系统
  • 安全机制
  • 反馈回路
  • 操作规范

一句话:

Harness = 让智能可以被“驾驭”的系统


三、为什么现在才开始讨论 Harness?

因为行业正在发生一个关键转移:

瓶颈从“模型能力”,转向“环境能力”

同一个模型,在不同系统里的表现可以差很多:

差的系统:

  • 会乱用工具
  • 会丢上下文
  • 会越做越偏
  • 会失去控制

好的系统:

  • 能持续推进任务
  • 能利用反馈修正
  • 能保持结构和边界
  • 能把普通模型用出稳定效果

这意味着一件事:

Agent 的上限,越来越取决于环境,而不是模型


四、不要把 Harness 和 Context 混为一谈

可以用一个简单的分层理解:


Prompt Engineering:怎么说

优化表达,让模型更容易理解。


Context Engineering:喂什么

控制信息输入:

  • 文档
  • 历史
  • 记忆

Harness Engineering:怎么运行

控制整个运行环境:

  • 能不能执行
  • 怎么执行
  • 失败怎么办
  • 状态怎么管理
  • 安全如何保证

一句话区分:

Context 决定输入,Harness 决定行为


五、Harness 的五个核心层

如果从工程角度拆,Harness 至少包含五层:


1. 上下文装配层

核心认知:

Prompt 不是文件,而是系统

你需要解决的是:

  • 信息分层
  • 动态拼装
  • 优先级控制

否则模型只能在“信息噪声”里工作。


2. 工具治理层

关键问题不是“有没有工具”,而是:

工具是否可控

包括:

  • 发现机制
  • 参数校验
  • 风险分级
  • 调用拦截

否则工具只会从“能力”变成“混乱源”。


3. 安全与边界层

核心原则:

安全必须在运行时,而不是 prompt 里

你不能指望模型“自觉”。

必须有:

  • 执行隔离
  • 命令控制
  • 审批机制

4. 反馈与状态层

这是 Agent 能持续工作的关键:

系统必须把内部状态,翻译成模型能理解的反馈

否则模型只知道“失败”,不知道为什么失败。


5. 熵管理层(最容易被忽视)

所有 Agent 系统都会逐渐失控:

  • prompt 膨胀
  • 规则过期
  • memory 污染

所以你必须做一件长期工作:

持续让系统“变干净”


六、一个更准确的公式

传统说法是:

text
Agent = Loop(LLM + Context + Tools)

但更准确的表达应该是:

text
Agent = Loop(Model + Harness)

因为:

  • Context 属于 Harness
  • Tools 属于 Harness
  • Runtime 属于 Harness

所以真正的变量变成:

模型 × 环境


七、为什么有的人做出的是玩具,有的人做出的是系统?

因为差别不在模型,而在 Harness。

同样是:

  • 一个模型
  • 一组工具
  • 一个上下文

结果却完全不同:

  • 有人做出 Demo
  • 有人做出生产系统

原因只有一个:

有没有把这些东西工程化成“可运行环境”


八、如果你要开始做 Harness,先做什么?

给一个最实用的顺序:

  1. 不要先卷模型,先搭环境
  2. 工具必须可治理(不是函数列表)
  3. Prompt 必须拆分为装配系统
  4. 安全必须在运行时实现
  5. 所有错误必须可解释
  6. 长任务必须有状态机制
  7. 系统必须有熵管理

九、结论

Harness 不是新技术。

它只是让我们开始正视一件事:

Agent 的核心从来不难,难的是让它在现实中稳定工作。

模型是发动机。

Harness 才是整辆车。

决定你能不能跑长途的,从来不是模型有多聪明,而是你的工程环境有多可靠。

返回博客列表
最后更新于 2026-03-25
想法或问题?在 GitHub Issue 下方参与讨论
去评论