字节笔记本
2026年6月21日
hermes教程-[记忆提供者]
Hermes Agent 内置了 8 个外部记忆提供者插件,为智能体提供跨会话的持久化知识,超越内置的 MEMORY.md 和 USER.md。一次只能激活一个外部提供者——内置记忆始终与其同时激活。
快速开始
hermes memory setup # 交互式选择器 + 配置
hermes memory status # 检查当前激活的提供者
hermes memory off # 禁用外部提供者你也可以通过 hermes plugins → Provider Plugins → Memory Provider 选择激活的记忆提供者。
或者手动在 ~/.hermes/config.yaml 中设置:
memory:
provider: openviking # 或 honcho, mem0, hindsight, holographic, retaindb, byterover, supermemory工作原理
当记忆提供者激活时,Hermes 会自动:
- 将提供者上下文注入系统提示(提供者所知的内容)
- 预取相关记忆在每次对话轮次之前(后台、非阻塞)
- 同步对话轮次到提供者(每次响应后)
- 在会话结束时提取记忆(对于支持此功能的提供者)
- 镜像内置记忆写入到外部提供者
- 添加提供者专属工具,使智能体能够搜索、存储和管理记忆
内置记忆(MEMORY.md / USER.md)继续像以前一样工作。外部提供者是附加的。
可用提供者
Honcho
AI 原生跨会话用户建模,支持辩证推理、会话范围上下文注入、语义搜索和持久化结论。基础上下文现在包含会话摘要以及用户表示和同伴卡片,使智能体能够感知已讨论的内容。
| 最佳适用场景 | 需要跨会话上下文的多智能体系统、智能体-用户对齐 |
| 依赖 | pip install honcho-ai + API 密钥 或自托管实例 |
| 数据存储 | Honcho Cloud 或自托管 |
| 费用 | Honcho 定价(云端)/ 免费(自托管) |
工具(5 个): honcho_profile(读取/更新同伴卡片)、honcho_search(语义搜索)、honcho_context(会话上下文——摘要、表示、卡片、消息)、honcho_reasoning(LLM 合成)、honcho_conclude(创建/删除结论)
架构: 两层上下文注入——基础层(会话摘要 + 表示 + 同伴卡片,按 contextCadence 刷新)加上辩证补充(LLM 推理,按 dialecticCadence 刷新)。辩证机制根据基础上下文是否存在,自动选择冷启动提示(通用用户事实)或热启动提示(会话范围上下文)。
三个正交配置旋钮独立控制成本和深度:
contextCadence—— 基础层刷新频率(API 调用频率)dialecticCadence—— 辩证 LLM 触发频率(LLM 调用频率)dialecticDepth—— 每次辩证调用的.chat()轮次数量(1–3,推理深度)
设置向导:
hermes memory setup # 选择 "honcho" —— 运行 Honcho 专属的后置设置旧的 hermes honcho setup 命令仍然有效(现在重定向到 hermes memory setup),但仅在 Honcho 被选为激活的记忆提供者后才注册。
配置: $HERMES_HOME/honcho.json(配置文件本地)或 ~/.honcho/config.json(全局)。解析顺序:$HERMES_HOME/honcho.json > ~/.hermes/honcho.json > ~/.honcho/config.json。参见配置参考和 Honcho 集成指南。
| 键 | 默认值 | 描述 |
|---|---|---|
apiKey | -- | 来自 app.honcho.dev 的 API 密钥 |
baseUrl | -- | 自托管 Honcho 的基础 URL |
peerName | -- | 用户同伴身份 |
aiPeer | 主机密钥 | AI 同伴身份(每个配置文件一个) |
workspace | 主机密钥 | 共享工作区 ID |
contextTokens | null(无上限) | 每轮自动注入上下文的令牌预算。在单词边界截断 |
contextCadence | 1 | 两次 context() API 调用之间的最小轮次(基础层刷新) |
dialecticCadence | 2 | 两次 peer.chat() LLM 调用之间的最小轮次。建议 1–5。仅适用于 hybrid/context 模式 |
dialecticDepth | 1 | 每次辩证调用的 .chat() 轮次数量。限制在 1–3。轮次 0:冷/热提示,轮次 1:自我审计,轮次 2:调和 |
dialecticDepthLevels | null | 可选数组,指定每轮推理级别,例如 ["minimal", "low", "medium"]。覆盖比例默认值 |
dialecticReasoningLevel | 'low' | 基础推理级别:minimal、low、medium、high、max |
dialecticDynamic | true | 当为 true 时,模型可以通过工具参数覆盖每轮推理级别 |
dialecticMaxChars | 600 | 注入系统提示的辩证结果最大字符数 |
recallMode | 'hybrid' | hybrid(自动注入 + 工具)、context(仅注入)、tools(仅工具) |
writeFrequency | 'async' | 消息刷新时机:async(后台线程)、turn(同步)、session(结束时批量)或整数 N |
saveMessages | true | 是否将消息持久化到 Honcho API |
observationMode | 'directional' | directional(全部开启)或 unified(共享池)。可通过 observation 对象覆盖 |
messageMaxChars | 25000 | 每条消息的最大字符数(超出则分块) |
dialecticMaxInputChars | 10000 | 辩证查询输入到 peer.chat() 的最大字符数 |
sessionStrategy | 'per-directory' | per-directory、per-repo、per-session、global |
pinUserPeer | false | 仅网关。当为 true 时,每个非智能体网关用户都折叠为 peerName;该固定覆盖所有别名 |
userPeerAliases | {} | 仅网关。将运行时 ID 映射到同伴({"7654321": "alice"})。多对一 |
runtimePeerPrefix | "" | 仅网关。为未知运行时 ID 添加命名空间(telegram_7654321),当没有别名匹配时 |
{
"apiKey": "your-key-from-app.honcho.dev",
"hosts": {
"hermes": {
"enabled": true,
"aiPeer": "hermes",
"peerName": "your-name",
"workspace": "hermes"
}
}
}{
"baseUrl": "http://localhost:8000",
"hosts": {
"hermes": {
"enabled": true,
"aiPeer": "hermes",
"peerName": "your-name",
"workspace": "hermes"
}
}
}提示——从
hermes honcho迁移如果你之前使用过
hermes honcho setup,你的配置和所有服务器端数据都完好无损。只需通过设置向导重新启用,或手动设置memory.provider: honcho即可通过新系统重新激活。
多同伴设置:
Honcho 将对话建模为同伴之间交换消息——每个 Hermes 配置文件有一个用户同伴和一个 AI 同伴,所有同伴共享一个工作区。工作区是共享环境:用户同伴在所有配置文件中是全局的,每个 AI 同伴都有自己的身份。每个 AI 同伴根据自身的观察构建独立的表示/卡片,因此 coder 配置文件保持代码导向,而 writer 配置文件针对同一用户保持编辑导向。
映射关系:
| 概念 | 说明 |
|---|---|
| 工作区 | 共享环境。同一工作区下的所有 Hermes 配置文件看到相同的用户身份。 |
用户同伴(peerName) | 人类。在工作区内的配置文件中共享。 |
AI 同伴(aiPeer) | 每个 Hermes 配置文件一个。主机密钥 hermes → 默认;其他为 hermes.<profile>。 |
| 观察 | 每个同伴的开关,控制 Honcho 从谁的消息中建模。directional(默认,全部四个开启)或 unified(单观察者池)。 |
新配置文件,新的 Honcho 同伴
hermes profile create coder --clone--clone 在 honcho.json 中创建一个 hermes.coder 主机块,包含 aiPeer: "coder"、共享的 workspace、继承的 peerName、recallMode、writeFrequency、observation 等。AI 同伴会在 Honcho 中主动创建,以便在第一条消息之前就已存在。
现有配置文件,回填 Honcho 同伴
hermes honcho sync扫描每个 Hermes 配置文件,为没有主机块的配置文件创建主机块,继承默认 hermes 块的设置,并主动创建新的 AI 同伴。幂等——跳过已有主机块的配置文件。
每个配置文件的观察
每个主机块可以独立覆盖观察配置。示例:一个代码导向的配置文件,其中 AI 同伴观察用户但不自我建模:
"hermes.coder": {
"aiPeer": "coder",
"observation": {
"user": { "observeMe": true, "observeOthers": true },
"ai": { "observeMe": false, "observeOthers": true }
}
}观察开关(每个同伴一组):
| 开关 | 效果 |
|---|---|
observeMe | Honcho 根据该同伴自身的消息构建其表示 |
observeOthers | 该同伴观察其他同伴的消息(为跨同伴推理提供输入) |
通过 observationMode 预设:
"directional"(默认)—— 全部四个标志开启。完全相互观察;启用跨同伴辩证。"unified"—— 用户observeMe: true,AIobserveOthers: true,其余为 false。单观察者池;AI 对用户建模但不自我建模,用户同伴仅自我建模。
通过 Honcho 仪表板 设置的服务器端开关会覆盖本地默认值——在会话初始化时同步回来。
完整的观察参考,请参见 Honcho 页面。
网关身份映射
上述同伴模型涵盖 CLI、TUI 和桌面会话,其中每个对话解析为 peerName。网关 增加了第二个维度:用户携带平台原生的运行时 ID(Telegram UID、Discord snowflake、Slack 用户),三个键决定每个 ID 解析到哪个同伴。
| 键 | 效果 |
|---|---|
pinUserPeer: true | 每个非智能体网关用户都折叠为 peerName。固定检查优先,因此覆盖所有别名——仅当没有用户侧身份需要自己的同伴时选择此选项 |
userPeerAliases | 将特定运行时 ID 映射到同伴({"7654321": "alice"})。用于路由不同身份——包括各自携带自己同伴的智能体 |
runtimePeerPrefix | 为任何未映射的运行时 ID 添加命名空间(telegram_7654321),以防止具有相同格式 ID 的平台冲突 |
在网关之外,这些键不起作用。hermes memory setup 仅在检测到已连接的网关平台时才会提示它们。解析器阶梯和设置流程,请参见 Honcho 页面。
{
"apiKey": "your-key",
"workspace": "hermes",
"peerName": "eri",
"hosts": {
"hermes": {
"enabled": true,
"aiPeer": "hermes",
"workspace": "hermes",
"peerName": "eri",
"recallMode": "hybrid",
"writeFrequency": "async",
"sessionStrategy": "per-directory",
"observation": {
"user": { "observeMe": true, "observeOthers": true },
"ai": { "observeMe": true, "observeOthers": true }
},
"dialecticReasoningLevel": "low",
"dialecticDynamic": true,
"dialecticCadence": 2,
"dialecticDepth": 1,
"dialecticMaxChars": 600,
"contextCadence": 1,
"messageMaxChars": 25000,
"saveMessages": true
},
"hermes.coder": {
"enabled": true,
"aiPeer": "coder",
"workspace": "hermes",
"peerName": "eri",
"recallMode": "tools",
"observation": {
"user": { "observeMe": true, "observeOthers": false },
"ai": { "observeMe": true, "observeOthers": true }
}
},
"hermes.writer": {
"enabled": true,
"aiPeer": "writer",
"workspace": "hermes",
"peerName": "eri"
}
},
"sessions": {
"/home/user/myproject": "myproject-main"
}
}参见配置参考和 Honcho 集成指南。
OpenViking
由火山引擎(字节跳动)提供的上下文数据库,具有文件系统风格的知识层次、分层检索和自动记忆提取(分为 6 个类别)。
| 最佳适用场景 | 自托管知识管理,支持结构化浏览 |
| 依赖 | pip install openviking + 运行中的服务器 |
| 数据存储 | 自托管(本地或云端) |
| 费用 | 免费(开源,AGPL-3.0) |
工具: viking_search(语义搜索)、viking_read(分层:摘要/概览/完整)、viking_browse(文件系统导航)、viking_remember(存储事实)、viking_add_resource(导入 URL/文档)
设置:
## 首先启动 OpenViking 服务器
pip install openviking
openviking-server
## 然后配置 Hermes
hermes memory setup # 选择 "openviking"
## 或手动:
hermes config set memory.provider openviking
echo "OPENVIKING_ENDPOINT=http://localhost:1933" >> ~/.hermes/.env主要特性:
- 分层上下文加载:L0(约 100 令牌)→ L1(约 2k)→ L2(完整)
- 会话提交时自动记忆提取(个人资料、偏好、实体、事件、案例、模式)
viking://URI 方案,用于层次化知识浏览
Mem0
服务器端 LLM 事实提取,支持语义搜索、重排序和自动去重。
| 最佳适用场景 | 无需手动管理的记忆——Mem0 自动处理提取 |
| 依赖 | pip install mem0ai + API 密钥 |
| 数据存储 | Mem0 Cloud |
| 费用 | Mem0 定价 |
工具: mem0_profile(所有存储的记忆)、mem0_search(语义搜索 + 重排序)、mem0_conclude(存储逐字事实)
设置:
hermes memory setup # 选择 "mem0"
## 或手动:
hermes config set memory.provider mem0
echo "MEM0_API_KEY=your-key" >> ~/.hermes/.env配置: $HERMES_HOME/mem0.json
| 键 | 默认值 | 描述 |
|---|---|---|
user_id | hermes-user | 用户标识符 |
agent_id | hermes | 智能体标识符 |
Hindsight
长期记忆,支持知识图谱、实体解析和多策略检索。hindsight_reflect 工具提供跨记忆合成,这是其他提供者所没有的。自动保留完整的对话轮次(包括工具调用)以及会话级别的文档跟踪。
| 最佳适用场景 | 基于知识图谱的回忆,支持实体关系 |
| 依赖 | 云端:来自 ui.hindsight.vectorize.io 的 API 密钥。本地:LLM API 密钥(OpenAI、Groq、OpenRouter 等) |
| 数据存储 | Hindsight Cloud 或本地嵌入式 PostgreSQL |
| 费用 | Hindsight 定价(云端)或免费(本地) |
工具: hindsight_retain(存储并提取实体)、hindsight_recall(多策略搜索)、hindsight_reflect(跨记忆合成)
设置:
hermes memory setup # 选择 "hindsight"
## 或手动:
hermes config set memory.provider hindsight
echo "HINDSIGHT_API_KEY=your-key" >> ~/.hermes/.env设置向导会自动安装依赖项,并且只安装所选模式所需的内容(云端用 hindsight-client,本地用 hindsight-all)。需要 hindsight-client >= 0.4.22(如果过时,会在会话启动时自动升级)。
本地模式 UI: hindsight-embed -p hermes ui start
配置: $HERMES_HOME/hindsight/config.json
| 键 | 默认值 | 描述 |
|---|---|---|
mode | cloud | cloud 或 local |
bank_id | hermes | 记忆库标识符 |
recall_budget | mid | 回忆详尽程度:low / mid / high |
memory_mode | hybrid | hybrid(上下文 + 工具)、context(仅自动注入)、tools(仅工具) |
auto_retain | true | 自动保留对话轮次 |
auto_recall | true | 每次轮次前自动回忆记忆 |
retain_async | true | 在服务器上异步处理保留 |
retain_context | conversation between Hermes Agent and the User | 保留记忆的上下文标签 |
retain_tags | — | 应用于保留记忆的默认标签;与每次调用的工具标签合并 |
retain_source | — | 可选的 metadata.source,附加到保留记忆 |
retain_user_prefix | User | 自动保留转录中用户轮次前使用的标签 |
retain_assistant_prefix | Assistant | 自动保留转录中助手轮次前使用的标签 |
recall_tags | — | 回忆时过滤的标签 |
完整配置参考,请参见插件 README。
Holographic
本地 SQLite 事实存储,支持 FTS5 全文搜索、信任评分和用于组合代数查询的 HRR(全息简化表示)。
| 最佳适用场景 | 仅本地记忆,高级检索,无外部依赖 |
| 依赖 | 无(SQLite 始终可用)。HRR 代数可选 NumPy。 |
| 数据存储 | 本地 SQLite |
| 费用 | 免费 |
工具: fact_store(9 个操作:添加、搜索、探查、相关、推理、矛盾、更新、移除、列出)、fact_feedback(有用/无用评分,训练信任分数)
设置:
hermes memory setup # 选择 "holographic"
## 或手动:
hermes config set memory.provider holographic配置: config.yaml 下的 plugins.hermes-memory-store
| 键 | 默认值 | 描述 |
|---|---|---|
db_path | $HERMES_HOME/memory_store.db | SQLite 数据库路径 |
auto_extract | false | 会话结束时自动提取事实 |
default_trust | 0.5 | 默认信任分数(0.0–1.0) |
独特能力:
probe—— 实体特定的代数回忆(关于一个人/事物的所有事实)reason—— 跨多个实体的组合 AND 查询contradict—— 自动检测冲突事实- 信任评分,支持不对称反馈(+0.05 有用 / -0.10 无用)
RetainDB
云端记忆 API,支持混合搜索(向量 + BM25 + 重排序)、7 种记忆类型和增量压缩。
| 最佳适用场景 | 已使用 RetainDB 基础设施的团队 |
| 依赖 | RetainDB 账户 + API 密钥 |
| 数据存储 | RetainDB Cloud |
| 费用 | $20/月 |
工具: retaindb_profile(用户资料)、retaindb_search(语义搜索)、retaindb_context(任务相关上下文)、retaindb_remember(存储,带类型 + 重要性)、retaindb_forget(删除记忆)
设置:
hermes memory setup # 选择 "retaindb"
## 或手动:
hermes config set memory.provider retaindb
echo "RETAINDB_API_KEY=your-key" >> ~/.hermes/.envByteRover
通过 brv CLI 实现的持久化记忆——层次化知识树,支持分层检索(模糊文本 → LLM 驱动搜索)。本地优先,可选云端同步。
| 最佳适用场景 | 需要可移植、本地优先记忆且带有 CLI 的开发者 |
| 依赖 | ByteRover CLI(npm install -g byterover-cli 或安装脚本) |
| 数据存储 | 本地(默认)或 ByteRover Cloud(可选同步) |
| 费用 | 免费(本地)或 ByteRover 定价(云端) |
工具: brv_query(搜索知识树)、brv_curate(存储事实/决策/模式)、brv_status(CLI 版本 + 树统计)
设置:
## 首先安装 CLI
curl -fsSL https://byterover.dev/install.sh | sh
## 然后配置 Hermes
hermes memory setup # 选择 "byterover"
## 或手动:
hermes config set memory.provider byterover主要特性:
- 自动预压缩提取(在上下文压缩丢弃之前保存洞察)
- 知识树存储在
$HERMES_HOME/byterover/(配置文件范围) - SOC2 Type II 认证的云端同步(可选)
Supermemory
语义长期记忆,支持资料回忆、语义搜索、显式记忆工具和会话结束时的对话导入(通过 Supermemory 图 API)。
| 最佳适用场景 | 语义回忆,支持用户画像和会话级图构建 |
| 依赖 | pip install supermemory + API 密钥 |
| 数据存储 | Supermemory Cloud |
| 费用 | Supermemory 定价 |
工具: supermemory_store(保存显式记忆)、supermemory_search(语义相似性搜索)、supermemory_forget(按 ID 或最佳匹配查询遗忘)、supermemory_profile(持久化资料 + 近期上下文)
设置:
hermes memory setup # 选择 "supermemory"
## 或手动:
hermes config set memory.provider supermemory
echo 'SUPERMEMORY_API_KEY=***' >> ~/.hermes/.env配置: $HERMES_HOME/supermemory.json
| 键 | 默认值 | 描述 |
|---|---|---|
container_tag | hermes | 用于搜索和写入的容器标签。支持 {identity} 模板用于配置文件范围的标签。 |
auto_recall | true | 在轮次前注入相关记忆上下文 |
auto_capture | true | 每次响应后存储清理后的用户-助手轮次 |
max_recall_results | 10 | 格式化为上下文的最大回忆项数 |
profile_frequency | 50 | 在首次轮次和每 N 轮后包含资料事实 |
capture_mode | all | 默认跳过微小或琐碎的轮次 |
search_mode | hybrid | 搜索模式:hybrid、memories 或 documents |
api_timeout | 5.0 | SDK 和导入请求的超时时间 |
环境变量: SUPERMEMORY_API_KEY(必需)、SUPERMEMORY_CONTAINER_TAG(覆盖配置)。
主要特性:
- 自动上下文隔离——从捕获的轮次中剥离回忆的记忆,防止递归记忆污染
- 全会话导入——整个对话在会话边界时一次性发送
- 会话结束时的对话导入(到
/v4/conversations),用于在 Supermemory 中构建更丰富的资料和图 - 在首次轮次和可配置间隔时注入资料事实
- 配置文件范围容器——在
container_tag中使用{identity}(例如hermes-{identity}→hermes-coder)以隔离每个 Hermes 配置文件的记忆 - 多容器模式——启用
enable_custom_container_tags并设置custom_containers列表,让智能体跨命名容器读写。自动操作仍保留在主容器上。
{
"container_tag": "hermes",
"enable_custom_container_tags": true,
"custom_containers": ["project-alpha", "shared-knowledge"],
"custom_container_instructions": "Use project-alpha for coding context."
}支持: Discord · support@supermemory.com
Memori
使用 Memori Cloud 的结构化长期记忆,支持后台已完成轮次捕获、工具感知的轮次上下文以及用于事实、摘要、配额、注册和反馈的显式回忆工具。
| 最佳适用场景 | 智能体控制的回忆,支持结构化项目和会话归属 |
| 依赖 | pip install hermes-memori + hermes-memori install + Memori API 密钥 |
| 数据存储 | Memori Cloud |
| 费用 | Memori 定价 |
工具: memori_recall(搜索长期记忆)、memori_recall_summary(摘要上下文)、memori_quota(使用量/配额)、memori_signup(请求注册邮件)、memori_feedback(发送集成反馈)
设置:
pip install hermes-memori
hermes-memori install
hermes config set memory.provider memori
hermes memory setup提供者比较
| 提供者 | 存储 | 费用 | 工具 | 依赖 | 独特功能 |
|---|---|---|---|---|---|
| Honcho | 云端 | 付费 | 5 | honcho-ai | 辩证用户建模 + 会话范围上下文 |
| OpenViking | 自托管 | 免费 | 5 | openviking + 服务器 | 文件系统层次 + 分层加载 |
| Mem0 | 云端 | 付费 | 3 | mem0ai | 服务器端 LLM 提取 |
| Hindsight | 云端/本地 | 免费/付费 | 3 | hindsight-client | 知识图谱 + 反射合成 |
| Holographic | 本地 | 免费 | 2 | 无 | HRR 代数 + 信任评分 |
| RetainDB | 云端 | $20/月 | 5 | requests | 增量压缩 |
| ByteRover | 本地/云端 | 免费/付费 | 3 | brv CLI | 预压缩提取 |
| Supermemory | 云端 | 付费 | 4 | supermemory | 上下文隔离 + 会话图导入 + 多容器 |
| Memori | 云端 | 免费/付费 | 5 | hermes-memori | 工具感知记忆 + 结构化回忆 |
配置文件隔离
每个提供者的数据按配置文件隔离:
- 本地存储提供者(Holographic、ByteRover)使用
$HERMES_HOME/路径,不同配置文件路径不同 - 配置文件文件提供者(Honcho、Mem0、Hindsight、Supermemory)将配置存储在
$HERMES_HOME/中,因此每个配置文件有自己的凭据 - 云端提供者(RetainDB)自动派生配置文件范围的项目名称
- 环境变量提供者(OpenViking)通过每个配置文件的
.env文件配置
构建记忆提供者
请参阅开发者指南:记忆提供者插件了解如何创建自己的提供者。