进阶 12 分钟智能体

Hermes Agent 配合 Ollama:记忆、工具和 limites

直接回答

是的:Nous Research 的 Hermes Agent 可以通过声明一个带有 http://127.0.0.1:11434 地址和空 API 密钥的自定义提供商来连接到本地 Ollama。但本地推理默认不会使代理离线:只要不禁用它们,网络搜索、语音合成和云浏览器仍然是第三方服务。请选择一个宣布支持工具调用的模型,否则它会描述一个动作而不是执行它。

Hermes Agent 是 Nous Research 发布的自主智能体框架,配备终端、持久化记忆和即时通信连接器。本指南介绍如何将其连接到本地 Ollama、如何选择能够调用工具的模型、它的记忆实际会保留哪些内容,以及日常使用前需要了解的安全性和可靠性限制。

作者: Mohamed Meguedmi·更新于 2026-09-28·已在 Windows、macOS 和 Linux 上测试

#Hermes Agent 是什么

Hermes Agent(仓库:NousResearch/hermes-agent)是一款在命令行中运行的自主智能体,配有 TUI 界面、消息网关(Telegram、Discord、Slack、WhatsApp、Signal),以及可在使用过程中自行创建和改进技能的系统。它并不替代 Hermes 4,后者是一个语言模型:Hermes Agent 是负责协调工具调用、记忆和终端操作的软件,无论其后端接入的是哪种模型。

代码仓库更新节奏很快:带有 v2026.9.24 标签的版本(Hermes Agent v0.21.5)于 2026 年 9 月 24 日发布,汇集了自上一版本以来的数百项修复。Nous Research 以 MIT 许可证发布该项目,允许将其用于专业用途而无需支付许可使用费,包括部署修改后的版本。

智能体在单个网关进程中运行,可同时服务多个渠道:本地终端、Telegram、Discord、Slack、WhatsApp 和 Signal 共享同一份记忆和对话历史。因此,您可以在工作电脑上启动任务,再通过手机跟进,而无需在各个渠道之间重复配置模型和记忆。

i
与Hermes 4的区别
Hermes Agent 是一个智能体框架,可使用任意模型作为后端。Hermes 4 则是一个模型系列,正好可以通过 Ollama 运行,作为 Hermes Agent 的后端。两者都叫 Hermes,但不能相互替代。

#连接本地 Ollama

本地智能体套件

在你的机器上执行操作的智能体:具备智能体能力的 Cline、MCP、n8n + Ollama、本地自动化。

  • 在线空间,终身可用
  • PDF + 文件
  • 30 天内退款

Hermes Agent 使用各提供方自己的 provider 名称,为自托管的 OpenAI 兼容服务(Ollama、vLLM、llama.cpp)进行路由。官方文档明确说明了所需格式:一个指向服务器的 base_url,以及一个仅用作占位符的空 API 密钥。

~/.hermes/config.yaml
auxiliary:
  compression:
    provider: ollama
    model: qwen3.6:27b-q4_k_m
    base_url: http://127.0.0.1:11434

一个仅包含主机和端口的 base_url(无需 /v1)会自动接收到兼容 OpenAI 的 API 所需的后缀,因此无需手动添加。此机制在 vLLM 和 llama.cpp 中同样适用,只需更改提供者名称和端口即可。

同一个配置块可以用于不同角色:主对话模型、上下文压缩模型,或生成会话标题的模型。每个角色都可以指向不同的服务提供商——例如,对话使用本地 Ollama 模型,而辅助任务专用一个更快的云端模型——这样既能让大部分交流内容保持私密,又能避免本地小模型拖慢次要任务。

!
本地不等于离线
将主模型路由至 Ollama 不会中断附加服务。网络搜索、图像生成、语音合成和云浏览器功能均通过外部API(如Nous Portal或您自己的密钥)实现,除非您在配置中逐项关闭这些工具。

#调用工具应使用哪个模型

Hermes Agent 提供超过 40 个工具(终端、文件、浏览器、记忆、cron 定时任务),模型必须通过结构化调用来使用它们,而不能只用文字描述。通过 Ollama 运行的模型如果没有接受过工具调用训练,或者同一模型被过度量化,往往会给出解释,而不是触发调用。

主对话模型
优先选择明确列为兼容工具(ollama.com/library 上的 tools 标签)的 Ollama 变体,而非通用的聊天模型。
辅助模型(标题、压缩)
可以保持轻量:使用只有一个请求处理槽位的本地服务提供方时,Hermes Agent 会在主轮次的回复完成后再调用它,而不会并行调用,以免单槽位服务器混合处理这两个请求。
标识格式
已命名的服务提供方可以在模型标识前添加前缀,例如 ollama-local/qwen3.6:27b-q4_k_m;即使到达服务器的只有原始请求(不带前缀),这个前缀仍然适用。

有一个细节值得密切关注:使用自定义本地提供商时,对标题模型的调用请求是在本轮回答到达之后才发出的,而不是与回答同时进行。在一次只能处理一个请求的本地服务器上,这可以避免采用结构化 JSON 的标题请求打断回答本身的生成——这是一个在其他地方很少有文档说明的调度细节。

#记忆:哪些内容真正会保留下来

Hermes Agent 的记忆基于简单的文本文件,可直接阅读和修改:这些文件是配置档案目录中的 MEMORY.md 和 USER.md。模型通过专用工具决定哪些内容值得写入其中——偏好、长期有效的事实以及学到的操作流程。

终端
cat ~/.hermes/memories/MEMORY.md
cat ~/.hermes/memories/USER.md

该项目自身文档中指出的一个弱点是:小型本地模型可能声称“已保存”,却并未真正调用写入工具。官方文档建议,对于参数少于约 300 亿或工具调用不可靠的本地模型,应明确要求使用记忆工具,然后检查文件,而不是在提示词中不断增加指令。

→
先核实,不要轻信
在请求记忆后,请打开 MEMORY.md 或 USER.md 文件以确认该条目确实已存在。如果启用了人工审核写入(write_approval),则内容将保持待审核状态,直到明确批准为止。

#安全:八层防护,而非一道墙

Nous Research 在文档中介绍了一个八层安全模型:用户授权、危险命令的人工批准、文件写入防护、容器隔离(Docker、Singularity、Modal)、对传递给 MCP 服务器的身份凭据进行过滤、检测上下文文件中的提示词注入、会话间隔离,以及验证终端工具的工作路径。

危险命令的审批通过配置文件中的approvals.mode设置,有三种模式可供选择:自动、手动或智能(推荐的默认模式,自动通过低风险操作,其他操作需人工审核)。

!
容器隔离不是自动启用的
软件中确实存在这八层,但 Docker/Singularity/Modal 提供的隔离需要在配置时通过选择相应的终端后端来启用。使用本地后端启动的智能体会直接在您的设备上执行命令,没有容器沙箱隔离。

#小型本地模型用于此智能体时的局限性

像 Hermes Agent 这样拥有丰富工具的智能体,对模型的指令遵循能力提出了很高的要求:记忆、规划、连续工具调用,有时还包括并行子智能体。使用采用 Q4_K_M 量化、参数量为 70 亿至 140 亿的模型时,应预期会出现工具调用失败、确认但未实际执行,以及长会话中更频繁的上下文压缩。

使用小型本地模型时,哪些功能会最先出现性能下降
功能典型症状
记忆(专用工具)口头确认,无实际文件写入
连续调用工具模型描述下一步操作,而非实际执行
并行子代理指令传输错误,结果需手动核对
长会话上下文压缩更频繁,导致旧信息细节丢失

这些问题都不是 Hermes Agent 所特有的:这是小型量化模型处理结构化输出格式时的已知局限。项目文档给出的解决办法不是增加指令,而是至少在初始配置阶段使用更可靠的模型。记忆条目建立后,就可以让更轻量的模型重新读取,且不会有问题,因为这些条目会直接放入系统提示。

子智能体和通过 RPC 调用工具的 Python 脚本——项目重点介绍的两项用于并行执行任务的功能——依赖于与简单工具调用相同的指令遵循能力。如果一个模型连单次工具调用都难以处理,那么要协调多个子智能体,同时避免混淆它们各自的上下文,就会更加困难:最好先验证基础行为,再启用这些高级功能。

#MCP 服务器:目录和权限

Hermes Agent 集成了 Nous Research 团队审核并合并的 MCP 服务器目录(包括 Linear、GitHub、Figma、Asana 等),但每个服务器默认均处于关闭状态:需手动安装后才能被代理访问。配置好凭证后,Hermes Agent 会向服务器发起查询,列出其提供的工具,并显示可勾选的工具列表,从而避免一次性激活尚不熟悉的第三方服务器的所有功能。

少数教程会提及的细节:对于以stdio模式运行的MCP服务器,Hermes Agent不会将主机的完整shell环境传递给子进程。仅传递服务器配置中显式声明的变量,以及一组基础环境变量(如PATH、HOME、USER、LANG、TERM、SHELL等);其他环境变量,包括API密钥和令牌,均被过滤。正是这一机制降低了第三方MCP服务器因审计不严而窃取shell中敏感信息的风险。

#子智能体:任务委派能实现什么

delegate_task 工具让 Hermes Agent 可以将任务交给子智能体:每个子智能体都会开启自己的对话,并拥有独立的终端会话,而且只继承父智能体已经启用的工具——它不能自行获得父智能体本身不具备的额外能力。只有子智能体的最终摘要会进入主智能体的上下文;中间的工具调用始终不会进入其中。这样既能限制长任务的上下文消耗,也能避免执行细节充斥主对话。

默认情况下,最多可并行运行十个子智能体——这一限制可以配置,软件本身不设硬件上限——但默认的委派深度仍设为 1:除非在配置中明确启用相应功能,否则子智能体不能再创建其他子智能体。使用 7–14B 的本地模型时,最好将这一深度保持为 1:每增加一层委派,需要正确串联的工具调用数量就会成倍增加,而这恰恰是前文指出的小型量化模型的薄弱环节。

#故障排除:症状、原因、修复方法

使用本地 Ollama 端点时遇到的大多数阻碍可归结为四类症状,每类症状的原因都能从官方文档中查明,无需靠猜测摸索。

使用本地 Ollama 端点时的常见症状
问题表现可能原因修正
长上下文场景下的流中断或超时默认的读取超时时间不足以应对大型本地模型的响应延迟在配置中增加 HERMES_STREAM_READ_TIMEOUT(例如 1800 秒)
模型只是描述操作,而没有执行模型未声明支持工具调用,或对同一模型采用了过于激进的量化在模型的ollama.com/library页面上,选择标注为“tools”的变体
声称已记住信息,却未写入文件参数规模低于约 30B、工具调用不可靠的本地模型每次请求后请检查 MEMORY.md/USER.md;必要时可暂时切换至更强大的模型
第三方MCP服务器未检测到预期变量环境变量过滤:仅将已声明的环境变量和最基本的一组环境变量传递给子进程在该MCP服务器的配置中显式声明变量

Hermes Agent 会自动检测本地端点,并相应地放宽读取超时时限,但在较慢的 Ollama 模型上处理较大的上下文时,仍可能超过默认超时时限;官方文档建议调整 HERMES_STREAM_READ_TIMEOUT 变量,而不是随意缩减发送给模型的上下文。

#实际安装步骤

  1. 01
    安装 Hermes Agent
    在 Linux、macOS 或 WSL2 上:执行 curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash,然后重新加载 shell 并启动 hermes。
  2. 02
    准备Ollama模型
    在将其配置为 provider 之前,确认 Ollama 在 11434 端口运行,且所选模型已被标明兼容工具调用。
  3. 03
    配置本地服务提供方
    使用 hermes config set 将 provider 设为 ollama,填写模型名称,并将 base_url 设为 http://127.0.0.1:11434,API 密钥留空。
  4. 04
    测试一个简单的工具调用
    请求执行可验证的操作(列出目录、读取文件),并在终端中确认工具确实已执行,而不只是用文字描述了该操作。
  5. 05
    检查记忆
    明确要求智能体记住某项内容,然后打开MEMORY.md,确认其中已有对应条目,再相信它在这件事上确实完成了记忆。
常见问题
Hermes Agent 在连接到 Ollama 后,是否可以离线运行?+
默认情况下不能。配置 Ollama 作为模型提供方后,主对话模型确实在本地运行,但只要您没有在工具配置中明确禁用网络搜索、语音合成、图像生成和云端浏览器,它们就仍然是外部服务。要实现真正的离线使用,必须逐一关闭这些工具,而不能只依赖主模型的路由设置。
在 Ollama 中选择哪个模型用于 Hermes Agent?+
选择在ollama.com/library模型页面上明确标注支持工具调用的模型,例如官方文档中提到的qwen3.6:27b-q4_k_m。通用聊天模型即使规模很大,也常常以自然语言作答,而不触发框架所期待的结构化工具调用,从而使记忆、终端或已安装的MCP服务器等整项功能无法使用。
Hermes Agent 与 Hermes 4 模型是一样的吗?+
不是。Hermes Agent 是编排软件,提供终端、记忆、工具调用、MCP 服务器以及向子智能体委派任务等功能。Hermes 4 是一个语言模型,您可以通过 Ollama 或其他提供方,让它作为 Hermes Agent 背后的模型运行,就像使用任何其他支持工具调用的模型一样。两者名称相同,但作用不同。
如何确认 Hermes Agent 的记忆功能确实有效?+
请明确要求保存记忆,然后打开 ~/.hermes/memories/MEMORY.md 或 USER.md,确认该条目确实存在于磁盘上的文件中。对于参数量低于约 300 亿的小型本地模型,项目文档本身也承认,只作口头确认而不实际写入文件的情况很常见,因此应进行检查,而不是相信智能体的回复。
容器隔离是否自动启用?+
不会。容器沙箱隔离(Docker、Singularity、Modal)需要在配置时明确选择相应的终端后端;共有七种后端可选,其中包括本地执行。使用默认本地后端启动的智能体会直接在宿主机上执行命令,没有这种隔离;必须选择容器化后端,才能真正获得容器隔离。
如何在 Hermes Agent 中启用 MCP 服务器?+
Nous Research目录中的MCP服务器默认处于禁用状态:必须在配置中逐个安装后才能被代理访问。一旦填写了凭证,Hermes Agent会向服务器发起请求,列出其提供的工具并显示可勾选的列表,从而避免一次性激活一个不熟悉的第三方服务器的所有功能。
Hermes Agent 最多可以并行启动多少个子智能体?+
默认情况下,最多可通过 delegate_task 工具让十个子智能体同时运行;这一限制可以配置,软件本身并未规定上限。不过,委派深度默认仍为 1:在明确启用相应行为之前,子智能体不能再创建其他子智能体,从而避免智能体数量和 token 消耗失控激增。

这份指南对您有帮助吗?

有反馈、发现了错误,或想补充说明?请告诉我们,让这份指南对每个人都更有帮助。