云计算百科
云计算领域专业知识百科平台

【记忆】openclaw之Honcho 记忆系统

🧠 Honcho

Honcho 是一个开源的 AI 原生记忆库,提供托管服务,也可以本地部署使用,让智能体能够:

能力说明
🔗 跨会话记忆 每轮对话自动持久化,上下文可跨会话重置、压缩和渠道切换延续
👤 用户建模 自动维护用户的偏好、事实、沟通风格等档案
🤖 智能体建模 同时维护智能体自身的个性与习得行为
🔍 语义搜索 搜索过去对话中的观察结果和结论,而非仅仅当前会话
👨‍👩‍👧‍👦 多智能体感知 父智能体自动跟踪子智能体,并在子会话中作为观察者参与
🧠 形式逻辑推理 不仅存储数据,更通过演绎、归纳、溯因推导出深层结论
🏠 完全自托管 可本地运行,数据不出服务器,无需外部 API

Honcho 可以 与任何模型、任何框架、任何架构 配合使用,无论是简单的聊天机器人,还是复杂的多智能体系统。


概念

要理解 Honcho,首先需要掌握它的四个存储原语(Primal)和一个推理引擎。它们之间的层级关系如下:

#mermaid-svg-BAHKjAFF9NYWXFks{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-BAHKjAFF9NYWXFks .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-BAHKjAFF9NYWXFks .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-BAHKjAFF9NYWXFks .error-icon{fill:#552222;}#mermaid-svg-BAHKjAFF9NYWXFks .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-BAHKjAFF9NYWXFks .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-BAHKjAFF9NYWXFks .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-BAHKjAFF9NYWXFks .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-BAHKjAFF9NYWXFks .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-BAHKjAFF9NYWXFks .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-BAHKjAFF9NYWXFks .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-BAHKjAFF9NYWXFks .marker{fill:#333333;stroke:#333333;}#mermaid-svg-BAHKjAFF9NYWXFks .marker.cross{stroke:#333333;}#mermaid-svg-BAHKjAFF9NYWXFks svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-BAHKjAFF9NYWXFks p{margin:0;}#mermaid-svg-BAHKjAFF9NYWXFks .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-BAHKjAFF9NYWXFks .cluster-label text{fill:#333;}#mermaid-svg-BAHKjAFF9NYWXFks .cluster-label span{color:#333;}#mermaid-svg-BAHKjAFF9NYWXFks .cluster-label span p{background-color:transparent;}#mermaid-svg-BAHKjAFF9NYWXFks .label text,#mermaid-svg-BAHKjAFF9NYWXFks span{fill:#333;color:#333;}#mermaid-svg-BAHKjAFF9NYWXFks .node rect,#mermaid-svg-BAHKjAFF9NYWXFks .node circle,#mermaid-svg-BAHKjAFF9NYWXFks .node ellipse,#mermaid-svg-BAHKjAFF9NYWXFks .node polygon,#mermaid-svg-BAHKjAFF9NYWXFks .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-BAHKjAFF9NYWXFks .rough-node .label text,#mermaid-svg-BAHKjAFF9NYWXFks .node .label text,#mermaid-svg-BAHKjAFF9NYWXFks .image-shape .label,#mermaid-svg-BAHKjAFF9NYWXFks .icon-shape .label{text-anchor:middle;}#mermaid-svg-BAHKjAFF9NYWXFks .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-BAHKjAFF9NYWXFks .rough-node .label,#mermaid-svg-BAHKjAFF9NYWXFks .node .label,#mermaid-svg-BAHKjAFF9NYWXFks .image-shape .label,#mermaid-svg-BAHKjAFF9NYWXFks .icon-shape .label{text-align:center;}#mermaid-svg-BAHKjAFF9NYWXFks .node.clickable{cursor:pointer;}#mermaid-svg-BAHKjAFF9NYWXFks .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-BAHKjAFF9NYWXFks .arrowheadPath{fill:#333333;}#mermaid-svg-BAHKjAFF9NYWXFks .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-BAHKjAFF9NYWXFks .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-BAHKjAFF9NYWXFks .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-BAHKjAFF9NYWXFks .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-BAHKjAFF9NYWXFks .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-BAHKjAFF9NYWXFks .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-BAHKjAFF9NYWXFks .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-BAHKjAFF9NYWXFks .cluster text{fill:#333;}#mermaid-svg-BAHKjAFF9NYWXFks .cluster span{color:#333;}#mermaid-svg-BAHKjAFF9NYWXFks div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-BAHKjAFF9NYWXFks .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-BAHKjAFF9NYWXFks rect.text{fill:none;stroke-width:0;}#mermaid-svg-BAHKjAFF9NYWXFks .icon-shape,#mermaid-svg-BAHKjAFF9NYWXFks .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-BAHKjAFF9NYWXFks .icon-shape p,#mermaid-svg-BAHKjAFF9NYWXFks .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-BAHKjAFF9NYWXFks .icon-shape .label rect,#mermaid-svg-BAHKjAFF9NYWXFks .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-BAHKjAFF9NYWXFks .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-BAHKjAFF9NYWXFks .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-BAHKjAFF9NYWXFks :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}

Workspace 工作区顶层隔离容器

Peer: 用户

Peer: 智能体

Peer: 群组/想法

Session 会话 1

Session 会话 2

Session 会话 3

Messages 消息

Messages 消息

Messages 消息

Messages 消息

推理引擎后台异步处理

Representations可查询的表示

开发者 / 智能体查询

Workspace 工作区

🔒 隔离容器,不同应用或环境的数据互不干扰

Workspace 是顶层隔离单元。比如你可以为“客服机器人”创建一个工作区,为“个人助理”创建另一个工作区,两者的记忆完全隔离。

在 OpenClaw 集成中,默认工作区 ID 为 openclaw。


Peer 对等体

🧑‍🤝‍🧑 持久存在的实体——用户、智能体、对象、群组、想法……

Peer 是 Honcho 中最核心的概念。 每一个值得被记住的“存在”都是一个 Peer。它可以是:

  • 一个真实的用户(你)
  • 一个 AI 智能体(助手)
  • 一个群组(多个 Peer 的集合)
  • 甚至是一个“想法”或“项目”

每个 Peer 拥有独立的 表示(Representation),Honcho 通过推理不断更新这些表示,让它们越来越精准地反映实体的真实面貌。

💡 简单理解:Peer 就像 Honcho 给每个“角色”建立的一份动态档案,越用越懂你。


Session 会话

💬 Peer 之间的交互线程

Session 是 Peer 之间的一次连续对话,它有明确的时间边界:

  • 一个 Peer 可以参与多个会话
  • 多个 Peer 也可以在同一个会话中交互
  • Session 是消息的容器,也是上下文检索的基本单位

比如你和一个 AI 助手在 WhatsApp 上聊天的整个过程,就是一个 Session。


Message 消息

📝 触发推理的数据单元

消息不只是“聊天内容”——它可以是:

  • 对话中的一句话
  • 一个系统事件(如“用户上传了文件”)
  • 一条活动记录
  • 一份文档或日志

当你向 Honcho 写入消息时,它们会被立即存储,并进入后台推理队列。这种设计保证了写入操作的快速响应,同时让推理能力在后台安静地运转。


推理引擎:Honcho 的大脑

🧠 从数据中提取洞察,而非仅仅存储数据

Honcho 不仅仅是一个“记忆数据库”。它的推理引擎会异步处理所有消息,提取显式信息、推导隐含结论、识别模式、并推断行为背后的原因。


推理引擎运作

推理引擎是 Honcho 最具特色的部分。它使用自定义训练的模型执行形式逻辑推理,整个过程可以拆解为四个层次:

#mermaid-svg-bfBOJuiKWBwlu74W{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-bfBOJuiKWBwlu74W .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-bfBOJuiKWBwlu74W .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-bfBOJuiKWBwlu74W .error-icon{fill:#552222;}#mermaid-svg-bfBOJuiKWBwlu74W .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-bfBOJuiKWBwlu74W .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-bfBOJuiKWBwlu74W .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-bfBOJuiKWBwlu74W .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-bfBOJuiKWBwlu74W .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-bfBOJuiKWBwlu74W .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-bfBOJuiKWBwlu74W .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-bfBOJuiKWBwlu74W .marker{fill:#333333;stroke:#333333;}#mermaid-svg-bfBOJuiKWBwlu74W .marker.cross{stroke:#333333;}#mermaid-svg-bfBOJuiKWBwlu74W svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-bfBOJuiKWBwlu74W p{margin:0;}#mermaid-svg-bfBOJuiKWBwlu74W .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-bfBOJuiKWBwlu74W .cluster-label text{fill:#333;}#mermaid-svg-bfBOJuiKWBwlu74W .cluster-label span{color:#333;}#mermaid-svg-bfBOJuiKWBwlu74W .cluster-label span p{background-color:transparent;}#mermaid-svg-bfBOJuiKWBwlu74W .label text,#mermaid-svg-bfBOJuiKWBwlu74W span{fill:#333;color:#333;}#mermaid-svg-bfBOJuiKWBwlu74W .node rect,#mermaid-svg-bfBOJuiKWBwlu74W .node circle,#mermaid-svg-bfBOJuiKWBwlu74W .node ellipse,#mermaid-svg-bfBOJuiKWBwlu74W .node polygon,#mermaid-svg-bfBOJuiKWBwlu74W .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-bfBOJuiKWBwlu74W .rough-node .label text,#mermaid-svg-bfBOJuiKWBwlu74W .node .label text,#mermaid-svg-bfBOJuiKWBwlu74W .image-shape .label,#mermaid-svg-bfBOJuiKWBwlu74W .icon-shape .label{text-anchor:middle;}#mermaid-svg-bfBOJuiKWBwlu74W .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-bfBOJuiKWBwlu74W .rough-node .label,#mermaid-svg-bfBOJuiKWBwlu74W .node .label,#mermaid-svg-bfBOJuiKWBwlu74W .image-shape .label,#mermaid-svg-bfBOJuiKWBwlu74W .icon-shape .label{text-align:center;}#mermaid-svg-bfBOJuiKWBwlu74W .node.clickable{cursor:pointer;}#mermaid-svg-bfBOJuiKWBwlu74W .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-bfBOJuiKWBwlu74W .arrowheadPath{fill:#333333;}#mermaid-svg-bfBOJuiKWBwlu74W .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-bfBOJuiKWBwlu74W .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-bfBOJuiKWBwlu74W .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-bfBOJuiKWBwlu74W .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-bfBOJuiKWBwlu74W .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-bfBOJuiKWBwlu74W .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-bfBOJuiKWBwlu74W .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-bfBOJuiKWBwlu74W .cluster text{fill:#333;}#mermaid-svg-bfBOJuiKWBwlu74W .cluster span{color:#333;}#mermaid-svg-bfBOJuiKWBwlu74W div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-bfBOJuiKWBwlu74W .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-bfBOJuiKWBwlu74W rect.text{fill:none;stroke-width:0;}#mermaid-svg-bfBOJuiKWBwlu74W .icon-shape,#mermaid-svg-bfBOJuiKWBwlu74W .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-bfBOJuiKWBwlu74W .icon-shape p,#mermaid-svg-bfBOJuiKWBwlu74W .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-bfBOJuiKWBwlu74W .icon-shape .label rect,#mermaid-svg-bfBOJuiKWBwlu74W .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-bfBOJuiKWBwlu74W .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-bfBOJuiKWBwlu74W .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-bfBOJuiKWBwlu74W :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}

📤 输出

🧠 推理层

📥 输入

Messages消息队列

显式提取Explicit

演绎推理Deductive

归纳推理Inductive

溯因推理Abductive

Peer Card关键传记信息

整合去重/消歧

模式识别跨消息规律

行为解释最简推断

四种推理能力

推理类型说明示例
显式提取 提取用户直接陈述的内容 用户说“我是程序员” → 显式记录“职业:程序员”
演绎推理 从已有前提推导出必然结论 “用户说喜欢 Python” + “Python 是一种编程语言” → “用户掌握编程技能”
归纳推理 从多个消息中识别模式 用户多次询问性能优化 → “用户关注系统性能”
溯因推理 推断观察行为的最简单解释 用户频繁问“怎么做” → “用户处于学习阶段”

推理生成的数据结构大致如下:

{
"explicit": [
{ "content": "用户说:我喜欢用 Python 写脚本" }
],
"deductive": [
{
"premises": ["用户喜欢 Python", "Python 用于脚本编程"],
"conclusion": "用户具备脚本编程经验"
}
]
}

Token 批处理机制

Honcho 不会对每条消息单独运行推理(那样成本太高)。相反,它采用 Token 批处理 策略:

🔄 当某个 Peer 的待处理消息累积到约 1,000 token 时,触发一次批量推理。

这样既保证了推理成本可控,又确保每次推理有足够的上下文量,使结论更准确。


安装指南

Honcho 的安装方式取决于你的使用场景。

OpenClaw 插件安装

面向 OpenClaw 用户,只需三步即可获得跨所有渠道(WhatsApp、Telegram、Discord、Slack……)的记忆能力:

# 1️⃣ 安装插件
openclaw plugins install @honcho-ai/openclaw-honcho

# 2️⃣ 运行设置向导(交互式配置 API 密钥、迁移现有文件)
openclaw honcho setup

# 3️⃣ 重启网关
openclaw gateway –force

# 卸载
openclaw plugins uninstall openclaw-honcho

在这里插入图片描述 在这里插入图片描述

💡 自托管提示:如果你使用本地 Honcho 实例,在 setup 提示输入 API Key 时直接回车留空,然后将 Base URL 设置为 http://localhost:8000。


独立 SDK 安装

如果你在构建自己的应用(非 OpenClaw),选择适合的包管理器:

包管理器命令
Python (uv) uv add honcho-ai
Python (pip) pip install honcho-ai
TypeScript (npm) npm install honcho-ai
TypeScript (yarn) yarn add honcho-ai
TypeScript (pnpm) pnpm add honcho-ai

安装后,访问 app.honcho.dev 注册账号获取 API Key。新用户可获得 $100 免费额度 🎁。 在这里插入图片描述


配置详解

OpenClaw 插件配置

配置位于 ~/.openclaw/openclaw.json 的 plugins.entries["openclaw-honcho"].config 下:

{
"plugins": {
"entries": {
"openclaw-honcho": {
"config": {
"apiKey": "your-api-key", // 托管模式必填;自托管时删除此字段
"workspaceId": "openclaw", // 记忆隔离的工作区 ID
"baseUrl": "https://api.honcho.dev" // API 端点地址
}
}
}
}
}

配置项默认值说明
apiKey Honcho API 密钥(托管模式必填,自托管时省略)
workspaceId "openclaw" 工作区 ID,用于记忆隔离
baseUrl "https://api.honcho.dev" API 端点(自托管时改为本地地址)

自托管配置

Honcho 可以完全运行在本地,无需任何外部 API 依赖:

# 1️⃣ 按照 Honcho 自托管指南部署本地实例
git clone https://github.com/plastic-labs/honcho.git
cd honcho
cp docker-compose.yml.example docker-compose.yml
cp .env.template .env # fill in LLM_GEMINI_API_KEY / LLM_ANTHROPIC_API_KEY / LLM_OPENAI_API_KEY
docker compose up

# 2️⃣ 运行设置向导,将 Base URL 指向本地服务器
openclaw honcho setup
# 输入空的 API Key,Base URL 设为 http://localhost:8000

如果github比较慢,可以使用镜像网站:

git clone https://gitclone.com/github.com/plastic-labs/honcho.git

在这里插入图片描述

在这里插入图片描述

⚠️ 注意:自托管实例不需要 API Key。将 baseUrl 指向本地服务器地址(如 http://localhost:8000),并省略 apiKey 字段。


OpenClaw 集成:

插件安装后,记忆能力会自动生效,无需手动干预。它通过三个机制协同工作:

#mermaid-svg-qgvjOwjSEuQa5Wpi{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-qgvjOwjSEuQa5Wpi .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-qgvjOwjSEuQa5Wpi .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-qgvjOwjSEuQa5Wpi .error-icon{fill:#552222;}#mermaid-svg-qgvjOwjSEuQa5Wpi .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-qgvjOwjSEuQa5Wpi .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-qgvjOwjSEuQa5Wpi .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-qgvjOwjSEuQa5Wpi .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-qgvjOwjSEuQa5Wpi .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-qgvjOwjSEuQa5Wpi .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-qgvjOwjSEuQa5Wpi .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-qgvjOwjSEuQa5Wpi .marker{fill:#333333;stroke:#333333;}#mermaid-svg-qgvjOwjSEuQa5Wpi .marker.cross{stroke:#333333;}#mermaid-svg-qgvjOwjSEuQa5Wpi svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-qgvjOwjSEuQa5Wpi p{margin:0;}#mermaid-svg-qgvjOwjSEuQa5Wpi .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-qgvjOwjSEuQa5Wpi .cluster-label text{fill:#333;}#mermaid-svg-qgvjOwjSEuQa5Wpi .cluster-label span{color:#333;}#mermaid-svg-qgvjOwjSEuQa5Wpi .cluster-label span p{background-color:transparent;}#mermaid-svg-qgvjOwjSEuQa5Wpi .label text,#mermaid-svg-qgvjOwjSEuQa5Wpi span{fill:#333;color:#333;}#mermaid-svg-qgvjOwjSEuQa5Wpi .node rect,#mermaid-svg-qgvjOwjSEuQa5Wpi .node circle,#mermaid-svg-qgvjOwjSEuQa5Wpi .node ellipse,#mermaid-svg-qgvjOwjSEuQa5Wpi .node polygon,#mermaid-svg-qgvjOwjSEuQa5Wpi .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-qgvjOwjSEuQa5Wpi .rough-node .label text,#mermaid-svg-qgvjOwjSEuQa5Wpi .node .label text,#mermaid-svg-qgvjOwjSEuQa5Wpi .image-shape .label,#mermaid-svg-qgvjOwjSEuQa5Wpi .icon-shape .label{text-anchor:middle;}#mermaid-svg-qgvjOwjSEuQa5Wpi .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-qgvjOwjSEuQa5Wpi .rough-node .label,#mermaid-svg-qgvjOwjSEuQa5Wpi .node .label,#mermaid-svg-qgvjOwjSEuQa5Wpi .image-shape .label,#mermaid-svg-qgvjOwjSEuQa5Wpi .icon-shape .label{text-align:center;}#mermaid-svg-qgvjOwjSEuQa5Wpi .node.clickable{cursor:pointer;}#mermaid-svg-qgvjOwjSEuQa5Wpi .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-qgvjOwjSEuQa5Wpi .arrowheadPath{fill:#333333;}#mermaid-svg-qgvjOwjSEuQa5Wpi .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-qgvjOwjSEuQa5Wpi .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-qgvjOwjSEuQa5Wpi .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-qgvjOwjSEuQa5Wpi .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-qgvjOwjSEuQa5Wpi .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-qgvjOwjSEuQa5Wpi .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-qgvjOwjSEuQa5Wpi .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-qgvjOwjSEuQa5Wpi .cluster text{fill:#333;}#mermaid-svg-qgvjOwjSEuQa5Wpi .cluster span{color:#333;}#mermaid-svg-qgvjOwjSEuQa5Wpi div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-qgvjOwjSEuQa5Wpi .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-qgvjOwjSEuQa5Wpi rect.text{fill:none;stroke-width:0;}#mermaid-svg-qgvjOwjSEuQa5Wpi .icon-shape,#mermaid-svg-qgvjOwjSEuQa5Wpi .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-qgvjOwjSEuQa5Wpi .icon-shape p,#mermaid-svg-qgvjOwjSEuQa5Wpi .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-qgvjOwjSEuQa5Wpi .icon-shape .label rect,#mermaid-svg-qgvjOwjSEuQa5Wpi .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-qgvjOwjSEuQa5Wpi .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-qgvjOwjSEuQa5Wpi .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-qgvjOwjSEuQa5Wpi :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}

💾 存储

🧠 Honcho 记忆系统

🤖 OpenClaw 智能体

👤 用户交互

用户发送消息

AI 处理

生成回复

消息观察器持久化每轮对话

上下文注入器before_prompt_build 钩子

AI 工具集数据检索 + 问答

用户 Peer偏好·事实·风格

智能体 Peer个性·习得行为

双 Peer 模型

Honcho 为每次对话维护 两套独立表示:

  • 用户 Peer:存储用户的偏好、事实、沟通风格
  • 智能体 Peer:存储智能体的个性、习得行为

每个 OpenClaw 智能体拥有自己的 Honcho Peer(agent-{id}),多智能体工作区中各智能体的记忆保持隔离,互不干扰。


多智能体感知

OpenClaw 支持主智能体生成子智能体处理专门任务。Honcho 插件完全感知这一层次结构:

#mermaid-svg-Awi0wEoaBJFVYw0X{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-Awi0wEoaBJFVYw0X .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-Awi0wEoaBJFVYw0X .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-Awi0wEoaBJFVYw0X .error-icon{fill:#552222;}#mermaid-svg-Awi0wEoaBJFVYw0X .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-Awi0wEoaBJFVYw0X .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-Awi0wEoaBJFVYw0X .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-Awi0wEoaBJFVYw0X .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-Awi0wEoaBJFVYw0X .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-Awi0wEoaBJFVYw0X .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-Awi0wEoaBJFVYw0X .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-Awi0wEoaBJFVYw0X .marker{fill:#333333;stroke:#333333;}#mermaid-svg-Awi0wEoaBJFVYw0X .marker.cross{stroke:#333333;}#mermaid-svg-Awi0wEoaBJFVYw0X svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-Awi0wEoaBJFVYw0X p{margin:0;}#mermaid-svg-Awi0wEoaBJFVYw0X .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-Awi0wEoaBJFVYw0X .cluster-label text{fill:#333;}#mermaid-svg-Awi0wEoaBJFVYw0X .cluster-label span{color:#333;}#mermaid-svg-Awi0wEoaBJFVYw0X .cluster-label span p{background-color:transparent;}#mermaid-svg-Awi0wEoaBJFVYw0X .label text,#mermaid-svg-Awi0wEoaBJFVYw0X span{fill:#333;color:#333;}#mermaid-svg-Awi0wEoaBJFVYw0X .node rect,#mermaid-svg-Awi0wEoaBJFVYw0X .node circle,#mermaid-svg-Awi0wEoaBJFVYw0X .node ellipse,#mermaid-svg-Awi0wEoaBJFVYw0X .node polygon,#mermaid-svg-Awi0wEoaBJFVYw0X .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-Awi0wEoaBJFVYw0X .rough-node .label text,#mermaid-svg-Awi0wEoaBJFVYw0X .node .label text,#mermaid-svg-Awi0wEoaBJFVYw0X .image-shape .label,#mermaid-svg-Awi0wEoaBJFVYw0X .icon-shape .label{text-anchor:middle;}#mermaid-svg-Awi0wEoaBJFVYw0X .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-Awi0wEoaBJFVYw0X .rough-node .label,#mermaid-svg-Awi0wEoaBJFVYw0X .node .label,#mermaid-svg-Awi0wEoaBJFVYw0X .image-shape .label,#mermaid-svg-Awi0wEoaBJFVYw0X .icon-shape .label{text-align:center;}#mermaid-svg-Awi0wEoaBJFVYw0X .node.clickable{cursor:pointer;}#mermaid-svg-Awi0wEoaBJFVYw0X .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-Awi0wEoaBJFVYw0X .arrowheadPath{fill:#333333;}#mermaid-svg-Awi0wEoaBJFVYw0X .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-Awi0wEoaBJFVYw0X .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-Awi0wEoaBJFVYw0X .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-Awi0wEoaBJFVYw0X .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-Awi0wEoaBJFVYw0X .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-Awi0wEoaBJFVYw0X .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-Awi0wEoaBJFVYw0X .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-Awi0wEoaBJFVYw0X .cluster text{fill:#333;}#mermaid-svg-Awi0wEoaBJFVYw0X .cluster span{color:#333;}#mermaid-svg-Awi0wEoaBJFVYw0X div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-Awi0wEoaBJFVYw0X .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-Awi0wEoaBJFVYw0X rect.text{fill:none;stroke-width:0;}#mermaid-svg-Awi0wEoaBJFVYw0X .icon-shape,#mermaid-svg-Awi0wEoaBJFVYw0X .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-Awi0wEoaBJFVYw0X .icon-shape p,#mermaid-svg-Awi0wEoaBJFVYw0X .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-Awi0wEoaBJFVYw0X .icon-shape .label rect,#mermaid-svg-Awi0wEoaBJFVYw0X .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-Awi0wEoaBJFVYw0X .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-Awi0wEoaBJFVYw0X .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-Awi0wEoaBJFVYw0X :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}

spawn

spawn

observeMe: falseobserveOthers: true

observeMe: falseobserveOthers: true

子会话 Session B

子智能体消息

子会话 Session A

子智能体消息

父会话 Session P

父智能体消息

父智能体 Peeragent-parent-001

子智能体 Peeragent-child-001

子智能体 Peeragent-child-002

  • 自动检测:当 OpenClaw 生成子智能体时,插件通过 subagent_spawned 钩子跟踪父子关系
  • 父作为观察者:父智能体被添加为子智能体 Honcho 会话中的静默观察者(observeMe: false, observeOthers: true)
  • 完整可见性:父智能体可以看到子智能体的行为,但其自身消息不会被错误归入子会话

AI 工具集

Honcho 为智能体注册了两类工具,可在对话期间按需调用:

📊 数据检索(快速,无需 LLM 调用)
工具作用
honcho_context 跨会话的完整用户表示。detail='card' 获取关键事实,'full' 获取广泛表示
honcho_search_conclusions 对已存储结论进行语义向量搜索,按相关性排序
honcho_search_messages 跨会话查找消息,支持按发送者、日期或元数据过滤
honcho_session 当前会话历史和摘要,支持会话内语义搜索
💬 问答(由 LLM 驱动)
工具作用
honcho_ask 向 Honcho 询问有关用户的问题。depth='quick' 用于事实查询,'thorough' 用于综合分析

🎯 工具选择原则:简单事实查询用检索工具,开放性问题用 honcho_ask。


CLI 命令

OpenClaw 提供了以下 Honcho 命令行工具:

命令说明
openclaw honcho setup 配置 API 密钥并迁移现有记忆文件
openclaw honcho status 检查 Honcho 服务连接状态
openclaw honcho ask "问题" 向 Honcho 询问有关用户的信息
openclaw honcho search "查询" -k 10 -d 0.8 对记忆进行语义搜索(-k 指定 TopK,-d 指定最大语义距离)

迁移现有记忆

如果你已经在使用 OpenClaw 的工作区记忆文件(USER.md、MEMORY.md、IDENTITY.md、memory/、canvas/ 等),openclaw honcho setup 会检测并提供非破坏性迁移。

迁移映射

类别文件上传目标
用户/所有者文件 USER.md、IDENTITY.md、MEMORY.md、memory/、canvas/ Owner Peer
智能体/自身文件 SOUL.md、AGENTS.md、TOOLS.md、BOOTSTRAP.md OpenClaw Peer

✅ 非破坏性保证:文件会被上传到 Honcho,但原始文件永远不会被删除或移动。平台元数据(对话信息、发送者头信息等)在保存前会被剥离,只保留有意义的正文内容。


SDK 编程使用

如果你在构建自定义 AI 应用,Honcho SDK 提供了完整的编程接口。以下是核心流程:

#mermaid-svg-XLlWgbbYeDlOTxrc{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-XLlWgbbYeDlOTxrc .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-XLlWgbbYeDlOTxrc .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-XLlWgbbYeDlOTxrc .error-icon{fill:#552222;}#mermaid-svg-XLlWgbbYeDlOTxrc .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-XLlWgbbYeDlOTxrc .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-XLlWgbbYeDlOTxrc .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-XLlWgbbYeDlOTxrc .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-XLlWgbbYeDlOTxrc .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-XLlWgbbYeDlOTxrc .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-XLlWgbbYeDlOTxrc .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-XLlWgbbYeDlOTxrc .marker{fill:#333333;stroke:#333333;}#mermaid-svg-XLlWgbbYeDlOTxrc .marker.cross{stroke:#333333;}#mermaid-svg-XLlWgbbYeDlOTxrc svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-XLlWgbbYeDlOTxrc p{margin:0;}#mermaid-svg-XLlWgbbYeDlOTxrc .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-XLlWgbbYeDlOTxrc .cluster-label text{fill:#333;}#mermaid-svg-XLlWgbbYeDlOTxrc .cluster-label span{color:#333;}#mermaid-svg-XLlWgbbYeDlOTxrc .cluster-label span p{background-color:transparent;}#mermaid-svg-XLlWgbbYeDlOTxrc .label text,#mermaid-svg-XLlWgbbYeDlOTxrc span{fill:#333;color:#333;}#mermaid-svg-XLlWgbbYeDlOTxrc .node rect,#mermaid-svg-XLlWgbbYeDlOTxrc .node circle,#mermaid-svg-XLlWgbbYeDlOTxrc .node ellipse,#mermaid-svg-XLlWgbbYeDlOTxrc .node polygon,#mermaid-svg-XLlWgbbYeDlOTxrc .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-XLlWgbbYeDlOTxrc .rough-node .label text,#mermaid-svg-XLlWgbbYeDlOTxrc .node .label text,#mermaid-svg-XLlWgbbYeDlOTxrc .image-shape .label,#mermaid-svg-XLlWgbbYeDlOTxrc .icon-shape .label{text-anchor:middle;}#mermaid-svg-XLlWgbbYeDlOTxrc .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-XLlWgbbYeDlOTxrc .rough-node .label,#mermaid-svg-XLlWgbbYeDlOTxrc .node .label,#mermaid-svg-XLlWgbbYeDlOTxrc .image-shape .label,#mermaid-svg-XLlWgbbYeDlOTxrc .icon-shape .label{text-align:center;}#mermaid-svg-XLlWgbbYeDlOTxrc .node.clickable{cursor:pointer;}#mermaid-svg-XLlWgbbYeDlOTxrc .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-XLlWgbbYeDlOTxrc .arrowheadPath{fill:#333333;}#mermaid-svg-XLlWgbbYeDlOTxrc .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-XLlWgbbYeDlOTxrc .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-XLlWgbbYeDlOTxrc .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-XLlWgbbYeDlOTxrc .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-XLlWgbbYeDlOTxrc .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-XLlWgbbYeDlOTxrc .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-XLlWgbbYeDlOTxrc .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-XLlWgbbYeDlOTxrc .cluster text{fill:#333;}#mermaid-svg-XLlWgbbYeDlOTxrc .cluster span{color:#333;}#mermaid-svg-XLlWgbbYeDlOTxrc div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-XLlWgbbYeDlOTxrc .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-XLlWgbbYeDlOTxrc rect.text{fill:none;stroke-width:0;}#mermaid-svg-XLlWgbbYeDlOTxrc .icon-shape,#mermaid-svg-XLlWgbbYeDlOTxrc .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-XLlWgbbYeDlOTxrc .icon-shape p,#mermaid-svg-XLlWgbbYeDlOTxrc .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-XLlWgbbYeDlOTxrc .icon-shape .label rect,#mermaid-svg-XLlWgbbYeDlOTxrc .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-XLlWgbbYeDlOTxrc .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-XLlWgbbYeDlOTxrc .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-XLlWgbbYeDlOTxrc :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}

🔹 4. 查询推理

user.chat('关于这位用户我需要知道什么?')

📤 获得综合洞察

🔹 3. 会话与消息

创建 Sessionsession = honcho.session('id')

session.add_peers([user, assistant])

session.add_messages(messages)

🔹 2. 创建 Peer

user = honcho.peer('user')

assistant = honcho.peer('assistant')

🔹 1. 初始化

创建 Honcho 客户端传入 workspace_id + api_key

快速开始

from honcho import Honcho

# 1️⃣ 初始化客户端
honcho = Honcho(
workspace_id="my-workspace",
api_key="your-api-key"
)

# 2️⃣ 创建 Peer(为每个参与者创建)
user = honcho.peer("user-123")
assistant = honcho.peer("assistant-001")

# 3️⃣ 创建会话并添加消息
session = honcho.session("conversation-001")
session.add_peers([user, assistant])

messages = [
user.message("我登录账户时遇到了问题"),
assistant.message("我可以帮你。你看到了什么错误信息?"),
user.message("它说'凭据无效',但我确定密码是对的")
]
session.add_messages(messages)

# 4️⃣ 查询推理结果
response = user.chat("关于这个用户,我需要知道什么?简要概括")
print(response)

⏱️ 处理延迟:Honcho 需要少量时间处理消息。可以通过 honcho.status() 方法检查队列状态。

获取上下文

context() 方法是从会话中检索格式化上下文的主要接口,可直接用于 LLM 集成:

# 基础用法
context = session.context()

# 限制 token 数量
context = session.context(tokens=1500)

# 包含用户表示,并进行语义搜索
context = session.context(
tokens=2000,
peer_target="user-123", # 包含该用户的表示
search_query="用户的编程偏好", # 语义搜索
search_top_k=10,
include_most_frequent=True,
max_conclusions=25
)

上下文参数一览
参数类型说明
summary bool 是否包含摘要(默认 true)
tokens int 上下文最大 token 数
peer_target str 指定要包含表示的 Peer ID
peer_perspective str 指定视角的 Peer ID(需配合 peer_target)
search_query str 语义搜索查询(需配合 peer_target)
search_top_k int 返回结果数(1-100)
search_max_distance float 最大语义距离(0.0-1.0)
include_most_frequent bool 是否包含最频繁结论
max_conclusions int 最大结论数(1-100)

LLM 集成示例

SessionContext 对象提供了 to_openai() 和 to_anthropic() 方法,可无缝集成主流 LLM API:

import openai
from honcho import Honcho

honcho = Honcho()
openai_client = openai.OpenAI()

session = honcho.session("support-chat")
user = honcho.peer("user-123")
assistant = honcho.peer("support-bot")

# 添加对话历史
session.add_messages([
user.message("我登录账户遇到了问题"),
assistant.message("我可以帮你。你看到了什么错误信息?"),
user.message("它说'凭据无效'但我确定密码是对的")
])

# 获取上下文并转换为 OpenAI 格式
messages = session.context(tokens=2000).to_openai(assistant=assistant)

# 追加新用户消息
messages.append({"role": "user", "content": "你能重置我的密码吗?"})

# 调用 OpenAI
response = openai_client.chat.completions.create(
model="gpt-4",
messages=messages
)

# 将 AI 响应写回 Honcho
ai_response = response.choices[0].message.content
session.add_messages([assistant.message(ai_response)])

print(f"助手回复:{ai_response}")


Honcho vs 内置记忆 —— 对比一览

OpenClaw 默认通过工作区中的 Markdown 文件实现记忆。Honcho 提供了基于专用服务的替代方案,两者可以协同工作而非互斥。

维度内置 / QMDHoncho
存储介质 工作区 Markdown 文件 专用服务(本地或托管)
跨会话记忆 通过记忆文件手动管理 自动,内置
用户建模 手动写入 MEMORY.md 自动创建并更新档案
搜索方式 向量 + 关键词(混合) 基于观察结果的语义搜索
多智能体感知 不跟踪父子关系 原生父/子感知
推理能力 形式逻辑推理(演绎、归纳、溯因)
依赖项 无(内置)或 QMD 二进制 安装 Honcho 插件
学习能力 静态 持续学习,随时间演进

高级用法:与 QMD 协同工作

Honcho 插件在配置了 QMD 记忆后端时,会自动暴露 memory_search 和 memory_get 工具,实现 Honcho 推理记忆 + QMD 本地文件检索 的双重能力。

// ~/.openclaw/openclaw.json
{
"memory": {
"backend": "qmd" // 启用 QMD 后端
}
}

配置完成后,你将同时拥有:

工具来源说明
honcho_* Honcho 跨会话记忆、用户建模、逻辑推理
memory_search QMD 搜索本地 Markdown 文件
memory_get QMD 获取特定文件内容

常见问题解决

openclaw honcho setup 报错:

[openclaw] Could not start the CLI.
[openclaw] Reason: Unknown command: openclaw honcho. No built-in command or plugin CLI metadata owns "honcho".
[openclaw] Debug: set OPENCLAW_DEBUG=1 to include the stack trace.
[openclaw] Try: openclaw doctor
[openclaw] Help: openclaw –help

使用如下命令查看:

openclaw plugins inspect openclaw-honcho 2>&1 | tail -30

如下图所示: 在这里插入图片描述 该插件当前处于禁用状态,原因是内存槽位已被内置的 memory-core 占用。Honcho 本身属于内存类插件,同一时间仅允许一个内存插件处于激活状态。 所以需要先关闭(禁用)memory-core插件。 在这里插入图片描述 在这里插入图片描述

✨ Honcho 的独特之处

Honcho 不是另一个“对话历史数据库”。它是一个 持续学习的推理系统,能够从对话中提取深层洞察。

赞(0)
未经允许不得转载:网硕互联帮助中心 » 【记忆】openclaw之Honcho 记忆系统
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!