Adolf memory: migrate Cognee -> Hindsight + Kimi quota tooling

Memory migration (H1-H5, kb#73-77,84):
- hindsight service in openai/docker-compose.yml: LLM via Kimi (cognee-llm
  wrapper), multilingual GPU embeddings (bge-m3 via ollama), jina multilingual
  reranker; pg0 + model cache persisted
- openclaw.json/shared-mcp.json: mcp.servers cognee -> hindsight (bank "adolf")
- hindsight-openclaw-plugin: forced-hook memory (before_prompt_build recall +
  agent_end retain), replacing cognee's hook layer; cognify-sweep dropped
- verified live: Russian retain->recall, cross-session recall, bank isolation

Kimi quota (kb#62):
- adolf-llm/server.js: LLM-free GET /usage route (Kimi managed-usage API)
- quota-command-openclaw-plugin: /quota readout command

Cognee stack left running (decommission is H4/kb#76). Kimi-quota-footer
auto-append abandoned (streamed Matrix replies bypass outbound hooks).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014t8Qg9gi7H7HtT8MncoXAB
This commit is contained in:
2026-07-15 19:53:21 +00:00
parent 544637c073
commit 4ac595a3a9
11 changed files with 1254 additions and 63 deletions

View File

@@ -43,8 +43,12 @@
// Margin above the server.js SSE heartbeat cadence (empty-content
// keepalive delta every ~25s once idle) so the idle watchdog never
// fires on long thinking/tool/MCP phases even if a heartbeat tick
// is delayed (kb #71).
timeoutSeconds: 300,
// is delayed (kb #71). Raised to 10min: long agentic turns (Cognee
// tool-loops / recalls up to 150s each) were producing no *content*
// progress for >300s, tripping "no response from model" and surfacing
// an error before the agent finished. The wrapper now also kills the
// kimi child on disconnect, so an over-timeout turn no longer orphans.
timeoutSeconds: 600,
models: [
{ id: "adolf", name: "Adolf", input: ["text", "image"] },
],
@@ -93,9 +97,9 @@
// OpenClaw's documented CLI-native alias for transport: "streamable-http".
mcp: {
servers: {
cognee: {
hindsight: {
type: "http",
url: "http://cognee-mcp:8000/mcp",
url: "http://hindsight:8888/mcp/adolf/",
},
"openclaw-tools": {
type: "http",
@@ -130,18 +134,56 @@
},
},
// Cognee memory plugin (P8) — installed external plugin under
// .openclaw/extensions/cognee-memory. Activation entry is required for the
// gateway to load it at startup (discovery alone is not enough).
// Memory plugins (P8). Activation entry is required for the gateway to
// load a plugin at startup (discovery alone is not enough).
plugins: {
entries: {
// Cognee memory plugin — DISABLED as of kb #75 (H3): superseded by
// hindsight-memory below. Left `enabled: false` rather than removed —
// full teardown (plugin dir, cognee/cognee-mcp/cognee-llm containers)
// is kb #75's H4, a separate step so the Hindsight path can be proven
// out first. Kept disabled (not both active) to avoid double
// prependContext injection and double persisted turns while both
// backends exist side by side.
"cognee-memory": {
enabled: true,
enabled: false,
// External (non-bundled) plugins must opt in to conversation + prompt-injection
// hook access explicitly. before_prompt_build => allowPromptInjection;
// agent_end => allowConversationAccess.
hooks: { allowConversationAccess: true, allowPromptInjection: true },
config: {},
// Throttle background cognify hard to stop it draining the Kimi quota:
// one cognify per dataset per hour (was 5 min default), and a longer
// persist timeout so /add doesn't fail-and-retry when cognee is busy.
config: {
sweepIntervalMs: 3600000, // 1h (default 300000 = 5min)
persistTimeoutMs: 20000, // 20s (default 8000)
},
},
// Hindsight memory plugin (kb #75, H3) — installed external plugin
// under .openclaw/extensions/hindsight-memory, bind-mounted read-only
// from openai/hindsight-openclaw-plugin (see that project's
// docker-compose.yml adolf.volumes). Structural successor to
// cognee-memory above: LLM-free recall inject (before_prompt_build) +
// async retain (agent_end) against the hindsight service, bank
// "adolf" (same bank the mcp.servers.hindsight tool surface above
// uses, so hook-based and tool-based memory stay one consistent
// store). No cognify/sweep config here — Hindsight's retain does
// extraction/consolidation server-side, so that whole class of
// config (sweepIntervalMs etc. above) doesn't apply.
"hindsight-memory": {
enabled: true,
// Same opt-in requirement as cognee-memory above: before_prompt_build
// => allowPromptInjection; agent_end => allowConversationAccess.
hooks: { allowConversationAccess: true, allowPromptInjection: true },
},
// Kimi quota readout (kb #62) — installed external plugin, bind-mounted
// read-only from openai/quota-command-openclaw-plugin (see that
// project's docker-compose.yml adolf.volumes) onto
// .openclaw/extensions/quota-command. Registers a `/quota` native
// command; no hooks, so no allowConversationAccess/allowPromptInjection
// opt-in needed.
"quota-command": {
enabled: true,
},
},
},