跳到文章正文
返回文章列表
ESSAY 10

AGENTS

用了 Hermes 以后,我终于分清了这几个 Agent 术语

很多 Agent 术语没跑过时只是字典条目。真正用过以后,它们会变成你下次 debug 和设计产品时知道该改什么的东西。

HuggingFace 前几天发了篇博客,《Harness, Scaffold, and the AI Agent Terms Worth Getting Right》,专门理 Agent 领域最容易混的那批词。

读完了。一个词都没记住。

我在服务器上跑着一个叫 Hermes 的 Agent 框架。跑了一阵以后发现,这些词随便一个操作都能对上号。没跑过的时候它们只是字典条目,跑过以后,它们变成了你下次 debug 时知道该改什么的东西。


Model 和 Agent

先讲最基础的一组。

我们平时说「我用 Claude」「我用 DeepSeek」,指的是模型。模型就干一件事:

输入一段文本,输出一段文本。

没了。没有记忆,不会自己循环,不会主动打开文件、搜网页、跑命令。它能表达「我想读这个文件」,但真去读文件的不是它。

Agent 是另一回事。

Agent = Model + 让它能观察、决策、行动、循环的一套完整系统。

拿我的 Hermes 来说。我在微信上发「帮我看看服务器磁盘还剩多少」,接下来发生的事情:

  1. 消息进入系统,被组装进上下文
  2. 模型被调用,输出「我建议执行一个查磁盘的命令」
  3. 系统真的去执行了那个命令
  4. 命令结果被放回上下文
  5. 模型再次被调用,把结果翻译成人话——「磁盘用了 67%,还剩 8.2G」
  6. 回复通过微信发回来

模型只做了两件事:判断该用什么命令,把结果翻译成自然语言。中间的「真执行命令」「管理上下文」「判断什么时候停」,跟模型没关系。

模型是脑子。Agent 是脑子加手脚加记事本加规则书。

所以你用 Codex、用 Cursor,看起来底层模型差不多,体验天差地别。差在 Agent 系统怎么设计的。


Scaffolding 和 Harness

这次 HuggingFace 那篇博客最核心的贡献,就是把模型之外的东西拆成了两层。

Scaffolding:模型「依据什么」行动

Scaffolding 不执行任何东西。它就是一套结构,告诉模型你是谁、在什么环境里、能用什么工具、该按什么格式输出、该记住什么忘掉什么。

在 Hermes 里,最直观的就是 System Prompt。我写的那段——「你是一个长期 AI 产品经理协作 Agent」「回答时先给结论再给步骤」「涉及删除文件必须先确认」——这些全部属于 scaffolding。

Scaffolding 不干活。它只负责告诉模型边界在哪。

Harness:系统「怎么」行动

Harness 是让一切跑起来的东西。它负责调用模型、接收工具调用请求、把请求路由到真正的函数、把结果塞回上下文、判断该继续还是停止、处理错误。

回到刚才那个例子。模型说「我建议查磁盘」,是 harness 识别出这是一个工具调用,找到对应的命令,在服务器上跑完,拿结果,放回上下文,再调一次模型。命令执行失败了?也是 harness 决定报错、重试、还是换条路。

为什么要拆开

很多产品把模型之外的所有东西统称 harness。日常沟通这么简化没问题,但当你需要诊断问题的时候,不拆开就很难受。

你的 Agent 跑偏了。怎么判断?

模型输出格式不对、忘了自己的角色、用错了工具——大概率是 scaffolding 的问题,改 prompt。

工具调用成功但结果没传回上下文、循环停不下来、错误没有兜底——大概率是 harness 的问题,改代码。Hermes 里的 config.yaml 也算代码这一侧。

拆开了,你知道该改什么。

拆不开,只能说「这个 Agent 不行」,连问题出在哪都说不出来。


Tool、Skill、Sub-agent

最后一组容易混的。

是什么举例
Tool一个动作读文件、搜内容、跑命令
Skill完成一类任务的能力包按流程排查 bug、按风格改文章
Sub-agent能独立推理的子代理派一个代码审查 agent 审查某个模块

拿 Hermes 说。

Tool 就是那些基础能力——执行命令、读文件、打开网页。每个 tool 干一件事,调一次就结束。

Skill 是打包好的经验。我让 Hermes 写 PRD,它不是只调「写文件」这一个 tool。它会先读背景文档、拆需求、搭框架、写正文、检查一致性。整套流程被封装成一个 skill,下次类似任务直接加载。Skill 里可能包含多个 tool 调用,对外暴露的是一个完整能力。

Sub-agent 更进一步。写代码的时候,主 Agent 负责协调,同时派一个子 Agent 审代码安全,另一个子 Agent 查文档。子 Agent 有自己的模型和 scaffold,能独立推理和决策。

这对产品经理有什么用

设计一个 AI 产品的时候,你要决定的不止是「要不要加 AI」。更具体的:

哪些事适合做成 tool——单一动作,确定性高,不需要推理。

哪些经验该沉淀为 skill——经常重复出现,有套路可循。

哪些任务需要独立的 sub-agent——复杂度高,需要独立推理,主流程不该被打断。

拿 AI 客服系统举例。查订单状态是一个 tool,调一下 API 就回来。处理退换货是一个 skill,包含确认订单、判断退货条件、生成退货单、通知仓库,是个打包的流程。处理需要升级的投诉可以交给 sub-agent——让它独立调查问题、查阅历史沟通记录、形成处理建议,再返回给主流程或人工客服。

这三样东西如果全叫「功能」,产品设计根本没法做。


这些词到底改变了什么

HuggingFace 那篇博客是在给一个快速膨胀的领域做概念整理。

它漏了一件事。这些词不是为了让你看起来更技术,是为了让你能更准确地思考和沟通。

分清 Model 和 Agent,你不会再问「换个更强的模型能不能解决所有问题」。不能,问题可能出在 harness 上。

分清 Scaffolding 和 Harness,你知道什么时候改 prompt,什么时候改系统逻辑。

分清 Tool、Skill 和 Sub-agent,你能在设计产品时做更精细的能力拆解,不用把所有功能揉在一起叫「AI 能力」。

我以前看codex的更新日志,只会说「又加了新功能」。现在我会想,它这次是改了 harness 的停止策略,还是扩展了 tool 的范围,还是把某些 skill 提前加载了。三件事,完全不同的产品方向。

Agent 不是一个更会聊天的模型。它是模型、上下文、工具、执行循环、技能和策略组合起来的工作系统。

理解了这一点,你不是在学怎么用 AI,是在学怎么设计 AI 做事的方式。

继续阅读 / ESSAY 09

三天半做完一个评分系统,我重新理解了产品经理和 AI 协作

打开下一篇

三天半做完一个评分系统以后,我更清楚地感觉到:AI 把速度抬起来,但方向、边界和最后落地,还是人一起守住的。

返回全部文章