Hermes Agent 集成
概述¶
claude-mem 作为记忆提供方接入 Hermes Agent。Hermes 会将其提示词、工具调用和记忆笔记记录到 claude-mem 中,并在每轮开始时获取与提示词匹配的笔记。同一 checkout 目录下的 Hermes 会话和 Claude Code 会话会读写相同的项目记忆。
安装¶
安装程序会:
- 将提供方复制到
$HERMES_HOME/plugins/claude-mem/。默认主目录在 macOS 和 Linux 上是~/.hermes,在 Windows 上是%LOCALAPPDATA%\hermes(若未设置LOCALAPPDATA,则为%USERPROFILE%\AppData\Local\hermes)。 - 在
$HERMES_HOME/config.yaml中选中它:
- 将 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。
卸载¶
删除提供方文件,恢复你之前拥有的 memory.provider(除非你之后修改过),并且仅在安装程序添加了 mcp_servers.claude-mem 且之后未被编辑过的情况下移除它。
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/claude-mem