从模型到智能体:Agent、Harness、Hermes Agent 与 openclaw
沿一条主线拆开 AI Agent 技术栈:Agent 范式、Harness 运行骨架、Hermes Agent 自托管框架、openclaw 个人助手,从技术原理讲到落地应用。
目录
- 执行摘要:一条主线,四个层次
- Agent:从「会说」到「会做」
- Harness:智能体的运行骨架
- Hermes Agent:会自我进化的自托管框架
- openclaw:把骨架装进日常
- 四层如何咬合:一次完整调用
- 落地选型与边界
- 附录:术语表与参考资料
执行摘要:一条主线,四个层次
2025 到 2026 年,大模型最深刻的变化不是「说得更好」,而是「能动手做事」。从 ChatGPT 发布至今,模型在语言能力上的进步令人印象深刻,但真正打开想象空间的,是让模型走出对话框、去操作真实世界的工具与系统。而实现这一步的,往往不是模型本身,是包在模型外面的那一层工程。
这份文档沿一条主线,把这层工程拆成四块:Agent 范式、Harness 运行骨架、Hermes Agent 自托管框架、openclaw 应用形态。由抽象到具体,由原理到落地。
核心结论
- Agent 是范式:把无状态模型放进「感知 → 决策 → 行动 → 观察」的循环,它才从答题者变成执行者。
- Harness 是骨架:负责主循环、上下文管理、工具调度与权限控制。Claude Code、openclaw 本质都是 harness——也就是智能体的运行时。
- Hermes Agent 是自托管框架:Nous Research 于 2026 年 2 月开源,模型无关、数据全留本机,靠「完成任务即自动写 skill」的闭环学习机制越用越强,发布后累计超过 4.6 万 GitHub star。
- openclaw 是应用形态:把智能体从终端搬进聊天软件,2026 年 1 月底发布后一周内拿下 1 万+ GitHub star,是近年增速最快的开源项目之一。
本文档试图回答:一个模型怎么才算成了 Agent?Harness 到底替模型扛了哪些活?Hermes Agent 凭什么能越用越强?openclaw 又把这套骨架做成了什么样的产品?
四个名词常被混在一起讨论,但它们落在不同层。层分清楚了,选型时就不会拿模型的问题去怪框架,也不会指望换一个框架解决模型的短板。
Agent:从「会说」到「会做」
Agent(智能体)不是一个更大的模型,而是一个被放进闭环里、能自己决定下一步动作的模型。差别不在参数量,在于它有没有一条「行动 → 观察 → 再行动」的回路。
对话与智能体的分界
传统对话是单轮补全:给一段输入,模型吐一段文字,结束。它不知道自己说得对不对,也碰不到外部世界。Agent 把这条直线掰成了环:模型每说一句话,都可能是一个动作指令,这个动作会被实际执行,执行结果再喂回模型,让它判断下一步该怎么走。模型因此第一次能「看到」自己行为的后果,并据此修正。
这里也可以对照另一个经典范式——Plan-and-Execute(先规划后执行):模型先一次性地生成完整计划,再逐步执行。相比 ReAct 的边想边做,Plan-and-Execute 适合步骤明确的任务,但对中途出现意外缺乏应变。现实中多数框架以 ReAct 为默认,辅以规划能力作为补充。
最小回路:推理与行动交替
这套回路最经典的表述是 ReAct(Reasoning + Acting),由 Yao 等人在 2022 年提出。它的核心思想很简单:让模型把「推理一步」和「行动一步」交替进行。一轮 Agent 循环通常是这样四步:
- 感知:读入任务目标和当前可见的环境状态(已有对话、文件、上一步工具返回)。
- 规划:模型推理出下一步该调用哪个工具、传什么参数。
- 行动:工具被真正执行——读文件、跑命令、查 API。
- 观察:执行结果写回上下文,进入下一轮,直到任务完成。
关键的一句:模型自己不会执行任何动作。它只会输出「想调用某个工具」这个意图。真正去跑命令、接结果的,是模型外面那层代码。这层就是下一章的主角——harness。
为什么模型本身不够
单独的大模型是一个无状态函数:输入文本,输出文本,调用之间什么都不记得,也没有手脚触碰外部系统。要把它变成能连续干活的 Agent,至少需要外部补上三样东西:
- 跨轮次的记忆:让模型记住在这一轮对话中做过什么、结果如何。
- 可调用的工具:文件系统、命令行、浏览器、API 等。
- 驱动循环的运行时:让上述两者在循环中运转起来。
这三样都不在模型权重中,而在它外面的运行层。理解这一点,整个技术栈的分层就自然浮现出来。
图 1:Agent 技术栈四层。模型负责「想」,协议负责「传」,框架负责「驱动循环」,应用负责「接入生活」。换掉最底层的模型,上面三层基本不动——这正是分层的价值。
Harness:智能体的运行骨架
Harness,直译「挽具」,在智能体语境里指运行骨架——就是把无状态模型变成有状态 Agent 的那层工程。你日常用的 Claude Code 是一个 harness,本章要讲的 openclaw 也是一个 harness。它们形态各异,干的是同一类活。
Harness 替模型扛下的四件事
模型只管「想下一步」,剩下让循环转起来、不转崩的工程,全落在 harness 里。它的职责可以收敛为四类:
| 职责 | 具体做什么 | 不做会怎样 |
|---|---|---|
| 循环控制 | 反复调用模型,直到本轮没有新的工具调用为止 | 模型只能答一次,无法连续完成多步任务 |
| 上下文管理 | 把历史消息、工具结果按窗口大小拼装、压缩、截断 | 对话一长就超出窗口,请求直接报错 |
| 工具调度 | 解析模型给出的调用意图、执行真实操作、回灌结果 | 模型说要调工具,却没人真的去执行 |
| 权限与安全 | 在不可逆动作前拦一道,要么人工审批要么沙箱隔离 | 模型一句话就能删库、发邮件、花钱 |
这四件事中,上下文管理往往是实际工程中最棘手的部分——不仅因为窗口有限,更因为「丢什么、留什么」直接影响 Agent 的决策质量。这个问题在下一节展开。
主循环:整套范式的心脏
把上面四件事压成代码,就是所有 harness 的同一个骨架——一个「调模型 → 执行工具 → 回灌结果」的 while 循环:
# harness 主循环:把无状态模型驱动成有状态 agent
messages = [system_prompt, user_task]
while True:
response = model.generate(messages, tools=TOOLS) # 1. 调模型,附上可用工具列表
if not response.tool_calls: # 2. 没有工具调用 → 任务完成
return response.text
for call in response.tool_calls: # 3. 逐个执行模型要求的动作
result = dispatch(call.name, call.arguments) # 真正执行、碰外部世界的地方
messages.append(tool_result(call.id, result)) # 4. 把结果写回上下文
messages = compact_if_needed(messages) # 5. 超出窗口就压缩,再进入下一轮
这二十行不到的循环,就是「Agent」一词在工程上的全部含义。框架之间的差异——是否并发执行多个工具、怎么压缩上下文、权限在第几步拦截——都是在这个骨架上做加法。
值得一提的是,这层循环并非只有自建一条路。Anthropic 的 MCP(Model Context Protocol) 于 2024 年底提出,试图用标准协议规范 Agent 与工具、数据源之间的连接方式,让不同的 Agent 框架和工具可以互操作——某种程度上是在协议层对 harness 的工作做了标准化切分。
上下文工程:Harness 最难的一环
模型的上下文窗口是有限且按量计费的。任务一长,历史消息和工具返回会迅速把窗口塞满,因此第 5 步的「压缩」往往是 harness 里最见功力的一环:哪些旧消息可以丢弃、哪些需要做成摘要保留、外部检索到的资料该放多少。这件事在业界被称作上下文工程(Context Engineering)——围绕「往窗口里放什么」做的取舍,对 Agent 表现的影响常常不亚于换一个更强的模型。
判断一个产品「是不是真 Agent」,不看它接的模型多大,看它有没有这个主循环、能不能在工具失败后自己重试或换策略。没有循环的,只是给模型答案套了层壳;有循环的,才谈得上自主。
主循环、上下文、工具调度、权限——这套骨架听起来抽象,但真实产品里就是这样搭起来的。接下来两章用两个 2026 年走红的开源框架做实证:先看重度自托管、会自我进化的 Hermes Agent,再看把 Agent 搬进聊天软件的 openclaw。
Hermes Agent:会自我进化的自托管框架
Hermes Agent 是 Nous Research 于 2026 年 2 月开源的自托管智能体框架。它把上一章那套 harness 骨架做成了完整产品,模型无关、数据全留本机,还加上了一件别的框架还没有的东西——让 Agent 越用越强的「闭环学习」。
是框架,不是那个同名模型
先跟「Hermes 大模型」分开说:Hermes Agent 是一套运行框架,不是一组权重。据 Nous Research 的公开声明,他们没有再发一个微调模型,而是构建了一个能驱动任意大模型的 Agent 框架,自带持久记忆、技能学习、多平台通信与安全代码执行。Hermes 系列模型可以作为底座,但框架本身刻意做成模型无关——接 Claude、GPT、Gemini 或任意兼容接口都行。
它采用 MIT 许可,发布后累计超过 4.6 万 GitHub star、346 位贡献者,是开源 Agent 生态里增长最快的项目之一。
三层架构与核心构件
Hermes Agent 采用分层设计,把用户界面 / Agent 核心逻辑 / 执行后端三层解耦。读懂它的构件,差不多就读懂了一个成熟 harness 的解剖图:
| 构件 | 做什么 |
|---|---|
工具注册表 tools/registry.py | 核心枢纽,登记 70+ 工具、约 28 个工具集。每个工具文件在导入时自注册,注册表统一做 schema 收集、分发、可用性检查与错误包装 |
| 执行后端 | 同一个工具可落到多种环境:终端就有 6 种后端(本地 / Docker / SSH / Daytona / Modal / Singularity),另有浏览器、Web、MCP 等后端支持 |
| 会话存储 | 基于 SQLite,配 FTS5 全文检索。会话带血缘追踪(压缩前后的父子关系)、按平台隔离、原子写入 |
| 网关进程 | 一个长驻进程对接 20 个平台适配器,统一会话路由、用户授权、命令分发,以及 hook 与 cron 定时任务 |
这套注册表正是上一章主循环里 dispatch() 那一步的真身——工具如何登记、参数 schema 怎么收集、执行落到哪个后端,都在这里裁定:
# 每个工具文件在导入时自注册到中央注册表
@register_tool
def run_terminal(cmd: str, backend: str = "local") -> str:
"""在 6 种后端之一执行命令:local/docker/ssh/daytona/modal/singularity"""
return BACKENDS[backend].run(cmd)
# 注册表统一收集 schema、按名分发、检查可用性、包装错误——
# 主循环只管调 dispatch(name, args),不关心工具具体在哪台机器上跑
闭环学习:它凭什么「越用越强」
这是 Hermes Agent 最有辨识度的设计。多数 Agent 是无状态的,关掉就忘;它把学习循环做成了架构的一等公民:每完成一个复杂任务,Agent 会自动写下一个可复用的 skill 文件,下次遇到类似任务直接调用学过的技能,收敛更快。再配合跨会话的持久记忆与 FTS5 历史检索,它对上下文的掌握随使用时长累积,而不是每次从零开始。
一个能说明问题的案例:Nous Research 的 CEO Jeffrey Quesnelle 让 Hermes Agent 跨多次迭代会话,自主写完了一部 7.9 万字的小说。这种需要在上百个独立工作会话之间保持连贯的任务,对任何无状态 Agent 来说,在结构上几乎不可能完成。
怎么跑、还能拿来做什么
部署门槛被刻意压得很低:一条 curl 命令自动装好全部依赖,支持 Linux / macOS / WSL2。小到一台 5 美元的 VPS 就能跑,大到 GPU 集群或 serverless 场景也行。数据全部留在本机,无遥测、无云锁定,因此能直接对接本地守护进程或开发环境,不必走 ngrok 之类的隧道转发。
它还有一层开发者身份:兼做训练数据平台——并行生成成千上万条工具调用轨迹、自动 checkpoint,再以 ShareGPT 等格式导出,用于微调模型。自动化只是一面,造数据是另一面。
Hermes Agent 把 harness 推到了「重度自托管 + 自我进化」这一端。与之相对,下一章的 openclaw 代表了同一类骨架的另一种取舍:更轻、更贴近日常聊天体验。
openclaw:把骨架装进日常
openclaw 是 harness 的一种完整产品形态:它把智能体从开发者的终端,搬进你每天都在用的聊天软件,让你像发消息一样把任务交给它。2026 年 1 月底发布后,据社区统计一周内拿下 1 万+ GitHub star,是近年增速最快的开源项目之一。
它是什么
据 openclaw 官方文档,它是一个跑在你自己机器上的开源 AI 助手(前身为 Moltbot / Clawdbot,由 Peter Steinberger 与社区构建)。几个定调它产品气质的选择:MIT 许可、本地优先(记忆和数据以 Markdown 文件存在你的磁盘上)、通过可移植的技能格式让社区扩展能力。它能代你执行 shell 命令、浏览器自动化、收发邮件、读写日历和文件——也正因如此,它的能力边界和风险都比一个普通聊天框大得多。
网关架构:单一真相源
openclaw 的核心是一个自托管的网关(Gateway)。它一头连着各种聊天渠道——Telegram、WhatsApp、Slack、Signal、Discord 等,一头连着一个或多个 AI 编码智能体。网关是会话、路由与渠道连接的单一真相源:谁发来的消息、归属哪个会话、交给哪个 Agent,全在这里裁决。它支持多 Agent 路由,按 Agent、工作区或发送者隔离会话,互不串扰。
图 2:openclaw 网关架构。所有渠道与 Agent 会话都经网关路由,会话隔离、心跳唤醒、权限审批可以集中实现,而不必散落到每个聊天平台各做一遍。
心跳调度:自主性的工程来源
openclaw 内置一个心跳调度器(heartbeat scheduler),按可配置的间隔定时唤醒自己。这一笔设计很关键:它让智能体不必等你开口也能运行——可以定时查邮件、盯任务、跑巡检。「你问一句、它答一句」是助手;「没人催也会按节奏自己动」才是自主智能体,差别就落在这个调度器上。
把编码智能体挂到聊天里
通过 openclaw-code-agent 这类插件,openclaw 能把 Claude Code、Codex 作为后台编码会话来管理:在它们之上加了计划审批、会话生命周期、唤醒路由、worktree 隔离、合并与 PR 跟进。于是你可以从 Telegram 或 Discord 发起一个编码任务,并在第一条消息之后持续观察它的进展。其默认工作流是 Plan → Review → Execute:先出计划、需要审批通过再执行。
# 官方推荐用安装脚本;若已自备 Node 22+,也可手动安装
npm install -g openclaw@latest
openclaw onboard --install-daemon # 引导配置并装成后台守护进程
能力越大,越要先谈安全
openclaw 连着真实的消息平台,应把所有入站消息当作不可信输入看待。官方给出的几条底线值得认真对待:在服务商一侧设硬性消费上限(而非只在 Agent 配置里限数字);任何不可逆动作——支付、删除、发送邮件、对外操作——都必须挂一道人工审批;锁定到近期的安全版本并持续更新;除非你清楚自己在做什么网络配置,否则不要把它暴露到公网。
讲到这里,四层都各自亮过相。但它们真正的价值在于咬合在一起。下一章用一次完整的请求,把四层从头到尾串一遍。
四层如何咬合:一次完整调用
分层讲清楚了各自的职责,但只有把它们串成一次真实请求,才看得出这套设计的好处。设想一个场景:你在手机上发一句「帮我把仓库里失败的测试修好」,看这句话怎么穿过四层、又怎么带着结果回来。
- 应用层 · 接入:你在 Telegram 发出这句话。openclaw 网关收到,按发送者路由到对应会话,选定一个后台的 Claude Code 智能体来接手。
- 框架层 · 组装:Harness 把任务描述、仓库当前状态、可用工具清单组装成上下文,进入主循环,并把每个工具的 schema 一并发给模型。
- 模型层 + 协议层 · 决策:模型推理后,按函数调用格式吐出一个
<tool_call>(比如run_tests)。注意——这一步它只给出「意图」,并没有真的跑测试。 - 框架层 · 执行回灌:Harness 接住这个调用,真正去执行,把测试输出以
<tool_response>写回上下文。 - 循环 · 收敛:模型读到失败堆栈,再吐出下一个调用——修改源文件、重跑测试——Harness 继续执行并回灌。如此往复,直到测试变绿、本轮不再有新的工具调用。
- 应用层 · 回送:网关把最终结果连同 PR 链接发回你的 Telegram。整个过程跑在隔离的 worktree 中(独立工作副本),不会污染主分支。
串起来看,每一层只解决自己那一段:模型负责判断下一步,协议负责把判断说清楚,框架负责真正执行并驱动循环,应用负责接入你的生活并守住权限。任意一层被替换——换个更强的模型、换种协议、换个聊天平台——其余三层几乎不用动。这种解耦,正是「分层」二字在这里值钱的地方。
一句话记住:Agent = 模型(会判断)+ 协议(说得清)+ 框架(跑得动)+ 应用(用得上)。少了任何一层,它要么不会动,要么没法用。
落地选型与边界
理解了分层,选型就从「跟风挑名字」变成「按约束选层」。先看你的硬约束落在哪一层,再决定每层用什么。
按约束选组合
| 你的首要约束 | 建议组合 | 原因 |
|---|---|---|
| 要最强通用能力,可接受闭源 | 闭源模型接口 + 厂商 SDK,或直接用 Claude Code | 省去自建 harness,循环与工具调度已经成熟 |
| 要重度自托管、想让 Agent 越用越强 | Hermes Agent | 数据全留本机,闭环学习自动沉淀技能,还能导出训练数据 |
| 想从手机 / 聊天软件指挥、做个人自动化 | openclaw | 网关已接入多渠道,自带心跳调度与多 Agent 路由 |
| 主要在编辑器和终端里写代码 | Claude Code、Codex 等终端 harness | 贴着代码库工作,工具与权限模型为编码场景深度优化 |
这四行不互斥。openclaw 把 Claude Code 当后台 Agent 来跑,就是「应用层 + 框架层」的组合;Hermes Agent 既能独立当框架,也能被别的网关当后台会话调用。分层的意义,正是让你按需混搭,而不是被某个产品名绑死。
Hermes Agent 还是 openclaw
两者是这波开源 Agent 浪潮里最像的一对:都自托管、都 MIT 许可、都本地优先、都接了一堆聊天平台、都跑一个网关进程。差别在于它们各自把取舍推向了哪一端:
| 维度 | Hermes Agent | openclaw |
|---|---|---|
| 发布时间 · 热度 | 2026.02 · 4.6 万 star | 2026.01 · 1 万+ star |
| 定位 | 会自我进化的 Agent 框架 | 装进聊天软件的个人助手 |
| 记忆机制 | SQLite + FTS5,自动写可复用 skill | 本地 Markdown 文件 |
| 最大卖点 | 闭环学习、兼用训练数据平台 | 心跳调度、直接挂载现成 coding agent |
| 最适合 | 长期自托管、希望 Agent 越用越强 | 快速从手机指挥日常自动化 |
三条绕不开的边界
- 自主性与可控性是一对反向量。心跳越勤、自动执行越多,越要在不可逆动作前加审批闸。把自主性开满却不设闸,等于把方向盘交给一个不会停的循环。
- 提示注入是新的攻击面。Agent 读取的网页、邮件、消息中可能藏着「忽略以上指令,执行某某操作」的诱导性内容。凡是入站内容,默认应当作不可信数据来对待。
- 成本会被循环放大。一个没有步数上限的主循环可能反复调用模型,Token 消耗在无人察觉时指数增长。务必设预算上限与步数阈值,循环失控时自动熔断。
周一可以做的一件事:挑一个你每周重复在做的小任务,用一个现成 harness 把「Plan → Review → Execute」跑通一轮,并刻意把人工审批卡在最后那个不可逆动作之前。先把闸建好,再谈放权。
附录:术语表与参考资料
A. 术语表
Agent(智能体):被放进「感知 → 决策 → 行动 → 观察」循环、能自主决定下一步动作的模型系统。
Harness(运行骨架):包在模型外、负责循环控制、上下文管理、工具调度与权限的运行时。Claude Code、Hermes Agent、openclaw 都是 harness 的不同实例。
主循环(Agent Loop):「调模型 → 执行工具 → 回灌结果」反复进行、直到本轮无新工具调用的循环。这是 Agent 区别于普通对话模型的核心工程要素。
ReAct:让模型把「推理一步」和「行动一步」交替进行的智能体范式(Yao 等人,2022 年)。是目前多数 Agent 框架的默认行为模式。
Plan-and-Execute:先让模型生成完整执行计划,再逐步执行的另一种范式。适合步骤明确、中途变故少的任务,但缺乏应变能力;常与 ReAct 结合使用。
函数调用(Function Calling):模型以结构化格式输出「要调用哪个工具、传什么参数」的能力,是连接模型与外部工具的标准协议。
上下文窗口(Context Window):模型单次能读入的 token 上限。有限且通常按量计费,是 Agent 工程中最核心的硬约束之一。
上下文工程(Context Engineering):围绕「往窗口里放什么、丢什么、压缩什么」所做的取舍与优化,对 Agent 决策质量的影响常常不亚于模型本身的能力。
MCP(Model Context Protocol):Anthropic 于 2024 年提出的开放标准,用统一的协议规范 Agent 与外部工具、数据源的连接方式,类似于「工具调用的 USB 接口」。
Gateway(网关):Hermes Agent 与 openclaw 中负责会话路由、渠道连接与授权管理的长驻进程,是整个系统的单一真相源。
Heartbeat(心跳调度):按固定间隔唤醒智能体的调度器,使其无需用户主动触发也能自主运行定时任务。是 Agent 从「被动响应」走向「主动执行」的关键机制。
Hermes Agent:Nous Research 于 2026 年 2 月开源的自托管 Agent 框架,模型无关,以「完成任务即自动写可复用 skill」的闭环学习为核心辨识特征。
闭环学习(Closed Learning Loop):Agent 完成任务后自动将过程与知识沉淀为可复用技能文件,使得后续相似任务能更快收敛。这是 Hermes Agent 区别于其他框架的最核心设计。
B. 参考资料
- Hermes Agent 官网 — hermes-agent.org
- Hermes Agent 架构文档 — hermes-agent.nousresearch.com/docs/developer-guide/architecture
- Nous Research(含 Hermes 模型家族)— nousresearch.com
- openclaw 仓库 — github.com/openclaw/openclaw
- openclaw 官方文档 — docs.openclaw.ai
- ReAct 论文 — Yao et al., “ReAct: Synergizing Reasoning and Acting in Language Models”, 2022
- Anthropic MCP 规范 — modelcontextprotocol.io
阅读说明:文中产品状态、版本号与社区数据整理自上述公开来源,截至 2026 年 6 月。这类信息变动较快,实际落地前请以官方页面为准。