| `honcho_conclude` | 否 | 极低 | 写入或删除持久事实;传入 `peer: "ai"` 用于 AI 自我认知 |
`honcho_profile`
读取或更新对等体名片——精选的关键事实(姓名、角色、偏好、沟通风格)。传入 card: [...] 进行更新;省略则为读取。无 LLM 调用。
`honcho_search`
针对特定对等体的已存储上下文进行语义搜索。返回按相关性排序的原始摘录,不做综合。默认 800 token,上限 2000。当你需要特定的历史事实自行推理,而不是一个综合答案时适用。
`honcho_context`
从 Honcho 获取完整会话上下文快照——会话摘要、对等体表征、对等体名片以及近期消息。无 LLM 调用。当你想一次性查看 Honcho 对当前会话和对等体所知的一切时使用。
`honcho_reasoning`
由 Honcho 的辩证推理引擎回答自然语言问题(在 Honcho 后端进行 LLM 调用)。成本更高,质量更高。传入 reasoning_level 控制深度:minimal(快速/廉价)→ low → medium → high → max(彻底)。省略则使用已配置的默认值(low)。用于对用户的行为模式、目标或当前状态进行综合理解。
`honcho_conclude`
写入或删除关于某个对等体的持久结论。传入 conclusion: "..." 进行创建。传入 delete_id: "..." 删除某条结论(用于移除 PII——Honcho 会随时间自我修正错误结论,因此删除仅在进行 PII 移除时需要)。两者必须恰好传入其一。
双向对等体定向
全部 5 个工具都接受可选的 peer 参数:
peer: "user"(默认)—— 操作用户对等体
peer: "ai" —— 操作此配置文件的 AI 对等体
peer: "" —— 工作区中的任意对等体 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
智能体使用模式
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=""
好的结论:「偏好代码示例而非文字解释」「在做一个 Rust 异步项目,持续到 2026 年 4 月」
坏的结论:「用户说了些关于 Rust 的事」(太模糊)、「用户看起来懂技术」(已在表征中)
当用户询问过去的上下文/你需要回忆细节时
honcho_search query="" → fast, no LLM, good for specific facts
honcho_context → full snapshot with summary + messages
honcho_reasoning query="" → synthesized answer, use when search isn't enough
使用场景 `peer: "ai"`
使用 AI 对等体定向来构建和查询智能体自身的自我认知:
honcho_conclude conclusion="I tend to be verbose when explaining architecture" peer="ai" —— 自我修正
honcho_reasoning query="How do I typically handle ambiguous requests?" peer="ai" —— 自我审计
honcho_profile peer="ai" —— 查看自己的身份名片
何时不调用工具
在 hybrid 和 context 模式下,基础上下文(用户表征 + 名片 + 会话摘要)会在每轮之前自动注入。不要重复获取已注入的内容。仅在以下情况调用工具:
你需要已注入上下文中没有的内容
用户明确要求你回忆或检查记忆
你正在就新内容写入结论
节奏感知
工具端的 honcho_reasoning 与自动注入辩证共享相同的成本。在一次显式工具调用之后,自动注入节奏会重置——避免同一轮被重复计费。
配置参考
配置文件:$HERMES_HOME/honcho.json(配置文件本地)或 ~/.honcho/config.json(全局)。
关键设置
| 键 | 默认值 | 说明 |
| `apiKey` | -- | API 密钥([获取一个](https://app.honcho.dev)) |
| `baseUrl` | -- | 自托管 Honcho 的基础 URL |
| `peerName` | -- | 用户对等体身份 |
| `aiPeer` | 宿主键 | AI 对等体身份 |
| `workspace` | 宿主键 | 共享工作区 ID |
| `recallMode` | `hybrid` | `hybrid`、`context` 或 `tools` |
| `observation` | 全部开启 | 逐对等体的 `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` | 无上限 | 基础上下文合并注入(摘要 + 表征 + 名片)的最大 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"
运行 hermes honcho setup。确保 ~/.hermes/config.yaml 中包含 memory.provider: honcho。
记忆未跨会话持久化
检查 hermes honcho status —— 确认 saveMessages: true 且 writeFrequency 不是 session(该值仅在退出时写入)。
配置文件未获得自己的对等体
创建时使用 --clone:hermes profile create --clone。对于现有配置文件:hermes honcho sync。
仪表盘中的观察设置未生效
观察配置在每次会话初始化时从服务器同步。在 Honcho UI 中更改设置后,请启动新会话。
消息被截断
超过 messageMaxChars(默认 25k)的消息会自动分块并带 [continued] 标记。如果频繁遇到,请检查是否是工具结果或技能内容导致消息过大。
上下文注入过大
如果看到上下文预算超限的警告,请降低 contextTokens 或减小 dialecticDepth。预算紧张时会先裁剪会话摘要。
会话摘要缺失
会话摘要要求当前 Honcho 会话中至少存在一轮先前的对话。在冷启动时(新会话、无历史),摘要会被省略,Honcho 会改用冷启动提示策略。
CLI 命令
| 命令 | 说明 |
| `hermes honcho setup` | 交互式设置向导(云端/本地、身份、观察、召回、会话) |
| `hermes honcho status` | 显示已解析配置、连接测试、当前配置文件的对等体信息 |
| `hermes honcho enable` | 为当前配置文件启用 Honcho(必要时创建宿主块) |
| `hermes honcho disable` | 为当前配置文件禁用 Honcho |
| `hermes honcho peer` | 显示或更新对等体名称(`--user `、`--ai `、`--reasoning `) |
| `hermes honcho peers` | 显示所有配置文件的对等体身份 |
| `hermes honcho mode` | 显示或设置召回模式(`hybrid`、`context`、`tools`) |
| `hermes honcho tokens` | 显示或设置 token 预算(`--context `、`--dialectic `) |
| `hermes honcho sessions` | 列出已知的目录到会话名称的映射 |
| `hermes honcho map ` | 将当前工作目录映射到某个 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` | 禁用外部记忆提供程序 |