Hermes Agent 内置了 8 个外部记忆供应商插件,能够为代理提供内置 MEMORY.md 和 USER.md 之外的持久化、跨会话知识。一次只能激活一个 外部供应商 —— 而内置记忆始终与其并行保持激活状态。
只用 MEMORY.md / USER.md: 适合简单、稳定、少量记忆
启用 Memory Provider: 适合长期使用 Hermes,希望它记住项目、经验、上下文、知识库和开发习惯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
Section titled “Honcho”具备辩证推理(dialectic reasoning)、会话级上下文注入、语义搜索及持久结论功能的 AI 原生跨会话用户建模。其基础上下文现已包含会话摘要、用户画像(representation)及同伴卡片(peer cards),使代理能够感知已讨论过的内容。
- 最适用于:具备跨会话上下文的多代理系统、用户-代理对齐。
- 需求:
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 集成指南。
(需要进一步完善)
多同伴设置 (Multi-peer setup)
Honcho 将对话建模为交换消息的 “同伴”(Peers)—— 每个 Hermes 配置文件(Profile)包含一个用户同伴和一个 AI 同伴,它们共同共享一个工作区(Workspace)。工作区是共享环境:用户同伴在不同配置文件之间是全局通用的,而每个 AI 同伴则拥有独立的身份。每个 AI 同伴都会根据自身的观察构建独立的画像/卡片,因此在面对同一用户时,“coder”(编码器)配置文件可以保持代码导向,而“writer”(写作器)配置文件则可以保持编辑导向。
映射关系如下:
| 概念 | 说明 |
|---|---|
| 工作区 (Workspace) | 共享环境。同一工作区下的所有 Hermes 配置文件都能看到同一个用户身份。 |
| 用户同伴 (peerName) | 人类。在工作区内的所有配置文件中共享。 |
| AI 同伴 (aiPeer) | 每个 Hermes 配置文件对应一个。主键 hermes 为默认值;其他配置使用 hermes.<profile>。 |
| 观察 (Observation) | 按同伴切换,控制 Honcho 根据谁的消息进行建模。directional(默认,开启全部四项)或 unified(单一观察者池)。 |
新配置文件,全新的 Honcho 同伴
Section titled “新配置文件,全新的 Honcho 同伴”hermes profile create coder --clone--clone 会在 honcho.json 中创建一个 hermes.coder 主机区块,设置 aiPeer: "coder",共享 workspace,并继承 peerName、recallMode、writeFrequency、observation 等配置。该 AI 同伴会在 Honcho 中被积极创建,以便在发送第一条消息前就已存在。
现有配置文件,补全 Honcho 同伴
Section titled “现有配置文件,补全 Honcho 同伴”hermes honcho sync扫描每个 Hermes 配置文件,为任何没有主机区块的配置创建主机区块,继承默认 hermes 区块的设置,并积极创建新的 AI 同伴。该操作是幂等的 —— 会跳过已有主机区块的配置文件。
针对每个配置文件的观察设置
Section titled “针对每个配置文件的观察设置”每个主机区块都可以独立覆盖观察配置。例如:一个专注于代码的配置文件,其中 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,其余关闭。单一观察者池;AI 对用户建模但不自省,用户同伴仅进行自我建模。
通过 Honcho 仪表板 设置的服务端开关优先级高于本地默认值 —— 并在会话初始化时同步回本地。
请参阅 Honcho 页面 获取完整的观察参考资料。
(需要进一步优化)
请参阅 配置参考 和 Honcho 集成指南。
OpenViking
Section titled “OpenViking”由火山引擎(字节跳动)推出的上下文数据库,具备文件系统式的知识层级、分层检索,以及可自动提取至 6 个类别的记忆功能。
- 最适用于:具备结构化浏览功能的私有化知识管理。
- 需求:
pip install openviking+ 运行中的服务器。 - 数据存储:私有化部署(本地或云端)。
- 成本:免费(开源,AGPL-3.0 协议)。
工具:
viking_search(语义搜索)viking_read(分层读取:摘要/概览/全文)viking_browse(文件系统式导航)viking_remember(存储事实)viking_add_resource(摄取 URL/文档)
设置:
# 首先启动 OpenViking 服务器pip install openvikingopenviking-server
# 然后配置 Hermeshermes memory setup # 选择 "openviking"# 或者手动设置:hermes config set memory.provider openvikingecho "OPENVIKING_ENDPOINT=http://localhost:1933" >> ~/.hermes/.env核心特性:
- 分层上下文加载:L0 (~100 tokens) → L1 (~2k) → L2 (全文)。
- 会话提交时自动提取记忆(包括:概况、偏好、实体、事件、案例、模式)。
- viking:// URI 方案:用于层级化的知识浏览。
具备语义搜索、重排序(Reranking)及自动去重功能的服务端 LLM 事实提取系统。
- 最适用于:自动化的记忆管理 —— Mem0 会自动处理信息提取。
- 需求:
pip install mem0ai+ API 密钥。 - 数据存储:Mem0 Cloud。
- 成本:Mem0 定价。
工具:
mem0_profile(查看所有存储的记忆)mem0_search(语义搜索 + 重排序)mem0_conclude(存储逐字记录的事实)
设置:
hermes memory setup # 选择 "mem0"# 或者手动设置:hermes config set memory.provider mem0echo "MEM0_API_KEY=your-key" >> ~/.hermes/.env配置:$HERMES_HOME/mem0.json
| 键名 | 默认值 | 描述 |
|---|---|---|
| user_id | hermes-user | 用户标识符 |
| agent_id | hermes | 代理标识符 |
Hindsight
Section titled “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 hindsightecho "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… | 保留记忆的上下文标签(Hermes Agent 与用户之间的对话) |
| retain_tags | — | 应用于保留记忆的默认标签;与每次工具调用的标签合并 |
| retain_source | — | 附加到保留记忆的可选 metadata.source |
| retain_user_prefix | User | 自动保留转录中用户轮次前的标签 |
| retain_assistant_prefix | Assistant | 自动保留转录中助手轮次前的标签 |
| recall_tags | — | 召回时用于过滤的标签 |
详情请参阅 插件 README 获取完整的配置参考。
Holographic
Section titled “Holographic”基于本地 SQLite 的事实存储系统,具备 FTS5 全文搜索、信任评分功能,并采用 HRR(全息简化表示,Holographic Reduced Representations)进行组合式代数查询。
- 最适用于:仅限本地且具备高级检索功能的记忆需求,无外部依赖。
- 需求:无(SQLite 始终可用)。NumPy 为可选需求(用于 HRR 代数计算)。
- 数据存储:本地 SQLite。
- 成本:免费。
工具:
fact_store(包含 9 种操作:add, search, probe, related, reason, contradict, update, remove, list)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
Section titled “RetainDB”具备混合搜索(向量 + BM25 + 重排序)、7 种记忆类型以及增量压缩功能的云端记忆 API。
- 最适用于:已经在使用 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 retaindbecho "RETAINDB_API_KEY=your-key" >> ~/.hermes/.envByteRover
Section titled “ByteRover”通过 brv CLI 实现持久化记忆 —— 具有分层检索功能的层级化知识树(模糊文本 → LLM 驱动搜索)。本地优先,可选云端同步。
| 项目 | 内容 |
|---|---|
| 最适合 | 想要便携、本地优先记忆功能的开发者(使用 CLI) |
| 需求 | ByteRover CLI (npm install -g byterover-cli 或安装脚本) |
| 数据存储 | 本地(默认)或 ByteRover Cloud(可选同步) |
| 成本 | 免费(本地)或 ByteRover 定价(云端) |
工具: brv_query(搜索知识树)、brv_curate(存储事实/决策/模式)、brv_status(CLI 版本 + 树状统计信息)
安装:
# 首先安装 CLIcurl -fsSL https://byterover.dev/install.sh | sh
# 然后配置 Hermeshermes memory setup # 选择 "byterover"# 或者手动配置:hermes config set memory.provider byterover核心特性:
- 自动预压缩提取(在上下文压缩丢弃信息前保存见解)
- 知识树存储路径:
$HERMES_HOME/byterover/(配置文件作用域) - SOC2 Type II 认证云同步(可选)
Supermemory
Section titled “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 supermemoryecho '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(覆盖配置)。
核心特性:
- 自动上下文隔离 — 从捕获的轮次中剥离召回的记忆,以防止递归记忆污染。
- 会话结束对话摄取 — 用于构建更丰富的图谱级知识。
- 个人资料事实注入 — 在首轮和可配置的间隔时间内注入。
- 琐碎消息过滤 — 自动跳过“好的”、“谢谢”等消息。
- 个人资料作用域容器 — 在
container_tag中使用{identity}(例如hermes-{identity}→hermes-coder)来隔离每个 Hermes 个人资料的记忆。 - 多容器模式 — 通过
custom_containers列表启用enable_custom_container_tags,允许代理跨命名容器进行读写。自动操作(同步、预取)仍保留在主容器中。 - [多容器示例]
(需要进一步完善)
支持: Discord · support@supermemory.com
| 服务商 | 存储方式 | 成本 | 工具数量 | 依赖项 | 独特特性 |
|---|---|---|---|---|---|
| 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 | 上下文隔离 + 会话图谱摄取 + 多容器模式 |
个人资料隔离 (Profile Isolation)
Section titled “个人资料隔离 (Profile Isolation)”每个服务商的数据均按 个人资料 (profile) 进行隔离:
- 本地存储服务商(Holographic, ByteRover):使用
$HERMES_HOME/路径,该路径随个人资料的不同而变化。 - 配置文件服务商(Honcho, Mem0, Hindsight, Supermemory):将配置存储在
$HERMES_HOME/中,因此每个个人资料都拥有独立的凭据。 - 云端服务商(RetainDB):自动派生个人资料作用域的项目名称。
- 环境变量服务商(OpenViking):通过每个个人资料各自的
.env文件进行配置。
构建记忆服务商
Section titled “构建记忆服务商”关于如何创建自定义服务商,请参阅 开发者指南:记忆服务商插件 (Developer Guide: Memory Provider Plugins)。