← Research

LECTURE · AGENT INFRASTRUCTURE · ~30 MIN

Harness 是类目,Hermes Agent 是这个类目下的一只具体物种 —— 跟小龙虾无关。

什么是 harness,什么又是 hermes agent? 这跟小龙虾有什么区别?什么关系?
日期 2026-05-15

路线图

先把 harness 当作类别讲清楚(它是包住 LLM 让其变成 agent 的运行时基础设施),再澄清 Hermes 这个词在 Nous Research 周边的两个所指(一个模型系列、一个 2026 年发布的具体 agent 产品),然后把 Hermes Agent 放进 harness 的坐标系里跟 Claude Code 做四轴对比,最后给一张图把"类别 / 实例 / 引擎"的关系压平。先类别后实例,顺序不能反 —— 否则你会把 Hermes Agent 跟 harness 当成并列概念,实际上前者后者的一个具体物种。

关于小龙虾

问题里的"小龙虾"跟 harness、Hermes Agent 没有任何已知的技术或语义关联。希腊神 Hermes 是奥林匹斯十二神之一,信使,与甲壳类毫无关系;Nous Research 选这个名字多半是因为它在 Hacker / Hermeticism 传统里指代知识与边界的传递者。下文不再提小龙虾。

Harness 是什么

一句话:harness 是包住 LLM 的运行时框架,负责把"一个文本补全 API"变成"一个能干活的 agent"1。LLM 本身是无状态的 —— 你给它一段 prompt,它给你一段回应,完事。但你不能让用户每问一次都自己手动喂上下文、解析模型输出里的工具调用 JSON、自己去执行那个 bash 命令、再把结果塞回去循环。这一整套"喂、解析、执行、回塞、判断要不要再来一轮"的胶水,就是 harness。

更细一点,一个像样的 harness 至少要管这几件事2:

  • 主循环(agent loop) —— 决定什么时候继续调模型,什么时候停下来等用户,什么时候算"完成了"。
  • 工具调用 —— 从模型输出里识别出"我要调 X 工具",真的去执行,把结果格式化塞回下一次 prompt。
  • 上下文管理 —— 当对话变长,做总结、压缩、滑动窗口、子任务剥离(subagent)。这是 harness 的真正硬功夫。
  • 记忆系统 —— 跨会话的持久化:文件、向量库、procedural memory、用户画像。
  • 权限与守门 —— 哪些工具不需要问、哪些需要用户点同意、哪些直接禁止。
  • Hook / lifecycle —— 在工具调用前后、prompt 提交时、agent 停下时,插入用户自定义脚本。
  • 系统 prompt 与 skill 注入 —— 决定模型每次看到哪些指令、哪些被动加载的能力包。
User Harness loop · context · hooks · perms LLM Tools (bash · read · web …) loop
Fig 1. Harness 处于 User、LLM、Tools 三者中间。LLM 只看到 prompt-in / response-out 两次往返,中间所有调度都是 harness 干的。粗框 = harness 才是真正"agent"的所在。

你正在用的 Claude Code 就是 harness 的一个例子。Cursor、Aider、Cline、Codex、OpenHands 都是3。它们背后的模型可以是同一个(比如都用 Claude Sonnet),但用户体验、agent 行为、能干多大的活,差异主要来自 harness 的工程质量 —— 这就是为什么"harness engineering"在 2025-2026 年成了一个独立讨论的方向。

Worked example

用户说"看一下这个目录有什么文件"。harness 内部干的事:① 把用户消息加进 conversation;② 加上 system prompt 和当前 cwd / 工具清单;③ 调 LLM API;④ LLM 输出 {"tool":"bash","cmd":"ls"};⑤ harness 解析出 tool call,检查权限(读目录免询问),执行,拿到 stdout;⑥ 把 stdout 包成 tool_result,加进 conversation;⑦ 再次调 LLM,模型输出"目录里有 a.py / b.md ...";⑧ harness 检测到模型没再发起 tool call,跳出循环,把答复给用户。LLM 本身只看到 ④、⑦ 两次的视角 —— 中间所有调度、执行、错误处理、上下文拼接都是 harness 在干。

常见错答

"harness 就是 SDK 或者 framework,比如 LangChain。" 不对。SDK / framework 是建 harness 的工具,不是 harness 本身。LangChain 给你 chain 和 agent 抽象,但你拿它做出的某个产品(比如公司内部的 agent 平台)才是 harness。Claude Code 不是用 LangChain 做的,Cursor 也不是,但它们都是 harness。

Hermes 这个词的双重身份

在 Nous Research 的语境里,"Hermes" 指代两个不同的东西,经常被混用。不区分,你就会在网上读到自相矛盾的描述。

2.1 Hermes 模型系列(一组开源 LLM)

Nous Research 是一个偏开源、偏"自由对齐"(less aggressive RLHF refusal)的研究组织。Hermes 是他们旗舰的微调线4:

版本发布基底规模卖点
Hermes 2 / OpenHermes2023Mistral 7B / Llama 27B-13B早期开源指令微调
Hermes 32024-08Llama 3.18B / 70B / 405B稳定 function calling、可控人格
Hermes 4.32025-08ByteDance Seed 36B 🟡36B离开 Llama 谱系

这一支属于引擎层(model layer)。你可以把任何 Hermes 模型挂到任何 harness 里用。"Hermes 模型" 和 "用 Hermes 模型组装的 agent",在 Nous 自己出 Hermes Agent 之前,经常被人简称为 "Hermes agent",这就是混淆的源头。

2.2 Hermes Agent(一个具体的 agent 产品)

2026 年 Nous Research 单独发布了一个产品,就叫 Hermes Agent,仓库 NousResearch/hermes-agent,MIT 协议,Python 主体,当前 v0.13.05。官方广告语是"The Agent That Grows With You"。关键定位:

  • Server-resident —— 部署在你自己的服务器 / VPS / Docker / Modal / Daytona 里长期运行,不是终端临时拉起的 CLI。
  • Model-agnostic 🟢 —— 重点。README 原文:"Use any model you want — Nous Portal, OpenRouter, NovitaAI, NVIDIA NIM, Xiaomi MiMo, z.ai/GLM, Kimi/Moonshot, MiniMax, Hugging Face, OpenAI, or your own endpoint. Switch with hermes model — no code changes, no lock-in." 也就是说 Hermes Agent 不绑 Hermes 模型,理论上你完全可以让它跑在 GPT-5 上、或 Claude 上6
  • 多平台接入 —— Telegram / Discord / Slack / WhatsApp / Signal / Email / CLI,单 gateway 进程多接入。
  • 自学习 —— agent-curated memory + 自动从复杂任务里 distill 出新 skill,旧 skill 在使用中自己改进。基于 Honcho 做用户画像建模,FTS5 + LLM summarization 做跨会话搜索。
  • 子 agent —— spawn 隔离的并行 subagent。
Worked example

你在 Telegram 上让 Hermes Agent 帮你做一个复杂研究流程:搜资料、做对比表、生成报告。完成后它会:① 把这次的成功 trace 抽象成一个 "research-and-compile" skill;② 写进 procedural memory;③ 下次你说"帮我研究 X",它会自动复用这个 skill —— 你不需要再写一遍指令。这就是它跟 Claude Code"每次都要手写 SKILL.md"工作流的差异化抓手。

常见错答

"Hermes Agent 就是用 Hermes 模型做的 agent。" 。Hermes Agent 是 model-agnostic 的 harness 产品,跟 Hermes 模型只是同一个组织出品、共享命名,技术上完全解耦。你甚至可以用 Hermes Agent 跑 OpenAI 的 GPT。

Hermes Agent vs Claude Code:两种 harness 哲学

因为你大概率在 Claude Code 这条线工作,把 Hermes Agent 跟 Claude Code 直接比对,信息量最大。两者都是 harness,但代表的设计哲学几乎站在对立面。

维度Claude CodeHermes Agent
主战场软件工程 / 代码任务通用自治助理
运行位置用户终端(CLI / 桌面 / IDE 插件)常驻 server,后台进程
模型耦合绑 Anthropic 模型(Claude 4.X)Model-agnostic,任意 endpoint
记忆模式手写 CLAUDE.md / memory 文件,用户主导自动学习,Honcho 用户画像,自动 skill 生成
入口CLI / VS Code / JetBrains / WebTelegram / Discord / Slack / WhatsApp / Signal / Email / CLI
许可闭源(产品)MIT(代码开源)
会话模式每个项目一个会话,人在场常驻 + 异步,可调度自动任务

表面看是功能差异,底层是两种 agent 哲学的分歧。

3.1 Claude Code 的哲学:Copilot-style

人是主导者,agent 是放大器7。每次对话有明确开始结束,agent 在你的工作流里出现、帮你干一段、消失。记忆是显式的 —— 你写 CLAUDE.md,你写 skill,你管理 memory 文件。优点是可预测、可审计、不会偷偷长出你不知道的能力;代价是 agent 不会自己变聪明,每个新会话起点差不多。它假设"用户清楚自己要 agent 做什么"

3.2 Hermes Agent 的哲学:Autonomy-first

Agent 是一个独立的、长期存在的实体,会自己在 Telegram / Slack 找你说话,会自己从一次任务里抽出 skill,会自己建你的用户画像。NVIDIA 在它的博客里把 Hermes Agent 形容为"自我改进的 AI agent"8,卖点就是跨会话累积。优点是用得越久越懂你、越省事;代价是不透明 —— 它学了什么、画了你什么像、为什么这次行为变了,普通用户难以审计。它假设"用户希望 agent 自己想办法"

思考一下

这两种哲学不是哪种"更先进"的问题,而是适配什么场景。开发者在 IDE 里写代码 → copilot 哲学更合理(你不想代码里偷偷出现 agent 学会的模式)。一个全家共用的家庭助理 → autonomy-first 哲学更合理(它该记得奶奶喜欢吃辣)。Claude Code 在场景一里赢,Hermes Agent 在场景二里赢。把哪个产品当"通用 AI agent 的下一代",都是误读。

三者关系最简图

把"harness 是类别 / Hermes Agent 是实例 / Hermes 模型是引擎"画成一张图,90% 的混淆就消失:

HARNESS · CATEGORY Claude Code coding · closed locked-engine Hermes Agent autonomy · MIT model-agnostic Cursor · Aider · Cline OpenHands · Codex (其他 harness) ENGINE · LLM Anthropic Claude (锁死) Hermes 3 / 4.3 · GPT-5 · GLM Kimi · Llama · MiMo · ... (任意 endpoint 可替换)
Fig 2. 上层是 harness 类别(实例化为 Claude Code、Hermes Agent 等);下层是可替换的 LLM 引擎。Claude Code 引擎锁死 Anthropic,Hermes Agent 引擎完全开放包括但不限于 Hermes 自家的模型。
  • harness 和 Hermes Agent 不是平行概念。Hermes Agent 一个具体 harness。说"harness vs Hermes Agent"就像说"水果 vs 苹果"。
  • Hermes 模型 vs Hermes Agent 才是真正的平行关系:前者在引擎层,后者在 harness 层。它们都姓 Nous,但住在不同楼层。
  • Hermes Agent 内部不强制用 Hermes 模型。你可以用 Hermes Agent 套 GPT-5,这跟你可以用 Tesla 充非超充桩,是同一种 model-agnostic。
  • Claude Code 内部强制用 Anthropic 模型。这是 Anthropic 的商业选择,不是技术限制。

综合判断

harness 是 2025-2026 年从 agent 工程实践里收敛出来的术语,指包住 LLM 的整套运行时基础设施 —— 主循环、工具调度、上下文管理、记忆、权限、hook、子 agent。被业界普遍认为与"模型本身"同等重要的工程方向。Claude Code、Cursor、Aider、Cline、Hermes Agent 都是 harness 的具体实例。Hermes Agent 是 Nous Research 在 2026 年发布的一个具体 harness 产品,MIT 协议、Python 主体、server-resident、model-agnostic,主打自主学习与跨会话生长(自动生成 skill、Honcho 用户画像、procedural memory)。它跟你正在用的 Claude Code 同属 harness 类别,但代表相反的设计哲学:Claude Code 是 copilot-style(人主导、显式记忆、闭源、绑 Anthropic 模型),Hermes Agent 是 autonomy-first(agent 主导、隐式自学、开源、任意模型)。两者不是替代关系,是不同生态位的产品。"Hermes" 这个词在 Nous 周边出现时务必看上下文 —— Hermes 3 / 4.3 是模型,Hermes Agent 是 harness,前者可以跑在任意 harness 里,后者可以跑任意模型,两者技术上完全解耦,只是同一组织共享品牌。"小龙虾" 跟以上任何一者都没有已知关联,从希腊神话词源到 Nous 命名传统到 agent 工程术语,都查不到对应。

关键不确定性

  • Hermes 4.3 的基底 🟡:报道基于 ByteDance Seed 36B,来自单一搜索结果(Nous release tracker),没在 arXiv / HuggingFace 直接交叉。Hermes 4 与 4.3 是同一代还是 4.3 为后续小版本,也未确证。引用前请查 Nous 官网 / HuggingFace 页面。
  • Hermes Agent 在 OSWorld 上 66.3% 🟡:来自单一搜索结果,未对原始 benchmark 报告做交叉。可能真实也可能营销材料,用作技术决策依据请单独 verify。
  • "Claude Code 是 harness" 的定位 🟢 业界共识但非官方:Anthropic 自己没在公开材料里把 Claude Code 明确定性为 "harness";这个词更多是 LangChain、Martin Fowler、Addy Osmani 等社区在外部观察时给的归类。准确的描述,但不是 Anthropic 的官方自我标签。
  • Hermes Agent 的成熟度:当前 v0.13.0(小于 1.0),官方文档里有"快速迭代中"痕迹。本讲稿基于 2026-05 的快照,过 3 个月接口可能已经变化。
  • 是否还有第三种叫 "Hermes" 的 agent 产品:不排除其他组织也用了 Hermes 命名(希腊神名字使用率高),但 LLM agent 周边,Nous 这两个所指(模型 + Agent 产品)是主流提及。

引用

  1. LangChain — The Anatomy of an Agent Harness — langchain.com/blog/the-anatomy-of-an-agent-harness
  2. Parallel.ai — What is an agent harness in the context of large-language models? — parallel.ai/articles/what-is-an-agent-harness
  3. Martin Fowler — Harness Engineering for Coding Agent Users — martinfowler.com/articles/harness-engineering.html
  4. Nous Research — Hermes 3 — nousresearch.com/hermes3
  5. Teknium et al. — Hermes 3 Technical Report (arXiv 2408.11857) — arxiv.org/pdf/2408.11857
  6. Hermes Agent 2026 Release Tracker(单一来源,采信前请交叉验证)— petronellatech.com/blog/hermes-agent-ai-guide-2026
  7. Hermes Agent 官网 — hermes-agent.nousresearch.com
  8. GitHub — NousResearch/hermes-agent — github.com/nousresearch/hermes-agent
  9. NVIDIA Blog — Hermes Unlocks Self-Improving AI Agents, Powered by NVIDIA RTX PCs and DGX Spark — blogs.nvidia.com/blog/rtx-ai-garage-hermes-agent-dgx-spark