运行时依赖
安装命令
点击复制技能文档
usewhisper-autohook(OpenClaw Skill) 该技能是一个薄包装器,旨在使“自动记忆”变得容易: get_whisper_context(user_id,session_id,current_query)用于预响应上下文注入 ingest_whisper_turn(user_id,session_id,user_msg,assistant_msg)用于响应后数据摄取 它默认使用几乎总是需要的令牌保存设置: compress:true compression_strategy:“delta” use_cache:true include_memories:true 它还在本地持久化最后的上下文哈希(每个 API_URL + 项目 + user_id + session_id),因此默认情况下无需传递 previous_context_hash 即可实现 delta 压缩。 安装(ClawHub) npx clawhub@latest install usewhisper-autohook 设置 在 OpenClaw 运行您的代理的任何地方设置环境变量: WHISPER_CONTEXT_API_URL=https://context.usewhisper.dev WHISPER_CONTEXT_API_KEY=YOUR_KEY WHISPER_CONTEXT_PROJECT=openclaw-yourname 注意:WHISPER_CONTEXT_API_URL 是可选的(默认为 https://context.usewhisper.dev)。帮助程序将在第一次使用时自动创建项目,如果它尚不存在。 “自动循环”提示(复制/粘贴) 将此添加到您的代理的系统说明(或等效)中: 在思考或响应任何消息之前: 1)使用 user_id = “telegram:{from_id}”、session_id = “telegram:{chat_id}” 和 current_query = 用户消息文本调用 get_whisper_context 2)如果返回的上下文不为空,请将其添加到您的提示中,如:“相关长期记忆:\n{context}\n\n现在响应:\n{user_message}” 在生成最终响应后: 1)使用相同的 user_id 和 session_id 以及 user_msg = 用户完整消息和 assistant_msg = 您的完整最终回复调用 ingest_whisper_turn 始终执行此操作。永远不要跳过。 如果您不在 Telegram 上,请保持相同的结构:重要的是 user_id 和 session_id 是稳定的。 如果您的代理仍然重放完整的聊天历史记录(代理模式) 如果您无法控制代理/框架如何构造提示(它始终发送完整的对话历史记录),则系统提示无法减少令牌消耗:令牌已经发送到模型。 在这种情况下,运行内置的 OpenAI 兼容代理,以便实际减少网络有效负载。 代理: 接收 POST /v1/chat/completions 查询 Whisper 内存从聊天历史记录中剥离出系统和最后一条用户消息 注入相关长期记忆:... 调用您的上游 OpenAI 兼容提供程序 将回合再次注入到 Whisper 中 启动代理: export OPENAI_API_KEY="YOUR_UPSTREAM_KEY" node usewhisper-autohook.mjs serve_openai_proxy --port 8787 然后将您的代理的 OpenAI 基本 URL 指向 http://127.0.0.1:8787(确切的环境/配置取决于您的代理)。 如果您的代理支持覆盖上游基本 URL,您可以设置: OPENAI_BASE_URL(用于 OpenAI 兼容上游) ANTHROPIC_BASE_URL(用于Anthropic上游) 或在启动代理时传递 --upstream_base_url。 对于正确的每用户/会话内存,请在每个请求中传递头部: x-whisper-user-id:telegram:{from_id} x-whisper-session-id:telegram:{chat_id} Anthropic 本机代理(/v1/messages) 如果您的代理使用Anthropic的本机 API(而不是OpenAI兼容),请运行Anthropic代理: export ANTHROPIC_API_KEY="YOUR_ANTHROPIC_KEY" node usewhisper-autohook.mjs serve_anthropic_proxy --port 8788 然后将您的代理的Anthropic基本 URL指向 http://127.0.0.1:8788。 通过头部传递 ID(推荐): x-whisper-user-id:telegram:{from_id} x-whisper-session-id:telegram:{chat_id} 如果您不传递头部,代理将尝试从 OpenClaw 的系统提示/会话密钥中推断出稳定的 ID(如果存在)。 这是最好的努力;头部仍然是最可靠的。 CLI 用法(工具调用) 所有命令将 JSON 打印到 stdout。 获取打包上下文 node usewhisper-autohook.mjs get_whisper_context \ --current_query "我们上次决定了什么?" \ --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 "..." 对于大型内容,请通过 stdin 传递 JSON: 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 返回: context:要添加的打包上下文字符串 context_hash:一个短哈希,您可以存储并在下次作为 previous_context_hash 传递(可选) meta:缓存命中和压缩信息(用于调试)