Install
openclaw skills install memhub使用 MemHub Protocol v0.1 读写用户的跨 Agent 统一记忆仓库。当用户要求记住信息、读取个人/项目上下文、生成 chatbot 注入文本、同步 Git 记忆仓库时使用。
openclaw skills install memhubMemHub 是一个无服务端、Git-first 的个人 AI 记忆协议。本 Skill 让 Agent 能够读取、写入和同步符合 MemHub Protocol v0.1 的记忆仓库。
使用本 Skill 当:
推荐设置:
export MEMHUB_REPO=/path/to/memhub-data
同步 setup 可选使用:
# GitHub Device Flow 已内置 MemHub OAuth App client id;普通用户通常无需设置
# Gitee 要做到用户只点确认授权,需要 MemHub OAuth Broker 保管 client_secret
export MEMHUB_GITEE_OAUTH_BROKER_URL=https://<your-broker-host>
# 开发者直连模式才需要 Gitee client secret;公开 skill 包不会内置 secret
export MEMHUB_GITEE_CLIENT_SECRET=...
# 如需覆盖内置 OAuth App,开发者可设置:
export MEMHUB_GITHUB_CLIENT_ID=...
export MEMHUB_GITEE_CLIENT_ID=...
# Token fallback
export MEMHUB_GITHUB_TOKEN=...
export MEMHUB_GITEE_TOKEN=...
如果未设置,脚本默认使用当前工作目录下的 ./memhub-data。
CLI 会自动读取当前目录 .env 和用户 home 目录 .env,且不会覆盖已经存在的进程环境变量。不要把 .env 提交到 Git。
本 Skill 提供一个 Python CLI:scripts/memhub.py。
# 初始化仓库
python scripts/memhub.py --repo ~/memhub-data init --name dateng --role "Product Manager"
# 读取上下文
python scripts/memhub.py --repo ~/memhub-data context
python scripts/memhub.py --repo ~/memhub-data context --pack brief
# 写入 inbox
python scripts/memhub.py --repo ~/memhub-data remember "用户偏好结构化直接的回答" --type preference --source agent
python scripts/memhub.py --repo ~/memhub-data remember "MemHub 采用 Git-first 架构" --type decision --project memhub --source agent
# 检查 inbox
python scripts/memhub.py --repo ~/memhub-data inbox list
python scripts/memhub.py --repo ~/memhub-data inbox list --status all
python scripts/memhub.py --repo ~/memhub-data inbox show <filename-or-id-fragment>
# 将 inbox 半自动归档到 canonical memory
python scripts/memhub.py --repo ~/memhub-data promote --dry-run
python scripts/memhub.py --repo ~/memhub-data promote --apply
python scripts/memhub.py --repo ~/memhub-data promote <filename-or-id-fragment> --apply
# 导出给 chatbot 的上下文
python scripts/memhub.py --repo ~/memhub-data export chatbot
# 同步 GitHub/Gitee(默认 OAuth;发布版应内置 GitHub/Gitee OAuth app 配置)
python scripts/memhub.py --repo ~/memhub-data sync setup github --repo-name mymemhub
python scripts/memhub.py --repo ~/memhub-data sync setup gitee --repo-name mymemhub
python scripts/memhub.py --repo ~/memhub-data sync setup github --auth token --repo-name mymemhub
python scripts/memhub.py --repo ~/memhub-data sync setup github --auth ssh --remote-method ssh --owner <login> --repo-name mymemhub --no-create
python scripts/memhub.py --repo ~/memhub-data sync status
python scripts/memhub.py --repo ~/memhub-data sync
MEMHUB_REPO 是用户记忆仓库;不要把用户记忆写入代码仓库。inbox,不要直接写 canonical memory。sync setup 会触发授权、创建仓库、修改 remote;只有用户明确要求配置/切换同步时才执行。如果当前任务需要用户长期偏好、项目上下文或跨设备最新记忆,执行:
python scripts/memhub.py --repo "$MEMHUB_REPO" sync
python scripts/memhub.py --repo "$MEMHUB_REPO" context --pack brief
sync 成功,再使用 context 输出。sync 失败,不要丢弃本地数据;可以继续读取本地 context,但必须告知用户“远端同步失败,当前上下文可能不是最新”。当用户明确要求记忆,或对话中形成稳定偏好/决策/事实时,写入 inbox:
python scripts/memhub.py --repo "$MEMHUB_REPO" remember "内容" --type fact --source agent
类型建议:
decision:明确决策preference:稳定偏好fact:事实knowledge:可复用知识/结论event:重要事件relation:人物/组织/工具关系constraint:约束convention:惯例写入后,如果仓库配置了 remote,执行:
python scripts/memhub.py --repo "$MEMHUB_REPO" sync
当用户说“配置同步”、“连接 GitHub/Gitee”、“换成 Gitee/GitHub 同步”时,才执行 setup。
python scripts/memhub.py --repo "$MEMHUB_REPO" sync setup github --repo-name mymemhub
MEMHUB_GITHUB_CLIENT_ID 或 --client-id。python scripts/memhub.py --repo "$MEMHUB_REPO" sync setup gitee --repo-name mymemhub
MEMHUB_GITEE_CLIENT_ID 和 MEMHUB_GITEE_CLIENT_SECRET,或对应参数。127.0.0.1:8765/callback。--no-browser 或 --manual-code。仅当用户明确选择高级方式时使用:
python scripts/memhub.py --repo "$MEMHUB_REPO" sync setup github --auth token --repo-name mymemhub
python scripts/memhub.py --repo "$MEMHUB_REPO" sync setup github --auth ssh --remote-method ssh --owner <login> --repo-name mymemhub --no-create
inbox、canonical 文件或 .git 历史。git pull --rebase 冲突,停止自动处理,报告冲突文件,让用户/Agent 单独修复。默认不要直接写 canonical memory。需要整理长期记忆时,先预览:
python scripts/memhub.py --repo "$MEMHUB_REPO" inbox list
python scripts/memhub.py --repo "$MEMHUB_REPO" promote --dry-run
确认归档目标合理后再执行:
python scripts/memhub.py --repo "$MEMHUB_REPO" promote --apply
python scripts/memhub.py --repo "$MEMHUB_REPO" sync
当前最小归档规则:
decision → projects/<project>/decisions.yamlpreference → identity/preferences.yamlconstraint → identity/constraints.yamlconvention → identity/conventions.yamlknowledge → knowledge/product.yamlfact / event → timeline/YYYY-MM.yaml不要写入:
如果对话中产生重要决策、偏好或事实:
promote --dry-run 给出归档建议。promote --apply。sync。SKILL.md、README、示例或提交历史。.memhub/secrets.yaml 必须保持本地忽略。SKILL.md、README.md、scripts/memhub.py、templates/context-pack.md.j2。__pycache__、.pyc、.git 或用户个人记忆数据。