分类: 摘抄

OCR识别摘录、读书笔记等

  • OpenClaw 如何节省 90% Token:完整优化指南(摘抄)

    # OpenClaw 如何节省 90% Token:完整优化指南

    ## 一句话总结
    OpenClaw 的成本核心不是“回复太贵”,而是 **大上下文反复注入 × 调用次数过多 × 高价模型长期在线**。优化的关键,就是同时压缩输入、减少调用、把贵模型留给真正复杂的任务。

    ## 核心公式

    > Token 消耗 = (输入 + 输出) × 调用次数 × 模型价格

    拆开看:
    – **输入/输出**:上下文内容与模型回答
    – **调用次数**:每次对话、cron、heartbeat、子任务触发
    – **模型价格**:不同模型的单价差异

    ## 主要内容拆分

    ### 1. 输入才是最大头
    每次请求里,真正贵的通常不是回复,而是被重复发送的上下文:
    – System Prompt
    – Tool Schema
    – Workspace 文件(AGENTS.md、SOUL.md、TOOLS.md、USER.md、MEMORY.md 等)
    – 历史对话

    结论:**OpenClaw 的隐形成本主要来自重复注入。**

    ### 2. 最划算的优化:精简 Workspace 文件
    重点精简:
    – `AGENTS.md`
    – `SOUL.md`
    – `MEMORY.md`
    – 每日日志 `memory/YYYY-MM-DD.md`

    原则:
    – 只保留真正有用的长期规则
    – 删除不用的群聊/TTS/多余约束
    – 避免把说明书式内容塞进每轮上下文

    ### 3. Prompt Caching 是省钱神器
    如果模型支持缓存,重复的大段输入不会每次都按原价计算。

    适合缓存的内容:
    – System Prompt
    – Tool Schema
    – 稳定的 Workspace 文件
    – 相对稳定的历史上下文

    结论:**缓存命中后,输入成本可大幅下降。**

    ### 4. Heartbeat 的价值:保温缓存
    Prompt Cache 有 TTL,如果长时间不说话,缓存会过期。
    适度的 heartbeat 可以:
    – 保持缓存热度
    – 避免下次重新写入大缓存

    但也不能太频繁,否则会把“省下来的输入成本”又消耗在调用次数上。

    ### 5. Context Pruning:控制历史膨胀
    长期对话会让历史消息越来越长。
    Context Pruning 的作用是:
    – 自动移除旧对话
    – 保留近期有效上下文
    – 防止会话越来越慢、越来越贵

    ### 6. Compaction:把长历史压成摘要
    对于持续数小时/数天的任务,单纯 pruning 不够。
    Compaction 可以:
    – 把长对话提炼成摘要
    – 在压缩前把重要信息写进 memory
    – 保持连续性,同时降低 token 负担

    ### 7. Sub-Agent:把大任务拆出去
    子 Agent 的好处:
    – 独立上下文,不继承主会话完整历史
    – 适合并发、检索、信息收集等子任务
    – 可搭配便宜模型降低总体成本

    结论:**子 Agent 不只是提速工具,也是成本隔离工具。**

    ### 8. Memory Search / qmd:别再整本读文件
    记忆文件变大后,如果每次都整份注入,非常浪费。
    更优方式:
    – 语义检索相关片段
    – 只读需要的几段
    – 不把整个 MEMORY.md 塞进上下文

    qmd 属于更进阶的本地语义检索方案,适合大量 Markdown 知识库。

    ### 9. Cron / Heartbeat 也要控频
    很多人忽视这一点:
    – cron 每次运行都是一次完整调用
    – heartbeat 也是调用
    – 高频轮询非常贵

    原则:
    – 合并任务
    – 降低频率
    – 非创作任务尽量用便宜模型
    – 正常情况下少发通知

    ### 10. 模型分层使用
    高价模型不要全天候常驻。
    更合理的策略是:
    – 日常对话:便宜/中档模型
    – 复杂写作、深度推理、关键代码:高性能模型
    – 子任务:更便宜模型

    ## 这篇内容的核心洞察

    ### 洞察 1:OpenClaw 贵,不是因为“说太多”,而是因为“带太多”
    AI 回复不是唯一成本。真正吓人的,是每轮都背着一大包上下文上场。

    ### 洞察 2:优化 OpenClaw,本质是优化“上下文系统”
    你不是在调一句 prompt,而是在调:
    – 注入文件
    – 历史保留策略
    – 记忆检索策略
    – 子 Agent 边界
    – 模型分工

    ### 洞察 3:最先做的不是换模型,而是减少浪费
    如果不先减少无效输入,哪怕换便宜模型,也只是“低价浪费”。

    ## 可执行清单

    ### 立即可做
    – 精简 `AGENTS.md`
    – 精简 `SOUL.md`
    – 清理 `MEMORY.md`
    – 清理每日 memory 日志
    – 给长会话启用 context pruning
    – 给 compaction 增加 memory flush
    – 用子 Agent 处理独立任务

    ### 第二阶段
    – 启用 heartbeat 保温缓存
    – 调整 cron 频率
    – 建立模型分层策略

    ### 进阶阶段
    – 启用 memory search
    – 引入 qmd 做本地语义检索
    – 给知识库单独建索引

    ## 对我自己的启发
    这篇内容最值得吸收的不是单个配置项,而是一个原则:

    > **能不重复注入,就不重复注入;能拆出去隔离,就不要堆在主上下文;能检索片段,就别整本读。**

    这也是 OpenClaw 真正省 token 的底层思路。