跳转至

Hermes Agent 集成

概述

claude-mem 作为记忆提供方接入 Hermes Agent。Hermes 会将其提示词、工具调用和记忆笔记记录到 claude-mem 中,并在每轮开始时获取与提示词匹配的笔记。同一 checkout 目录下的 Hermes 会话和 Claude Code 会话会读写相同的项目记忆。

安装

npx claude-mem install --ide hermes

安装程序会:

  1. 将提供方复制到 $HERMES_HOME/plugins/claude-mem/。默认主目录在 macOS 和 Linux 上是 ~/.hermes,在 Windows 上是 %LOCALAPPDATA%\hermes(若未设置 LOCALAPPDATA,则为 %USERPROFILE%\AppData\Local\hermes)。
  2. 在 $HERMES_HOME/config.yaml 中选中它:
memory:
  provider: claude-mem
  1. 将 claude-mem 的搜索工具添加为 MCP 服务器,除非你已经有一个 mcp_servers.claude-mem 条目:
mcp_servers:
  claude-mem:
    command: "/path/to/node"
    args:
      - "/path/to/claude-mem/plugin/scripts/mcp-server.cjs"
    enabled: true

安装程序会保留无关的设置和注释。如果遇到无法安全编辑的 YAML 结构,它会拒绝修改。启动一个新的 Hermes 会话以加载该提供方。

Info

Hermes 同时只运行一个外部记忆提供方。如果已经选中了另一个,安装程序会明确说明,npx claude-mem uninstall 会将其恢复。Hermes 的内置记忆(MEMORY.md / USER.md)会保持启用;它保存的内容也会归档到 claude-mem 中。

工作原理

Hermes 事件 claude-mem 调用 用途
on_turn_start POST /api/sessions/init 按顺序记录每个用户提示词
post_tool_call hook POST /api/sessions/observations 记录每个提示词之后的每次工具调用
prefetch(query) POST /api/context/semantic 获取与该项目中每个智能体的该提示词匹配的笔记
system_prompt_block() GET /api/context/inject 每会话一次,获取项目最近的工作
on_memory_write POST /api/memory/save Hermes 自身的记忆笔记会变成 claude-mem 笔记
on_session_end / on_session_switch POST /api/sessions/summarize 使用最后一次回答来关闭会话

记录一个提示词并不保证会有可检索到的笔记:worker 可能在未生成笔记或摘要的情况下结束会话。已记录的提示词仍可通过 MCP 工具搜索。

  • 每个智能体一个项目键。 每次调用都会携带会话的工作目录,worker 解析项目的方式与 Claude Code 相同(git 根目录、工作树、配置的覆盖项)。排除的项目(CLAUDE_MEM_EXCLUDED_PROJECTS)会被跳过。
  • Hermes 从不等待写入。 写入会按顺序通过单个后台线程处理。读取最多等待 3 秒。
  • 故障软降级(Fail-soft)。 如果 claude-mem 未运行,每次调用都会返回空;连续三次失败后,调用会暂停 30 秒。
  • 定时任务和其他非主要 Hermes 智能体 会读取记忆,但不会记录任何内容,这是 Hermes 对记忆提供方的要求。
  • 不会被记录的工具: Hermes 的 memory 工具(其写入通过 on_memory_write 到达)、claude-mem 自身的搜索工具,以及来自委派子智能体的工具调用。

托管服务器

使用以下设置(在环境中或 ~/.claude-mem/settings.json 中)时,提供方会将同样的事件发送到托管服务器的 /v1 API,而不是本地 worker:

{
  "CLAUDE_MEM_RUNTIME": "server",
  "CLAUDE_MEM_SERVER_URL": "https://your-server",
  "CLAUDE_MEM_SERVER_API_KEY": "...",
  "CLAUDE_MEM_SERVER_PROJECT_ID": "..."
}

如果三个服务器值中的任何一个缺失,提供方就会像其他集成一样使用本地 worker。

在托管模式下,提供方会使用 checkout 自身的项目键来标记笔记(git 根目录的文件夹名,或链接工作树的 <repo>/<worktree>),因此 Hermes 和 Claude Code 会在每个 checkout 之间共享笔记。可选的 CLAUDE_MEM_PROJECT_NAME_SOURCE=git-remote 键和配置的项目环境在托管模式下尚未同步;使用本地 worker 时,所有键模式都适用。

从 Hermes 搜索

MCP 条目为 Hermes 提供了 dumb_search、search、timeline、get_observations 和 save_memory。

卸载

npx claude-mem uninstall

删除提供方文件,恢复你之前拥有的 memory.provider(除非你之后修改过),并且仅在安装程序添加了 mcp_servers.claude-mem 且之后未被编辑过的情况下移除它。

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/claude-mem