oGMemory Claude Code 插件

将 Claude Code 对话同步到 oGMemory,在用户每次提问时检索相关记忆;成功工具调用的 I/O 会经 PostToolUserole: tool 补录到同一会话,与 after_turn 基于 transcript 的 user/assistant 行互补。call_compose.py / call_after_turn.pycall_add_session_message.py 复用 scripts/ogm_plugin_request.pybase_api_url、请求头/身份、base_ctx),并在各脚本内将 claude-plugin/scripts 置前 sys.path 以稳定 import ogm_plugin_request

工作原理

Hook 脚本 调用接口 方向 说明
PostToolUse call_add_session_message.py /api/v1/sessions/{id}/messages 写入 有副作用 的工具(Write / Edit / MultiEdit / Bash / NotebookEdit),matcher + 脚本白名单,避免 Read/Glob/Grep 刷屏;摘要过长截断
UserPromptSubmit call_compose.py /api/v1/compose 读取 用户提交 prompt 时检索相关记忆,注入 additionalContext
Stop call_after_turn.py (async) 或 stop_detach.sh /api/v1/after_turn 写入 对话结束增量同步 transcript 到 oGMemory(JSONL 字节偏移),支持 headless -p 模式
PreCompact call_after_turn.py /api/v1/after_turn 写入 压缩前同步,防未落盘内容丢失

配置与鉴权(可选)

  • 基址: 默认 http://localhost:8090,可用 OG_MEMORY_URL 覆盖。
  • 与 OpenClaw 对齐的密钥:claude 进程环境中设置 OG_AUTH_API_KEY 时,请求会附带 X-API-KeyX-Account-ID / X-User-ID(身份解析见 ogm_plugin_request.py:可选 OgMemConfig 或环境变量回退)。服务端无密钥鉴权时可不设置,禁止将密钥提交到仓库

Skills

命令 说明
/og-compose <关键词> 内联 bash 调用 /api/v1/compose,返回完整记忆上下文
/og-add-history 内联 bash 调用 /api/v1/after_turn,导入本仓库历史对话(有成本提示与去重)

英文说明: 见同目录 README-EN.md

安装

通过 Marketplace 安装(推荐)

/plugin marketplace add https://gitcode.com/opengauss/oGMemory.git#dev
/plugin install og-memory@og-memory
/reload-plugins

更新时:

/plugin marketplace update og-memory
/plugin install og-memory@og-memory
/reload-plugins

本地开发

claude --plugin-dir ./claude-plugin
# 可选: --debug

前置条件

  • oGMemory 服务可访问,例如 curl -s http://localhost:8090/api/v1/health 返回 status: ok(地址随 OG_MEMORY_URL 调整)
  • Python 3;hook 仅标准库
  • 单测(在仓库根):pytest tests/unit/claude_plugin/test_plugin_scripts.py -q

快速验证

  1. /plugins 中可看到已安装的 og-memory
  2. 对话多轮后执行 /og-compose marketplace plugin,能搜到此前内容即读侧正常;工具调用后服务侧同会话应出现 role: tool 补录;~/.claude/projects/.../*.jsonl.ingest-offset 可反映 after_turn 写入。

调试

  • 执行 /reload-plugins,应看到 1 个 plugin 与若干 hooks。
  • 使用 --debug,在输出中搜:[call_compose][call_after_turn][call_add_session_message]
  • PreCompactStop 的写入可对照上述 ingest-offset 与 transcript 同目录的侧车文件。