章節:核心功能 · URL:https://hermesbible.com/docs/user-guide/features/memory-providers
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 原生跨會話使用者建模,具備辯證推理、會話範圍上下文注入、語義搜尋和持久化結論。基礎上下文現在包含會話摘要以及使用者表徵和對等卡片,讓代理程式 aware 已討論過的內容。
| 最適合 | 具備跨會話上下文的多代理系統,使用者-代理對齊 |
| 需要 | 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 | host 金鑰 | AI 對等身份(每個設定檔一個) |
workspace | host 金鑰 | 共享工作區 ID |
contextTokens | null(無上限) | 每回合自動注入上下文的 Token 預算。會在單字邊界處截斷 |
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),避免平台使用相同格式的 ID 時發生衝突 |
{
"apiKey": "your-key-from-app.honcho.dev",
"hosts": {
"hermes": {
"enabled": true,
"aiPeer": "hermes",
"peerName": "your-name",
"workspace": "hermes"
}
}
}
</details>
<details>
<summary>最小 honcho.json(自架)</summary>
{
"baseUrl": "http://localhost:8000",
"hosts": {
"hermes": {
"enabled": true,
"aiPeer": "hermes",
"peerName": "your-name",
"workspace": "hermes"
}
}
}
</details>
提示——從
hermes honcho遷移如果您之前使用過
hermes honcho setup,您的設定和所有伺服器端資料都完好無損。只需透過設定精靈重新啟用,或手動設定memory.provider: honcho即可透過新系統重新啟動。
多對等設定:
Honcho 將對話建模為對等之間的訊息交換——每個 Hermes 設定檔有一個使用者對等加一個 AI 對等,共享一個工作區。工作區是共享環境:使用者對等在設定檔之間是全域的,每個 AI 對等則有自己獨立的身份。每個 AI 對等根據自己的觀察建立獨立的表徵/卡片,因此 coder 設定檔保持程式碼導向,而 writer 設定檔針對同一使用者保持編輯導向。
映射關係:
| 概念 | 說明 |
|---|---|
| 工作區 | 共享環境。同一工作區下的所有 Hermes 設定檔看到相同的使用者身份。 |
使用者對等(peerName) | 人類使用者。在工作區的設定檔之間共享。 |
AI 對等(aiPeer) | 每個 Hermes 設定檔一個。Host 金鑰 hermes → 預設;其他則為 hermes.<profile>。 |
| 觀察 | 每個對等的切換開關,控制 Honcho 從誰的訊息中建模。directional(預設,四個全部開啟)或 unified(單一觀察者池)。 |
新建設定檔,全新 Honcho 對等
hermes profile create coder --clone
--clone 會在 honcho.json 中建立一個 hermes.coder host 區塊,包含 aiPeer: "coder"、共享的 workspace、繼承的 peerName、recallMode、writeFrequency、observation 等。AI 對等會在 Honcho 中被即時建立,使其在第一則訊息前就存在。
現有設定檔,回填 Honcho 對等
hermes honcho sync
掃描每個 Hermes 設定檔,為沒有 host 區塊的設定檔建立區塊,從預設 hermes 區塊繼承設定,並即時建立新的 AI 對等。具冪等性——跳過已有 host 區塊的設定檔。
每個設定檔的觀察設定
每個 host 區塊可以獨立覆蓋觀察設定。例如:一個程式碼導向的設定檔,其中 AI 對等觀察使用者但不自我建模:
"hermes.coder": {
"aiPeer": "coder",
"observation": {
"user": { "observeMe": true, "observeOthers": true },
"ai": { "observeMe": false, "observeOthers": true }
}
}
觀察切換開關(每個對等一組):
| 切換開關 | 效果 |
|---|---|
observeMe | Honcho 從該對等自己的訊息中建立其表徵 |
observeOthers | 該對等觀察另一對等的訊息(為跨對等推理提供素材) |
透過 observationMode 設定預設:
"directional"(預設)— 四個旗標全部開啟。完全互相觀察;啟用跨對等辯證。"unified"— 使用者observeMe: true,AIobserveObservers: 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"
}
}
</details>
詳見設定參考和 Honcho 整合指南。
OpenViking
由 Volcengine(ByteDance)開發的上下文資料庫,具備檔案系統式知識階層、分層檢索和自動記憶提取(分為 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 tokens)→ 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
具備 FTS5 全文搜尋、信任評分和 HRR(全像簡化表示)用於組合代數查詢的本機 SQLite 事實儲存。
| 最適合 | 僅本機記憶,具備進階檢索,無外部依賴 |
| 需要 | 無(SQLite 始終可用)。NumPy 為可選用於 HRR 代數。 |
| 資料儲存 | 本機 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/.env
ByteRover
透過 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."
}
</details>
支援: 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檔案設定
建構記憶提供者
詳見開發者指南:記憶提供者插件以了解如何建立自己的提供者。