Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Automatically fetches and injects Whisper memory context before responses and ingests conversation turns after, optimizing token usage for Telegram agents.
Automatically fetches and injects Whisper memory context before responses and ingests conversation turns after, optimizing token usage for Telegram agents.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run.
This skill is a thin wrapper designed to make "automatic memory" easy: get_whisper_context(user_id, session_id, current_query) for pre-response context injection ingest_whisper_turn(user_id, session_id, user_msg, assistant_msg) for post-response ingestion It defaults to the token-saving settings you almost always want: compress: true compression_strategy: "delta" use_cache: true include_memories: true It also persists the last context_hash locally (per api_url + project + user_id + session_id) so delta compression works by default without you needing to pass previous_context_hash.
npx clawhub@latest install usewhisper-autohook
Set env vars wherever OpenClaw runs your agent: WHISPER_CONTEXT_API_URL=https://context.usewhisper.dev WHISPER_CONTEXT_API_KEY=YOUR_KEY WHISPER_CONTEXT_PROJECT=openclaw-yourname Notes: WHISPER_CONTEXT_API_URL is optional (defaults to https://context.usewhisper.dev). The helper will auto-create the project on first use if it does not exist yet.
Add this to your agent's system instruction (or equivalent): Before you think or respond to any message: 1) Call get_whisper_context with: user_id = "telegram:{from_id}" session_id = "telegram:{chat_id}" current_query = the user's message text 2) If the returned context is not empty, prepend it to your prompt as: "Relevant long-term memory:\n{context}\n\nNow respond to:\n{user_message}" After you generate your final response: 1) Call ingest_whisper_turn with the same user_id and session_id and: user_msg = the full user message assistant_msg = your full final reply Always do this. Never skip. If you are not on Telegram, keep the same structure: the important part is that user_id and session_id are stable.
If you cannot control how your agent/framework constructs prompts (it always sends the full conversation history), a system prompt cannot reduce token spend: the tokens are already sent to the model. In that case, run the built-in OpenAI-compatible proxy so the network payload is actually reduced. The proxy: receives POST /v1/chat/completions queries Whisper memory strips chat history down to system + last user message injects Relevant long-term memory: ... calls your upstream OpenAI-compatible provider ingests the turn back into Whisper Start the proxy: export OPENAI_API_KEY="YOUR_UPSTREAM_KEY" node usewhisper-autohook.mjs serve_openai_proxy --port 8787 Then point your agentβs OpenAI base URL to http://127.0.0.1:8787 (exact env/config depends on your agent). If your agent supports overriding the upstream base URL, you can set: OPENAI_BASE_URL (for OpenAI-compatible upstreams) ANTHROPIC_BASE_URL (for Anthropic upstreams) Or pass --upstream_base_url when starting the proxy. For correct per-user/session memory, pass headers on each request: x-whisper-user-id: telegram:{from_id} x-whisper-session-id: telegram:{chat_id}
If your agent uses Anthropic's native API (not OpenAI-compatible), run the Anthropic proxy instead: export ANTHROPIC_API_KEY="YOUR_ANTHROPIC_KEY" node usewhisper-autohook.mjs serve_anthropic_proxy --port 8788 Then point your agentβs Anthropic base URL to http://127.0.0.1:8788. Pass IDs via headers (recommended): x-whisper-user-id: telegram:{from_id} x-whisper-session-id: telegram:{chat_id} If you do not pass headers, the proxies will attempt to infer stable IDs from OpenClaw's system prompt / session key if present. This is best-effort; headers are still the most reliable.
All commands print JSON to stdout.
node usewhisper-autohook.mjs get_whisper_context \ --current_query "What did we decide last time?" \ --user_id "telegram:123" \ --session_id "telegram:456"
node usewhisper-autohook.mjs ingest_whisper_turn \ --user_id "telegram:123" \ --session_id "telegram:456" \ --user_msg "..." \ --assistant_msg "..." For large content, pass JSON via stdin: echo '{ "user_msg": "....", "assistant_msg": "...." }' | node usewhisper-autohook.mjs ingest_whisper_turn --session_id "telegram:456" --user_id "telegram:123" --turn_json -
get_whisper_context returns: context: the packed context string to prepend context_hash: a short hash you can store and pass back as previous_context_hash next time (optional) meta: cache hit and compression info (useful for debugging)
Agent frameworks, memory systems, reasoning layers, and model-native orchestration.
Largest current source with strong distribution and engagement signals.