Honcho
配置並使用 Hermes 的 Honcho 記憶功能——跨會話用戶建模、多配置文件對等體隔離、觀察配置、辯證推理、會話摘要以及上下文預算強制執行。適用於設置 Honcho、排查記憶問題、使用 Honcho 對等體管理配置文件,或調整觀察、回憶和辯證設置時。
技能元數據
| 來源 | 可選 — 使用 hermes skills install official/autonomous-ai-agents/honcho 安裝 |
| 路徑 | optional-skills/autonomous-ai-agents/honcho |
| 版本 | 2.0.0 |
| 作者 | Hermes Agent |
| 許可證 | MIT |
| 標籤 | Honcho, Memory, Profiles, Observation, Dialectic, User-Modeling, Session-Summary |
| 相關技能 | hermes-agent |
參考:完整 SKILL.md
以下是觸發此技能時 Hermes 加載的完整技能定義。這是技能激活時代理看到的指令。
Hermes 的 Honcho 記憶
Honcho 提供 AI 原生的跨會話用戶建模。它在對話中學習用戶身份,併為每個 Hermes 配置文件分配獨立的對等體身份,同時共享統一的用戶視圖。
何時使用
- 設置 Honcho(雲端或自託管)
- 排查記憶不工作/對等體不同步的問題
- 創建多配置文件設置,其中每個代理擁有自己的 Honcho 對等體
- 調整觀察、回憶、辯證深度或寫入頻率設置
- 瞭解 5 個 Honcho 工具的功能及使用時機
- 配置上下文預算和會話摘要注入
設置
雲端 (app.honcho.dev)
hermes honcho setup
# select "cloud", paste API key from https://app.honcho.dev
自託管
hermes honcho setup
# select "local", enter base URL (e.g. http://localhost:8000)
參見:https://docs.honcho.dev/v3/guides/integrations/hermes#running-honcho-locally-with-hermes
驗證
hermes honcho status # shows resolved config, connection test, peer info
架構
基礎上下文注入
當 Honcho 將上下文注入系統提示符(在 hybrid 或 context 回憶模式下)時,它按以下順序組裝基礎上下文塊:
- 會話摘要——當前會話至今的簡短摘要(置於首位,以便模型立即獲得對話連續性)
- 用戶表示——Honcho 積累的用戶模型(偏好、事實、模式)
- AI 對等體卡片——此 Hermes 配置文件的 AI 對等體身份卡片
會話摘要是由 Honcho 在每個回合開始時自動生成的(當存在先前會話時)。它讓模型能夠熱啟動,而無需重放完整歷史。
冷/暖提示選擇
Honcho 自動在兩種提示策略之間進行選擇:
| 條件 | 策略 | 發生的情況 |
|---|---|---|
| 無先前會話或表示為空 | 冷啟動 | 輕量級介紹提示;跳過摘要注入;鼓勵模型瞭解用戶 |
| 存在表示和/或會話歷史 | 暖啟動 | 完整基礎上下文注入(摘要 → 表示 → 卡片);更豐富的系統提示 |
你無需配置此項——它會根據會話狀態自動執行。
對等體 (Peers)
Honcho 將會話建模為對等體之間的交互。Hermes 為每個會話創建兩個對等體:
- 用戶對等體 (
peerName):代表人類。Honcho 根據觀察到的消息構建用戶表示。 - AI 對等體 (
aiPeer):代表此 Hermes 實例。每個配置文件擁有自己的 AI 對等體,以便代理發展獨立的視圖。
觀察 (Observation)
每個對等體有兩個觀察開關,控制 Honcho 從何處學習:
| 開關 | 作用 |
|---|---|
observeMe | 觀察對等體自身的消息(構建自我表示) |
observeOthers | 觀察其他對等體的消息(構建跨對等體理解) |
默認值:所有四個開關均開啟(完全雙向觀察)。
在 honcho.json 中按對等體配置:
{
"observation": {
"user": { "observeMe": true, "observeOthers": true },
"ai": { "observeMe": true, "observeOthers": true }
}
}
或使用簡寫預設:
| 預設 | 用戶 | AI | 用例 |
|---|---|---|---|
"directional"(默認) | me:on, others:on | me:on, others:on | 多代理,完整記憶 |
"unified" | me:on, others:off | me:off, others:on | 單代理,僅用戶建模 |
在 Honcho 儀表板 中更改的設置會在會話初始化時同步回來——服務器端配置優先於本地默認值。
會話 (Sessions)
Honcho 會話限定消息和觀察的範圍。策略選項:
| 策略 | 行為 |
|---|---|
per-directory(默認) | 每個工作目錄一個會話 |
per-repo | 每個 git 倉庫根目錄一個會話 |
per-session | 每次 Hermes 運行創建一個新的 Honcho 會話 |
global | 所有目錄共用單個會話 |
手動覆蓋:hermes honcho map my-project-name
回憶模式 (Recall Modes)
代理如何訪問 Honcho 記憶:
| 模式 | 自動注入上下文? | 可用工具? | 使用場景 |
|---|---|---|---|
hybrid(默認) | 是 | 是 | Agent 決定何時使用工具與自動上下文 |
context | 是 | 否(隱藏) | 最低 Token 成本,無工具調用 |
tools | 否 | 是 | Agent 顯式控制所有內存訪問 |
三個正交調節項
Honcho 的辯證行為由三個獨立的維度控制。每個維度都可以獨立調整而不影響其他維度:
頻率(何時)
控制辯證和上下文調用的發生頻率。
| 鍵 | 默認值 | 描述 |
|---|---|---|
contextCadence | 1 | 上下文 API 調用之間的最小輪次間隔 |
dialecticCadence | 2 | 辯證 API 調用之間的最小輪次間隔。推薦值為 1–5 |
injectionFrequency | every-turn | 基礎上下文注入的頻率:every-turn(每輪)或 first-turn(首輪) |
較高的頻率值會使辯證 LLM 的觸發頻率降低。dialecticCadence: 2 表示引擎每隔一輪觸發一次。將其設置為 1 則表示每輪都觸發。
深度(多少輪)
控制 Honcho 每次查詢執行的辯證推理輪數。
| 鍵 | 默認值 | 範圍 | 描述 |
|---|---|---|---|
dialecticDepth | 1 | 1-3 | 每次查詢的辯證推理輪數 |
dialecticDepthLevels | -- | 數組 | 可選的每輪推理級別覆蓋(見下文) |
dialecticDepth: 2 表示 Honcho 運行兩輪辯證綜合。第一輪產生初始答案;第二輪對其進行優化。
dialecticDepthLevels 允許你為每一輪獨立設置推理級別:
{
"dialecticDepth": 3,
"dialecticDepthLevels": ["low", "medium", "high"]
}
如果省略 dialecticDepthLevels,各輪將使用從 dialecticReasoningLevel(基礎級別)派生的比例級別:
| 深度 | 傳遞級別 |
|---|---|
| 1 | [base] |
| 2 | [minimal, base] |
| 3 | [minimal, base, low] |
這在保持早期輪次低成本的同時,在最終綜合階段使用完整深度。
會話開始時的深度。 會話啟動預熱會在第 1 輪之前於後臺運行配置好的完整 dialecticDepth。在冷啟動 peer 上進行單輪預熱通常會返回稀疏的輸出——多輪深度會在用戶發言之前運行審計/協調循環。第 1 輪直接消耗預熱結果;如果預熱未及時完成,第 1 輪將回退到具有綁定超時的同步調用。
級別(強度)
控制每輪辯證推理的強度。
| 鍵 | 默認值 | 描述 |
|---|---|---|
dialecticReasoningLevel | low | minimal, low, medium, high, max |
dialecticDynamic | true | 當為 true 時,模型可以將 reasoning_level 傳遞給 honcho_reasoning 以覆蓋每次調用的默認值。false = 始終使用 dialecticReasoningLevel,忽略模型覆蓋 |
更高的級別會產生更豐富的綜合結果,但會增加 Honcho 後端的 Token 成本。
多配置文件設置
每個 Hermes 配置文件都有自己的 Honcho AI peer,同時共享相同的工作區(用戶上下文)。這意味著:
- 所有配置文件看到相同的用戶表示
- 每個配置文件構建自己的 AI 身份和觀察結果
- 一個配置文件寫入的結論可通過共享工作區被其他配置文件看到
創建帶有 Honcho peer 的配置文件
hermes profile create coder --clone
# creates host block hermes.coder, AI peer "coder", inherits config from default
--clone 對 Honcho 的作用:
- 在
honcho.json中創建一個hermes.coder主機塊 - 設置
aiPeer: "coder"(配置文件名稱) - 從默認配置繼承
workspace、peerName、writeFrequency、recallMode等 - 急切地在 Honcho 中創建 peer,使其在第一條消息之前存在
回填現有配置文件
hermes honcho sync # creates host blocks for all profiles that don't have one yet
每個配置文件的配置
在主機塊中覆蓋任何設置:
{
"hosts": {
"hermes.coder": {
"aiPeer": "coder",
"recallMode": "tools",
"dialecticDepth": 2,
"observation": {
"user": { "observeMe": true, "observeOthers": false },
"ai": { "observeMe": true, "observeOthers": true }
}
}
}
}
工具
Agent 擁有 5 個雙向 Honcho 工具(在 context 回憶模式下隱藏):
| 工具 | LLM 調用? | 成本 | 使用時機 |
|---|---|---|---|
honcho_profile | 否 | 極低 | 對話開始時的快速事實快照,或用於快速查找名稱/角色/偏好 |
honcho_search | 否 | 低 | 獲取特定的過去事實供你自己推理——原始摘錄,無綜合 |
honcho_context | 否 | 低 | 完整會話上下文快照:摘要、表示、卡片、最近消息 |
honcho_reasoning | 是 | 中–高 | 由 Honcho 辯證引擎綜合的自然語言問題 |
honcho_conclude | 否 | 極低 | 寫入或刪除持久化事實;傳遞 peer: "ai" 用於 AI 自我知識 |
honcho_profile
讀取或更新 peer 卡片—— curated 的關鍵事實(名稱、角色、偏好、溝通風格)。傳遞 card: [...] 進行更新;省略則進行讀取。無 LLM 調用。
honcho_search
對特定 peer 的存儲上下文進行語義搜索。返回按相關性排序的原始摘錄,無綜合。默認 800 tokens,最大 2000。當你需要特定的過去事實供自己推理而不是綜合答案時,此工具非常有用。
honcho_context
來自 Honcho 的完整會話上下文快照——會話摘要、peer 表示、peer 卡片和最近消息。無 LLM 調用。當你想一次性查看 Honcho 關於當前會話和 peer 的所有已知信息時使用。
honcho_reasoning
由 Honcho 的辯證推理引擎(Honcho 後端的 LLM 調用)回答的自然語言問題。成本較高,質量較高。傳遞 reasoning_level 以控制深度:minimal(快速/廉價)→ low → medium → high → max(詳盡)。省略則使用配置的默認值(low)。用於綜合理解用戶的模式、目標或當前狀態。
honcho_conclude
編寫或刪除關於對等體(peer)的持久性結論。傳遞 conclusion: "..." 以創建。傳遞 delete_id: "..." 以刪除結論(用於移除個人身份信息 PII — Honcho 會隨著時間的推移自動修復不正確的結論,因此僅在需要移除 PII 時才需刪除)。你必須恰好傳遞這兩個參數中的一個。
雙向對等體定位
所有 5 個工具都接受一個可選的 peer 參數:
peer: "user"(默認)— 操作用戶對等體peer: "ai"— 操作此配置文件的 AI 對等體peer: "<explicit-id>"— 工作區中的任何對等體 ID
示例:
honcho_profile # read user's card
honcho_profile peer="ai" # read AI peer's card
honcho_reasoning query="What does this user care about most?"
honcho_reasoning query="What are my interaction patterns?" peer="ai" reasoning_level="medium"
honcho_conclude conclusion="Prefers terse answers"
honcho_conclude conclusion="I tend to over-explain code" peer="ai"
honcho_conclude delete_id="abc123" # PII removal
Agent 使用模式
當 Honcho 記憶激活時,Hermes 的使用指南。
對話開始時
1. honcho_profile → fast warmup, no LLM cost
2. If context looks thin → honcho_context (full snapshot, still no LLM)
3. If deep synthesis needed → honcho_reasoning (LLM call, use sparingly)
不要每輪對話都調用 honcho_reasoning。自動注入已經處理了持續的上下文刷新。僅當你真正需要基礎上下文未提供的綜合洞察時,才使用推理工具。
當用戶分享需要記住的內容時
honcho_conclude conclusion="<specific, actionable fact>"
好的結論:“偏好代碼示例而非散文式解釋”、“正在開發一個 Rust 異步項目,持續到 2026 年 4 月” 壞的結論:“用戶說了一些關於 Rust 的事情”(太模糊)、“用戶似乎懂技術”(已在表示中體現)
當用戶詢問過去的上下文 / 你需要回憶具體細節時
honcho_search query="<topic>" → fast, no LLM, good for specific facts
honcho_context → full snapshot with summary + messages
honcho_reasoning query="<question>" → synthesized answer, use when search isn't enough
何時使用 peer: "ai"
使用 AI 對等體定位來構建和查詢 agent 自身的自我知識:
honcho_conclude conclusion="我在解釋架構時傾向於冗長" peer="ai"— 自我糾正honcho_reasoning query="我通常如何處理模糊的請求?" peer="ai"— 自我審計honcho_profile peer="ai"— 審查自己的身份卡片
何時不調用工具
在 hybrid 和 context 模式下,基礎上下文(用戶表示 + 卡片 + 會話摘要)會在每輪對話前自動注入。不要重新獲取已注入的內容。僅在以下情況調用工具:
- 你需要注入上下文中沒有的內容
- 用戶明確要求你回憶或檢查記憶
- 你正在為新的內容編寫結論
頻率感知
工具端的 honcho_reasoning 與自動注入辯證法的成本相同。在顯式工具調用後,自動注入頻率重置 — 避免對同一輪對話重複收費。
配置參考
配置文件:$HERMES_HOME/honcho.json(本地配置文件)或 ~/.honcho/config.json(全局配置)。
關鍵設置
| 鍵 | 默認值 | 描述 |
|---|---|---|
apiKey | -- | API 密鑰(獲取一個) |
baseUrl | -- | 自託管 Honcho 的基礎 URL |
peerName | -- | 用戶對等體身份 |
aiPeer | host key | AI 對等體身份 |
workspace | host key | 共享工作區 ID |
recallMode | hybrid | hybrid、context 或 tools |
observation | all on | 每個對等體的 observeMe/observeOthers 布爾值 |
writeFrequency | async | async、turn、session 或整數 N |
sessionStrategy | per-directory | per-directory、per-repo、per-session、global |
messageMaxChars | 25000 | 每條消息的最大字符數(如果超出則分塊) |
辯證法設置
| 鍵 | 默認值 | 描述 |
|---|---|---|
dialecticReasoningLevel | low | minimal、low、medium、high、max |
dialecticDynamic | true | 根據查詢複雜度自動提升推理級別。false = 固定級別 |
dialecticDepth | 1 | 每次查詢的辯證輪數(1-3) |
dialecticDepthLevels | -- | 可選的每輪級別數組,例如 ["low", "high"] |
dialecticMaxInputChars | 10000 | 辯證查詢輸入的最大字符數 |
上下文預算和注入
| 鍵 | 默認值 | 描述 |
|---|---|---|
contextTokens | uncapped | 組合基礎上下文注入(摘要 + 表示 + 卡片)的最大 token 數。可選上限 — 省略則不設上限,設置為整數以限制注入大小。 |
injectionFrequency | every-turn | every-turn 或 first-turn |
contextCadence | 1 | 上下文 API 調用之間的最小輪數 |
dialecticCadence | 2 | 辯證 LLM 調用之間的最小輪數(推薦 1–5) |
contextTokens 預算在注入時強制執行。如果會話摘要 + 表示 + 卡片超出預算,Honcho 會首先修剪摘要,然後是表示,保留卡片。這防止了在長會話中上下文膨脹。
記憶上下文清理
Honcho 在注入前會對 memory-context 塊進行清理,以防止提示注入和內容格式錯誤:
- 從用戶撰寫的結論中剝離 XML/HTML 標籤
- 規範化空白字符和控制字符
- 截斷超過
messageMaxChars的單個結論 - 轉義可能破壞系統提示結構的分隔符序列
此修復解決了原始用戶結論包含標記或特殊字符時可能損壞注入上下文塊的邊緣情況。
故障排除
"Honcho not configured"(Honcho 未配置)
運行 hermes honcho setup。確保 ~/.hermes/config.yaml 中包含 memory.provider: honcho。
會話間記憶未持久化
檢查 hermes honcho status -- 驗證 saveMessages: true 且 writeFrequency 不是 session(後者僅在退出時寫入)。
配置文件未獲得其對等體
創建時使用 --clone:hermes profile create <name> --clone。對於現有配置文件:hermes honcho sync。
儀表板中的觀察變更未反映
觀察配置在每次會話初始化時從服務器同步。在 Honcho UI 中更改設置後,啟動一個新會話。
消息被截斷
超過 messageMaxChars(默認 25k)的消息會自動分塊並添加 [continued] 標記。如果經常遇到此情況,請檢查工具結果或技能內容是否導致消息體積膨脹。
上下文注入過大
如果看到關於超出上下文預算的警告,請降低 contextTokens 或減少 dialecticDepth。當預算緊張時,會話摘要會被首先裁剪。
缺少會話摘要
會話摘要要求當前 Honcho 會話中至少存在一輪 prior turn(先前對話)。在冷啟動(新會話,無歷史記錄)時,摘要會被省略,Honcho 將改用冷啟動提示策略。
CLI 命令
| 命令 | 描述 |
|---|---|
hermes honcho setup | 交互式設置嚮導(雲/本地、身份、觀察、回憶、會話) |
hermes honcho status | 顯示已解析的配置、連接測試以及活躍配置文件的對等體信息 |
hermes honcho enable | 為活躍配置文件啟用 Honcho(如有需要則創建主機塊) |
hermes honcho disable | 為活躍配置文件禁用 Honcho |
hermes honcho peer | 顯示或更新對等體名稱(--user <name>、--ai <name>、--reasoning <level>) |
hermes honcho peers | 顯示所有配置文件中的對等體身份 |
hermes honcho mode | 顯示或設置回憶模式(hybrid、context、tools) |
hermes honcho tokens | 顯示或設置令牌預算(--context <N>、--dialectic <N>) |
hermes honcho sessions | 列出已知的目錄到會話名稱的映射 |
hermes honcho map <name> | 將當前工作目錄映射到 Honcho 會話名稱 |
hermes honcho identity | 設定 AI 對等體身份種子或顯示雙方對等體表示 |
hermes honcho sync | 為所有尚未擁有主機塊的 Hermes 配置文件創建主機塊 |
hermes honcho migrate | 從 OpenClaw 原生記憶遷移到 Hermes + Honcho 的分步遷移指南 |
hermes memory setup | 通用記憶提供者選擇器(選擇 "honcho" 將運行相同的嚮導) |
hermes memory status | 顯示活躍的記憶提供者及配置 |
hermes memory off | 禁用外部記憶提供者 |