OpenClaw 省 Token 實操手冊:八個維度,節省 60–90%

作者:嬌姐話AI圈
日期:2026年3月6日 下午11:26
來源:WeChat 原文

整理版優先睇

速讀 5 個重點 高亮

OpenClaw省Token實操:八個維度幫你節省60-90%,從模型分級到Heartbeat Bug繞過全面降低API成本

整理版摘要

呢篇文章係由技術博主嬌姐整理,基於OpenClaw官方文檔同GitHub多個Issue(#21999、#23254等)同埋多位工程師嘅實測經驗。文章主要係針對OpenClaw用戶常見嘅Token費用過高問題,提供八個維度嘅優化方法。

整體結論係,大部分Token浪費喺系統提示注入同歷史對話累積,而唔係實際工作,最高可以優化93.5%嘅開支。作者建議先搞清楚錢燒喺邊,再對症下藥,並提供優先級速查表,幫你按部就班慳錢。

文章涵蓋模型分級、配置文件瘦身、Skills精簡、會話管理、Heartbeat/Cron改造、多Agent分級配置、Prompt Cache最大化同工具調用控制,每個維度都有具體配置範例同操作步驟。重點係繞過Heartbeat嘅模型覆蓋Bug,改用隔離Cron加便宜模型,可以即時慳50-80%。

  • 大部分Token花費喺系統提示同歷史上下文,而非實際工作,運用文章方法可節省60-90%。
  • 模型分級係最高槓桿:將簡單任務用HaikuGemini Flash代替Opus,可節省60-80%費用。
  • Heartbeat存在Bug:heartbeat.model設定無效,實際使用主模型,必須改用隔離Cron繞過。
  • Prompt Cache最大化:保持配置文件前綴穩定並開啟cacheControlTtl,後續調用只需約10%費用。
  • 即時行動:關閉原生Heartbeat、按Agent類型分級配置、每日重置會話,雙保險防止歷史膨脹。
整理重點

理解成本結構同模型分級

每次API調用嘅成本唔止你講嘅說話,大部分錢係燒喺系統提示、工具列表同歷史上下文。GitHub Issue #21999拆解咗一份150k+ Token嘅系統提示,證實浪費咗93.5%嘅Token預算。

  1. 1 Claude Opus (~$15/M Token):複雜深度推理先用,要刻意限制調用。
  2. 2 Claude Sonnet (~$3/M Token):代碼、寫作、日常推理,大多數Agent嘅主力。
  3. 3 Claude Haiku (~$0.6/M Token):簡單問答、格式化、狀態檢查,性價比之王。
  4. 4 Gemini 2.5 Flash (~$0.30/M Token):Heartbeat/Cron專用,每次調用成本極低。

模型分級係最高槓桿:將簡單任務用HaikuGemini Flash代替Opus,即時節省60-80%費用。

整理重點

配置文件瘦身同Skills精簡

SOUL.mdAGENTS.md等文件每次調用全量注入,包括Heartbeat同Cron。目標係將SOUL.md壓縮到500 Token以內,AGENTS.md 800 Token以內,並把操作細節移到按需加載嘅Skills或者MEMORY.md。

  • 移除唔常用嘅Skills,或者設定disable-model-invocation: true,等佢哋唔自動注入。
  • 精簡Skill描述,只留觸發條件,詳細內容放SKILL.md body(Tier 2按需加載)。
  • 合併TOKEN-RULES.mdAGENTS.md,減少文件數量,避免重複注入。

頻繁改配置文件會令Prompt Cache失效,變動內容應放memory/YYYY-MM-DD.md,核心文件保持穩定。

整理重點

會話管理同Heartbeat改造

歷史對話累積可佔58%嘅上下文窗口,35條消息會話session文件可達2.9MB。要堵住呢個黑洞,需要雙管齊下。

  • 執行/compact前先切換到Haiku模型,避免用Opus做壓縮浪費錢。
  • 設定softThresholdTokens同session.reset.mode: daily,每日凌晨自動清零歷史。
  • 大輸出任務用/subagents spawn隔離,中間輸出唔會污染主會話。

/compact前一定要先/model haiku,否則compact本身都會好貴。

整理重點

多Agent分級配置同Prompt Cache

唔同Agent工作性質差好遠,全局一刀切係浪費。監控Agent只需要細窗口,開發Agent就需要大窗口。按類型分三檔配置。

  1. 1 監控類(sysmon/intel)Haiku + contextTokens 20000 + aggressive壓縮。
  2. 2 內容類(wechat-writer)Sonnet + contextTokens 40000 + safeguard壓縮。
  3. 3 開發類(agent-creator)Sonnet + contextTokens 100000 + safeguard壓縮。
程式內容 json
{
 "agents": {
 "defaults": {
 "model": { "primary": "anthropic/claude-sonnet-4-6" },
 "contextTokens": 50000
 },
 "list": [
 { "id": "sysmon", "model": { "primary": "anthropic/claude-haiku-3.5" }, "contextTokens": 20000 },
 { "id": "wechat-writer", "model": { "primary": "anthropic/claude-sonnet-4-6" }, "contextTokens": 40000 },
 { "id": "agent-creator", "model": { "primary": "anthropic/claude-sonnet-4-6" }, "contextTokens": 100000 }
 ]
 }
}

開啟cacheControlTtl: 1h,保持配置文件前綴穩定,後續調用只收約10%費用。

整理重點

工具調用控制同消費保險

工具調用嘅併發數同大輸出會直接增加Token消耗。要控制成本,除咗限制maxConcurrent,仲要喺AGENTS.md加入工具調用原則。

  • maxConcurrent設為1,subagents.maxConcurrent設為3,避免併發成本疊加。
  • 讀取文件優先精確檢索,唔好讀曬成個文件。
  • 多個獨立查詢任務合併成一次批量工具調用。
  • Anthropic控制枱設API Key每日消費上限,防止意外超支。

imageMaxDimensionPx設為800,可以喺截圖密集場景大量減少視覺Token


圖片

先關注後閲讀,嬌姐怕失去上進嘅你


技術博主 Federico Viticci 一個月燒咗 180 萬 Token,帳單係 $3,600。GitHub Issue #23254 計得更細:一個默認配置嘅 Heartbeat,30 分鐘一次,每日 38 次 API 調用,每次 8,000–15,000 Token,淨係 Heartbeat 一項每日就要 $10–20。

一位工程師追蹤 API 日誌之後發現:90% 嘅 Token 花費同實際叫 Agent 做嘅工作冇關係。三個配置改動,每週帳單由 $50 壓到唔夠 $10。

呢篇文章係基於官方文檔、GitHub Issue #21999 / #22133 / #23254 / #30983 / #9742 / #30894 同埋多位工程師嘅實測整理。每個技巧都有標註來源。

目錄

先搞清楚:錢燒喺邊度
維度一:模型分級
維度二:配置文件瘦身
維度三:Skills 精簡
維度四:會話管理
維度五:Heartbeat 和 Cron(含 Bug 警告)
維度六:多 Agent 體系的分級配置
維度七:Prompt Cache 最大化
維度八:工具調用與併發控制
消費保險 + 優先級速查表


先搞清楚:每次 API 調用你係為咩付錢

Token 消耗 ≠ 你講嘅說話 + AI 回嘅說話。GitHub Issue #21999(一份 150k+ Token 系統提示嘅完整拆解)畀咗呢張成本圖:

成本來源
典型量級
可優化
框架系統提示 + 工具列表(50+ 工具 schema)
3,000–5,000
不可改
配置文件注入(SOUL / AGENTS / USER / TOOLS + Skills 描述列表)
3,000–14,000
最高優先級
歷史對話上下文
隨住輪次指數增長,嚴重時佔 58% 窗口
可優化
工具大輸出(永久留喺歷史,拖累每次後續調用)
視工具可達數萬,session 文件可達 2.9MB
可優化
你嘅輸入 + AI 嘅輸出
通常幾百
佔比好細

Issue #9157 嘅總結一針見血:"浪費咗 93.5% 嘅 Token 預算"——大部分錢花喺上下文注入同歷史積累上,唔喺實際工作上。

先用呢幾條命令睇清楚自己嘅情況,再針對性優化:

/status              # 當前會話 Token 消耗和費用估算
/usage full          # 每次回覆後顯示消耗明細
/context detail      # 查各注入文件各佔多少 Token

# 查看 session 文件大小,超過 500KB 需要警惕
du -h ~/.openclaw/agents/*/sessions/*.jsonl | sort -h

維度一:模型分級 — 槓桿最高,立竿見影

Haiku 約係 Sonnet 嘅 1/5 價格,約係 Opus 嘅 1/25。用 Opus 回答"今日日曆上有咩",係喺用外科手術刀切菜。

模型
每 M Token 輸入價
適合任務
Claude Opus
~$15
複雜深度推理,需要明確說明原因先調用
Claude Sonnet
~$3
代碼、寫作、日常推理,大多數 Agent 嘅主力
Claude Haiku
~$0.6
簡單問答、格式化、狀態檢查、監控類 Agent
Gemini 2.5 Flash
~$0.30
Heartbeat / Cron 專用。每次 $0.005 vs Opus 嘅 $0.24,一日 48 次差距係 $0.24 vs $11.52
DeepSeek V4
極低,人民幣充值
大陸用戶性價比最優解
{
  "agents": {
    "defaults": {
      "model": {
        "primary": "anthropic/claude-sonnet-4-6",    // 日常默認主力
        "fallbacks": ["anthropic/claude-haiku-3.5"]
      },
      "subagents": {
        "model": "anthropic/claude-haiku-3.5"        // 子 Agent 自動用便宜模型
      }
    }
  }
}

會話中途隨時切換,唔使重啓:

/model anthropic/claude-haiku-3.5    # 切到便宜模型
/model anthropic/claude-opus-4-6     # 切到旗艦

兩個特殊陷阱:
Gemini 2.5 Pro 係已知嘅 Token 黑洞,幾十次調用燒咗 190 萬 Token,務必用 Flash 替代。
Thinking / Reasoning 模式消耗暴增 10–50 倍,喺 config 裏面明確關閉:"thinking": {"type": "disabled"}


維度二:配置文件瘦身 — 每次調用都喺度慳

SOUL.md、AGENTS.md、USER.md、TOOLS.md 喺每次 API 調用時全量注入,包括每次 Heartbeat 同 Cron。MEMORY.md 只喺主會話加載,memory/ 子目錄嘅日期文件通過 memory 工具顯式調用先加載——呢兩類比較慳,優先往嗰度寫。

文件
目標體量
精簡方向
SOUL.md
500 Token 以內
只保留核心原則,操作細節搬去 TOOLS.md 或 Skill
AGENTS.md
800 Token 以內
刪咗未用過嘅規則(未開啓嘅渠道、TTS 等)
MEMORY.md
只保留持久性事實
臨時記錄寫 memory/YYYY-MM-DD.md,唔好堆入主文件

一個容易踩嘅坑:TOKEN-RULES.md 本身都喺度消耗 Token。如果你為每個 Agent 創建咗獨立嘅 TOKEN-RULES.md 放喺 workspace 根目錄下,佢會同 SOUL.md 一齊每次注入。建議將規則內容直接合併入 AGENTS.md——少一個文件,少一次文件元數據注入。或者用 $include 引用一份全局共享規則,七個 Agent 嘅共同規則只維護一份(官方文檔支持 $include),各 Agent 嘅本地文件只保留差異部分。

頻繁改配置文件會令 Prompt Cache 反覆失效。每次改動之後第一次調用要重新按全價寫入緩存。將頻繁變動嘅內容放進 memory/YYYY-MM-DD.md,核心配置文件保持少改。

# 讓 OpenClaw 自己分析並執行優化
分析我當前的配置文件,找出哪些內容可以提取成按需加載的 Skill,
估算優化後能節省多少 Token,然後幫我執行

維度三:Skills 精簡 — 隱性成本,好多人唔知道

官方 Skills 文檔畀咗精確公式:每個 Skill 每次調用嘅固定注入 = 97 字符 + 名稱同描述嘅長度(字符數除以 4 約等於 Token 數)。一個描述 200 字符嘅 Skill,每次注入約 75 Token。好消息係 Skill 嘅完整指令內容只有 Agent 決定使用佢時先加載(Tier 2),每次都注入嘅只係描述摘要(Tier 1)。

10 個 Skill 嘅描述注入約 400–500 Token,每日 100 次 Opus 調用 = 每月額外 $180。三個優化方法:

方法一:只保留真正常用嘅 Skills,移除唔常用嘅。唔係每個可以用到嘅 Skill 都要掛喺 Agent 上,按需手動調用一樣生效。

方法二:用 disable-model-invocation 令 Skill 徹底唔注入系統提示。官方支持呢個字段,設為 true 之後 Skill 從系統提示裏面消失,只能通過用戶手動調用:

---
name: my-heavy-skill
description: 這個 skill 很少用,不要自動注入
disable-model-invocation: true
---

方法三:精簡 Skill 嘅描述字段。描述只寫觸發條件,完整說明放喺 SKILL.md body 裏面——body 係 Tier 2,按需加載,唔影響基礎成本。


維度四:會話管理 — 堵住歷史積累嘅黑洞

35 條消息嘅會話,session 文件已達 2.9MB(GitHub Issue #21999 實測)。歷史積累最終可佔 58% 嘅上下文窗口,每次調用都喺度拖住呢個包袱。

/compact 前先切便宜模型

/compact 本身係一次完整 API 調用,用當前會話嘅模型做總結。用 Opus 嘅話 compact 本身就好貴。正確做法:

/model anthropic/claude-haiku-3.5    # 先切便宜模型
/compact                              # 用便宜模型做總結
/model anthropic/claude-sonnet-4-6   # 再切回主力

softThresholdTokens + 每日重置:雙保險

softThresholdTokens 係被動防禦(達到閾值時寫 memory 再刷新),每日重置係主動清零,兩個一齊用先穩:

{
  "session": {
    "softThresholdTokens": 40000,
    "flushPrompt": "記錄關鍵決策、狀態變更和教訓,跳過日常例行對話。若沒有值得記錄的內容,回覆 NO_FLUSH。",
    "reset": {
      "mode": "daily",
      "atHour": 4,          // 凌晨 4 點自動重置,不影響白天使用
      "idleMinutes": 120    // 或者閒置 2 小時後重置
    }
  }
}

大輸出任務用子 Agent 隔離

子 Agent 嘅中間輸出唔會進入主會話歷史,只有最終結論返回。同時子 Agent 自動使用 promptMode: "minimal",唔注入 Skills 同 Docs 區塊,本身就比主會話慳:

/subagents spawn main "掃描 ~/projects,列出超過 100MB 的文件"
/subagents spawn main "總結過去 24 小時 Discord 消息,給我關鍵要點"

直接清理膨脹嘅 session 文件

du -h ~/.openclaw/agents/*/sessions/*.jsonl | sort -h
rm ~/.openclaw/agents/main/sessions/main.jsonl   # 清理主會話(不影響配置文件裏的長期記憶)

維度五:Heartbeat 和 Cron — 含一個正在坑人嘅 Bug

Bug 警告(Issue #9742 / #13009 / #14279 / #21144 / #30894,跨越成個 2026 年 2–3 月):
heartbeat.model 覆蓋喺當前版本不可靠——Heartbeat 實際運行時會忽略呢個字段,使用 agents.defaults.model 嘅主模型。你以為喺用 Haiku,實際冇。Issue #30894 嘅結論:繞過方案係將 Heartbeat 邏輯移到 Cron + isolated session,Cron 嘅 model override 係正常嘅。

除咗 Bug,原生 Heartbeat 仲有兩個問題:實際觸發頻率比設置值高(設咗 30 分鐘,觀測到 10–20 秒觸發一次),每次攜帶全部會話上下文(170k–210k Token/次係真實觀測值)。

推薦方案:熄咗原生 Heartbeat,改用隔離 Cron

// 第一步:關掉原生 Heartbeat
{
  "agents": {
    "defaults": {
      "heartbeat": { "every": "0m" }
    }
  }
}

// 第二步:改用隔離會話 + 便宜模型的 Cron 替代
openclaw cron add --every 55m --session isolated \
  --model google/gemini-2.5-flash-preview \
  "讀取 HEARTBEAT.md;若一切正常回復 HEARTBEAT_OK,發現異常才通知我"

Cron 嘅 sessionRetention — 磁盤清理嘅小事都唔好忘記

每次 isolated 會話結束之後文件默認保留,多個 Agent 跑時間長咗會積累大量廢棄文件拖慢 Gateway。加上呢兩行:

{
  "cron": {
    "sessionRetention": "24h",                    // 自動清理 24 小時前的 Cron session 文件
    "runLog": { "maxBytes": "2mb", "keepLines": 2000 }   // 限制日誌大小
  }
}

多任務合併成一次 Cron 調用。5 個獨立檢查任務變 1 次批量調用,節省 75% 嘅上下文注入成本——工作量冇變,API 調用次數變少咗。


維度六:多 Agent 體系嘅分級配置 — 一刀切係浪費

如果你有多個 Agent,agents.defaults 嘅全局配置係底線,唔係終點。唔同 Agent 嘅工作性質差好大:sysmon 只需要睇 10 條日誌,agent-creator 喺寫代碼時需要更大窗口,wechat-writer 需要保留更多寫作上下文。全局 contextTokens: 50000 對監控類 Agent 係浪費,對開發類 Agent 又唔夠用。

官方文檔確認 modelcontextTokenscompaction 都可以喺 agents.list[] 級別單獨覆蓋。按 Agent 類型分三檔:

類型
適合嘅 Agent
推薦配置
監控 / 情報類
sysmon、intel、news-curator
Haiku,contextTokens: 20000,compaction: aggressive
內容 / 寫作類
wechat-writer、content-curator
Sonnet,contextTokens: 40000,compaction: safeguard
開發 / 創建類
agent-creator、findjob
Sonnet,contextTokens: 100000,compaction: safeguard
{
  "agents": {
    "defaults": {
      "model": { "primary": "anthropic/claude-sonnet-4-6" },
      "contextTokens": 50000
    },
    "list": [
      // 監控類:最便宜,窗口最小,激進壓縮
      {
        "id": "sysmon",
        "model": { "primary": "anthropic/claude-haiku-3.5" },
        "contextTokens": 20000,
        "compaction": { "mode": "aggressive" }
      },
      {
        "id": "intel",
        "model": { "primary": "anthropic/claude-haiku-3.5" },
        "contextTokens": 30000,
        "compaction": { "mode": "aggressive" }
      },
      // 內容類:Sonnet,保守壓縮(不能隨意丟失寫作上下文)
      {
        "id": "wechat-writer",
        "model": { "primary": "anthropic/claude-sonnet-4-6" },
        "contextTokens": 40000,
        "compaction": { "mode": "safeguard" }
      },
      // 開發類:需要更大窗口(代碼上下文)
      {
        "id": "agent-creator",
        "model": { "primary": "anthropic/claude-sonnet-4-6" },
        "contextTokens": 100000,
        "compaction": { "mode": "safeguard" }
      }
    ]
  }
}

compaction.mode 說明:aggressive 更激進咁丟棄歷史細節,適合監控類呢種"結論重要、過程唔重要"嘅 Agent;safeguard 更保守,適合寫作同開發呢種"上下文連貫性好重要"嘅 Agent。


維度七:Prompt Cache 最大化 — 將固定成本變折扣

配置文件內容被緩存之後,後續調用只收約 10% 費用讀取緩存。關鍵係保持配置文件前綴穩定——"每條消息裏面嘅元數據注入會破壞穩定性"(Issue #21999)。

{
  "agents": {
    "defaults": {
      "models": {
        "anthropic/claude-sonnet-4-6": {
          "params": { "cacheControlTtl": "1h" }    // 啓用 1 小時長窗口緩存
        }
      },
      "contextPruning": {
        "mode": "cache-ttl",    // TTL 到期時先剪枝再重緩存
        "ttl": "1h"
      }
    }
  }
}

如果保留咗原生 Heartbeat(等 Bug 修復之後),將間隔設為略小於 TTL 嘅值,可以保持緩存熱度避免冷啓動費用——55m Heartbeat 刷新 1h 緩存,緩存唔會到期失效。


維度八:工具調用與併發控制

{
  "agents": {
    "defaults": {
      "contextTokens": 50000,         // 全局底線,各 Agent 可單獨覆蓋
      "imageMaxDimensionPx": 800,     // 截圖密集場景降低視覺 Token
      "maxConcurrent": 1,             // 日常用 1,併發請求 = 併發倍的注入成本
      "subagents": { "maxConcurrent": 3 }
    }
  }
}

將呢幾條寫入 AGENTS.md(或合併入嚟嘅 TOKEN-RULES 內容):

## 工具調用成本控制
- 讀取文件前優先使用精確檢索,不讀整個文件
- 多個獨立查詢任務合併成一次批量工具調用
- 目錄掃描、日誌彙總等大輸出任務用 /subagents spawn 隔離

額外一項:消費保險,杜絕意外失控

保險措施
喺邊度設
API Key 每日消費上限
Anthropic 控制枱 → API Keys → Spend Limit
子 Agent 併發上限
"subagents": {"maxConcurrent": 3}
TOOLS.md 寫月度預算提醒
超過預算 75% 時主動通知,唔等到月底睇帳單
優先級速查表
優先級
操作
預計效果
難度
P0
熄咗原生 Heartbeat,全部改用隔離 Cron + Gemini Flash(繞過 heartbeat.model Bug)
節省 50–80%,同時修復潛在嘅 Bug 導致嘅額外消耗
P0
將默認模型由 Opus 換成 Sonnet;Haiku 處理簡單任務
節省 60–80%
P1
按 Agent 類型分級配置 model + contextTokens(監控/內容/開發三檔)
精準控制,消除全局一刀切嘅浪費
P1
精簡 SOUL / AGENTS / MEMORY.md;將 TOKEN-RULES 內容合併入 AGENTS.md
每減 1,000 Token ≈ $45/月(100次 Opus/天)
P1
移除唔常用 Skills,或設 disable-model-invocation: true;精簡 Skill 描述
10 個 Skills ≈ 月省 $180(Opus)
P1
softThresholdTokens + session.reset.mode: "daily" 雙保險
阻止歷史無限膨脹
P1
/compact 前先 /model haiku;大輸出用 /subagents spawn 隔離
防歷史污染
P2
開 cacheControlTtl: "1h" + contextPruning: cache-ttl
減少冷啓動重緩存費用
P2
cron.sessionRetention: "24h";runLog.maxBytes: "2mb"
防止廢棄 session 文件堆積拖慢 Gateway
P3
imageMaxDimensionPx: 800;maxConcurrent: 1;按 Agent 設 compaction.mode
精細化控制
安全網
API Key 控制枱設每日消費上限 + subagents.maxConcurrent: 3
防失控

寫喺最後

你已經做咗全局配置優化同每個 Agent 嘅 TOKEN-RULES,呢個係正確嘅基礎。未做嘅三件事按優先級排:

第一,將所有 Heartbeat 換成 Cron——heartbeat.model 嘅 Bug 意味着你以為喺度慳錢但實際冇,呢個係而家最緊急嘅一件事。

第二,畀每個 Agent 配獨立嘅 model 同 contextTokens——sysmon 用 Haiku + 20k,agent-creator 用 Sonnet + 100k,唔好全部用全局嘅 50k。

第三,加 session.reset.mode: "daily",同已有嘅 softThresholdTokens 形成雙保險,每日凌晨自動清零歷史。

其他嘅優化都係喺呢三個基礎上嘅遞進,按需疊加即可。


關於 openclaw 嘅系列文章,可以參考如下:
OpenClaw 到底點樣跑?部署方式同玩法全景
徹底搞懂 OpenClaw 配置體系:呢個先係 AI Agent 嘅正確打開方式
本地部署 OpenClaw 自動發佈小紅書:小白完整教程
我嘅 OpenClaw 多 Agent 會主動發嚟 “上班打卡”
12 類人羣必裝嘅 OpenClaw Skills
OpenClaw 排錯指南
唔寫代碼,點樣令 OpenClaw Agent 學會新技能
OpenClaw 實戰:由 0 到 1 搭建你嘅雲端 AI 工作流
睇嚇呢個龍蝦速度,就知道呢個 OpenClaw 有幾火爆,速度快啲跟
唔寫代碼,點樣令 OpenClaw Agent 學會新技能
OpenClaw 曲線救國:通過 CLI 後端使用 Claude 模型
OpenClaw 官方 53 個技能完整指南:功能詳解 + 風險評估 + 安裝建議
OpenClaw 多代理配置指南:令 AI 團隊幫你同時做多件事
OpenClaw 完全指南:由零搭建你嘅 AI 員工團隊
點樣申請 Brave Search API 密鑰並配置 OpenClaw
OpenClaw 實戰操作指南:12 大熱門應用案例詳細教程
飛書同 openclaw 集成實操教程
OpenClaw 命令完整手冊
用咗 openclaw,同 telegram 可以雙向通信喇
【呢篇文係 openclaw 輸出】OpenClaw 超簡單而且免費嘅安裝實操教程
今日就分享到呢度,關注嬌姐,持續分享 AI 乾貨同資訊。想跟住嬌姐一齊養 AI,評論區回覆 AI。

圖片

先關注後閲讀,嬌姐怕失去上進的你


技術博主 Federico Viticci 一個月燒掉 180 萬 Token,賬單 $3,600。GitHub Issue #23254 算得更細:一個默認配置的 Heartbeat,30 分鐘一次,每天 38 次 API 調用,每次 8,000–15,000 Token,光 Heartbeat 一項每天就要 $10–20。

一位工程師追蹤 API 日誌後發現:90% 的 Token 花銷與實際讓 Agent 做的工作沒有關係。三個配置改動,每週賬單從 $50 壓到不到 $10。

這篇文章基於官方文檔、GitHub Issue #21999 / #22133 / #23254 / #30983 / #9742 / #30894 以及多位工程師的實測整理。每個技巧都標註來源。

目錄

先搞清楚:錢燒在哪裏
維度一:模型分級
維度二:配置文件瘦身
維度三:Skills 精簡
維度四:會話管理
維度五:Heartbeat 和 Cron(含 Bug 警告)
維度六:多 Agent 體系的分級配置
維度七:Prompt Cache 最大化
維度八:工具調用與併發控制
消費保險 + 優先級速查表


先搞清楚:每次 API 調用你在為什麼付錢

Token 消耗 ≠ 你說的話 + AI 回的話。GitHub Issue #21999(一份 150k+ Token 系統提示的完整拆解)給出了這張成本圖:

成本來源
典型量級
可優化
框架系統提示 + 工具列表(50+ 工具 schema)
3,000–5,000
不可改
配置文件注入(SOUL / AGENTS / USER / TOOLS + Skills 描述列表)
3,000–14,000
最高優先級
歷史對話上下文
隨輪次指數增長,嚴重時佔 58% 窗口
可優化
工具大輸出(永久留在歷史,拖累每次後續調用)
視工具可達數萬,session 文件可達 2.9MB
可優化
你的輸入 + AI 的輸出
通常幾百
佔比極小

Issue #9157 的總結一針見血:"浪費了 93.5% 的 Token 預算"——大部分錢花在上下文注入和歷史積累上,不在實際工作上。

先用這幾條命令看清楚自己的情況,再針對性優化:

/status              # 當前會話 Token 消耗和費用估算
/usage full          # 每次回覆後顯示消耗明細
/context detail      # 查各注入文件各佔多少 Token

# 查看 session 文件大小,超過 500KB 需要警惕
du -h ~/.openclaw/agents/*/sessions/*.jsonl | sort -h

維度一:模型分級 — 槓桿最高,立竿見影

Haiku 約是 Sonnet 的 1/5 價格,約是 Opus 的 1/25。用 Opus 回答"今天日曆上有什麼",是在用外科手術刀切菜。

模型
每 M Token 輸入價
適合任務
Claude Opus
~$15
複雜深度推理,需明確說明原因才調用
Claude Sonnet
~$3
代碼、寫作、日常推理,大多數 Agent 的主力
Claude Haiku
~$0.6
簡單問答、格式化、狀態檢查、監控類 Agent
Gemini 2.5 Flash
~$0.30
Heartbeat / Cron 專用。每次 $0.005 vs Opus 的 $0.24,一天 48 次差距是 $0.24 vs $11.52
DeepSeek V4
極低,人民幣充值
大陸用戶性價比最優解
{
  "agents": {
    "defaults": {
      "model": {
        "primary": "anthropic/claude-sonnet-4-6",    // 日常默認主力
        "fallbacks": ["anthropic/claude-haiku-3.5"]
      },
      "subagents": {
        "model": "anthropic/claude-haiku-3.5"        // 子 Agent 自動用便宜模型
      }
    }
  }
}

會話中途隨時切換,不需要重啓:

/model anthropic/claude-haiku-3.5    # 切到便宜模型
/model anthropic/claude-opus-4-6     # 切到旗艦

兩個特殊陷阱:
Gemini 2.5 Pro 是已知的 Token 黑洞,幾十次調用燒掉 190 萬 Token,務必用 Flash 替代。
Thinking / Reasoning 模式消耗暴增 10–50 倍,在 config 裏明確關閉:"thinking": {"type": "disabled"}


維度二:配置文件瘦身 — 每次調用都在省

SOUL.md、AGENTS.md、USER.md、TOOLS.md 在每次 API 調用時全量注入,包括每次 Heartbeat 和 Cron。MEMORY.md 只在主會話加載,memory/ 子目錄的日期文件通過 memory 工具顯式調用才加載——這兩類比較省,優先往那裏寫。

文件
目標體量
精簡方向
SOUL.md
500 Token 以內
只保留核心原則,操作細節挪到 TOOLS.md 或 Skill
AGENTS.md
800 Token 以內
刪掉未用到的規則(未開啓的渠道、TTS 等)
MEMORY.md
只保留持久性事實
臨時記錄寫 memory/YYYY-MM-DD.md,不堆進主文件

一個容易踩的坑:TOKEN-RULES.md 本身也在消耗 Token。如果你為每個 Agent 創建了獨立的 TOKEN-RULES.md 放在 workspace 根目錄下,它會和 SOUL.md 一起每次注入。建議把規則內容直接合並進 AGENTS.md——少一個文件,少一次文件元數據注入。或者用 $include 引用一份全局共享規則,七個 Agent 的共同規則只維護一份(官方文檔支持 $include),各 Agent 的本地文件只保留差異部分。

頻繁改配置文件會讓 Prompt Cache 反覆失效。每次改動後第一次調用要重新按全價寫入緩存。把頻繁變動的內容放進 memory/YYYY-MM-DD.md,核心配置文件保持少改。

# 讓 OpenClaw 自己分析並執行優化
分析我當前的配置文件,找出哪些內容可以提取成按需加載的 Skill,
估算優化後能節省多少 Token,然後幫我執行

維度三:Skills 精簡 — 隱性成本,很多人不知道

官方 Skills 文檔給出了精確公式:每個 Skill 每次調用的固定注入 = 97 字符 + 名稱和描述的長度(字符數除以 4 約等於 Token 數)。一個描述 200 字符的 Skill,每次注入約 75 Token。好消息是 Skill 的完整指令內容只有 Agent 決定使用它時才加載(Tier 2),每次都注入的只是描述摘要(Tier 1)。

10 個 Skill 的描述注入約 400–500 Token,每天 100 次 Opus 調用 = 每月額外 $180。三個優化方法:

方法一:只保留真正常用的 Skills,移除不常用的。不是每個能用上的 Skill 都要掛在 Agent 上,按需手動調用一樣生效。

方法二:用 disable-model-invocation 讓 Skill 徹底不注入系統提示。官方支持這個字段,設為 true 後 Skill 從系統提示裏消失,只能通過用戶手動調用:

---
name: my-heavy-skill
description: 這個 skill 很少用,不要自動注入
disable-model-invocation: true
---

方法三:精簡 Skill 的描述字段。描述只寫觸發條件,完整說明放在 SKILL.md body 裏——body 是 Tier 2,按需加載,不影響基礎成本。


維度四:會話管理 — 堵住歷史積累的黑洞

35 條消息的會話,session 文件已達 2.9MB(GitHub Issue #21999 實測)。歷史積累最終可佔 58% 的上下文窗口,每次調用都在拖着這個包袱。

/compact 前先切便宜模型

/compact 本身是一次完整 API 調用,用當前會話的模型做總結。用 Opus 的話 compact 本身就很貴。正確做法:

/model anthropic/claude-haiku-3.5    # 先切便宜模型
/compact                              # 用便宜模型做總結
/model anthropic/claude-sonnet-4-6   # 再切回主力

softThresholdTokens + 每日重置:雙保險

softThresholdTokens 是被動防禦(達到閾值時寫 memory 再刷新),每日重置是主動清零,兩個一起用才穩:

{
  "session": {
    "softThresholdTokens": 40000,
    "flushPrompt": "記錄關鍵決策、狀態變更和教訓,跳過日常例行對話。若沒有值得記錄的內容,回覆 NO_FLUSH。",
    "reset": {
      "mode": "daily",
      "atHour": 4,          // 凌晨 4 點自動重置,不影響白天使用
      "idleMinutes": 120    // 或者閒置 2 小時後重置
    }
  }
}

大輸出任務用子 Agent 隔離

子 Agent 的中間輸出不會進入主會話歷史,只有最終結論返回。同時子 Agent 自動使用 promptMode: "minimal",不注入 Skills 和 Docs 區塊,本身就比主會話省:

/subagents spawn main "掃描 ~/projects,列出超過 100MB 的文件"
/subagents spawn main "總結過去 24 小時 Discord 消息,給我關鍵要點"

直接清理膨脹的 session 文件

du -h ~/.openclaw/agents/*/sessions/*.jsonl | sort -h
rm ~/.openclaw/agents/main/sessions/main.jsonl   # 清理主會話(不影響配置文件裏的長期記憶)

維度五:Heartbeat 和 Cron — 含一個正在坑人的 Bug

Bug 警告(Issue #9742 / #13009 / #14279 / #21144 / #30894,跨越整個 2026 年 2–3 月):
heartbeat.model 覆蓋在當前版本不可靠——Heartbeat 實際運行時會忽略這個字段,使用 agents.defaults.model 的主模型。你以為在用 Haiku,實際沒有。Issue #30894 的結論:繞過方案是把 Heartbeat 邏輯移到 Cron + isolated session,Cron 的 model override 是正常的。

除了 Bug,原生 Heartbeat 還有兩個問題:實際觸發頻率比設置值高(設了 30 分鐘,觀測到 10–20 秒觸發一次),每次攜帶全部會話上下文(170k–210k Token/次是真實觀測值)。

推薦方案:關掉原生 Heartbeat,改用隔離 Cron

// 第一步:關掉原生 Heartbeat
{
  "agents": {
    "defaults": {
      "heartbeat": { "every": "0m" }
    }
  }
}

// 第二步:改用隔離會話 + 便宜模型的 Cron 替代
openclaw cron add --every 55m --session isolated \
  --model google/gemini-2.5-flash-preview \
  "讀取 HEARTBEAT.md;若一切正常回復 HEARTBEAT_OK,發現異常才通知我"

Cron 的 sessionRetention — 磁盤清理的小事也別忘

每次 isolated 會話結束後文件默認保留,多個 Agent 跑時間長了會積累大量廢棄文件拖慢 Gateway。加上這兩行:

{
  "cron": {
    "sessionRetention": "24h",                    // 自動清理 24 小時前的 Cron session 文件
    "runLog": { "maxBytes": "2mb", "keepLines": 2000 }   // 限制日誌大小
  }
}

多任務合併成一次 Cron 調用。5 個獨立檢查任務變 1 次批量調用,節省 75% 的上下文注入成本——工作量沒變,API 調用次數變少了。


維度六:多 Agent 體系的分級配置 — 一刀切是浪費

如果你有多個 Agent,agents.defaults 的全局配置是底線,不是終點。不同 Agent 的工作性質差很大:sysmon 只需要看 10 條日誌,agent-creator 在寫代碼時需要更大窗口,wechat-writer 需要保留更多寫作上下文。全局 contextTokens: 50000 對監控類 Agent 是浪費,對開發類 Agent 又不夠用。

官方文檔確認 modelcontextTokenscompaction 都可以在 agents.list[] 級別單獨覆蓋。按 Agent 類型分三檔:

類型
適合的 Agent
推薦配置
監控 / 情報類
sysmon、intel、news-curator
Haiku,contextTokens: 20000,compaction: aggressive
內容 / 寫作類
wechat-writer、content-curator
Sonnet,contextTokens: 40000,compaction: safeguard
開發 / 創建類
agent-creator、findjob
Sonnet,contextTokens: 100000,compaction: safeguard
{
  "agents": {
    "defaults": {
      "model": { "primary": "anthropic/claude-sonnet-4-6" },
      "contextTokens": 50000
    },
    "list": [
      // 監控類:最便宜,窗口最小,激進壓縮
      {
        "id": "sysmon",
        "model": { "primary": "anthropic/claude-haiku-3.5" },
        "contextTokens": 20000,
        "compaction": { "mode": "aggressive" }
      },
      {
        "id": "intel",
        "model": { "primary": "anthropic/claude-haiku-3.5" },
        "contextTokens": 30000,
        "compaction": { "mode": "aggressive" }
      },
      // 內容類:Sonnet,保守壓縮(不能隨意丟失寫作上下文)
      {
        "id": "wechat-writer",
        "model": { "primary": "anthropic/claude-sonnet-4-6" },
        "contextTokens": 40000,
        "compaction": { "mode": "safeguard" }
      },
      // 開發類:需要更大窗口(代碼上下文)
      {
        "id": "agent-creator",
        "model": { "primary": "anthropic/claude-sonnet-4-6" },
        "contextTokens": 100000,
        "compaction": { "mode": "safeguard" }
      }
    ]
  }
}

compaction.mode 說明:aggressive 更激進地丟棄歷史細節,適合監控類這種"結論重要、過程不重要"的 Agent;safeguard 更保守,適合寫作和開發這種"上下文連貫性很重要"的 Agent。


維度七:Prompt Cache 最大化 — 把固定成本變折扣

配置文件內容被緩存後,後續調用只收約 10% 費用讀取緩存。關鍵是保持配置文件前綴穩定——"每條消息裏的元數據注入會破壞穩定性"(Issue #21999)。

{
  "agents": {
    "defaults": {
      "models": {
        "anthropic/claude-sonnet-4-6": {
          "params": { "cacheControlTtl": "1h" }    // 啓用 1 小時長窗口緩存
        }
      },
      "contextPruning": {
        "mode": "cache-ttl",    // TTL 到期時先剪枝再重緩存
        "ttl": "1h"
      }
    }
  }
}

如果保留了原生 Heartbeat(等 Bug 修復後),把間隔設為略小於 TTL 的值,可以保持緩存熱度避免冷啓動費用——55m Heartbeat 刷新 1h 緩存,緩存不會到期失效。


維度八:工具調用與併發控制

{
  "agents": {
    "defaults": {
      "contextTokens": 50000,         // 全局底線,各 Agent 可單獨覆蓋
      "imageMaxDimensionPx": 800,     // 截圖密集場景降低視覺 Token
      "maxConcurrent": 1,             // 日常用 1,併發請求 = 併發倍的注入成本
      "subagents": { "maxConcurrent": 3 }
    }
  }
}

把這幾條寫進 AGENTS.md(或合併進來的 TOKEN-RULES 內容):

## 工具調用成本控制
- 讀取文件前優先使用精確檢索,不讀整個文件
- 多個獨立查詢任務合併成一次批量工具調用
- 目錄掃描、日誌彙總等大輸出任務用 /subagents spawn 隔離

額外一項:消費保險,杜絕意外失控

保險措施
在哪裏設
API Key 每日消費上限
Anthropic 控制枱 → API Keys → Spend Limit
子 Agent 併發上限
"subagents": {"maxConcurrent": 3}
TOOLS.md 寫月度預算提醒
超過預算 75% 時主動通知,不等到月底看賬單
優先級速查表
優先級
操作
預計效果
難度
P0
關掉原生 Heartbeat,全部改用隔離 Cron + Gemini Flash(繞過 heartbeat.model Bug)
節省 50–80%,同時修復潛在的 Bug 導致的額外消耗
P0
把默認模型從 Opus 換成 Sonnet;Haiku 處理簡單任務
節省 60–80%
P1
按 Agent 類型分級配置 model + contextTokens(監控/內容/開發三檔)
精準控制,消除全局一刀切的浪費
P1
精簡 SOUL / AGENTS / MEMORY.md;把 TOKEN-RULES 內容合併進 AGENTS.md
每減 1,000 Token ≈ $45/月(100次Opus/天)
P1
移除不常用 Skills,或設 disable-model-invocation: true;精簡 Skill 描述
10 個 Skills ≈ 月省 $180(Opus)
P1
softThresholdTokens + session.reset.mode: "daily" 雙保險
阻止歷史無限膨脹
P1
/compact 前先 /model haiku;大輸出用 /subagents spawn 隔離
防歷史污染
P2
開 cacheControlTtl: "1h" + contextPruning: cache-ttl
減少冷啓動重緩存費用
P2
cron.sessionRetention: "24h";runLog.maxBytes: "2mb"
防止廢棄 session 文件堆積拖慢 Gateway
P3
imageMaxDimensionPx: 800;maxConcurrent: 1;按 Agent 設 compaction.mode
精細化控制
安全網
API Key 控制枱設每日消費上限 + subagents.maxConcurrent: 3
防失控

寫在最後

你已經做了全局配置優化和每個 Agent 的 TOKEN-RULES,這是對的基礎。還沒做的三件事按優先級排:

第一,把所有 Heartbeat 換成 Cron——heartbeat.model 的 Bug 意味着你以為在省錢但實際沒有,這是現在最緊急的一件事。

第二,給每個 Agent 配獨立的 model 和 contextTokens——sysmon 用 Haiku + 20k,agent-creator 用 Sonnet + 100k,不要全部用全局的 50k。

第三,加 session.reset.mode: "daily",和已有的 softThresholdTokens 形成雙保險,每天凌晨自動清零歷史。

其他的優化都是在這三個基礎上的遞進,按需疊加即可。


關於openclaw的系列文章,可以參考如下:
OpenClaw 到底怎麼跑?部署方式與玩法全景
徹底搞懂 OpenClaw 配置體系:這才是 AI Agent 的正確打開方式
本地部署 OpenClaw 自動發佈小紅書:小白完整教程
我的OpenClaw 多Agent 會主動發來 “上班打卡”
12類人羣必裝的OpenClaw Skills
OpenClaw 排錯指南
不寫代碼,如何讓 OpenClaw Agent 學會新技能
OpenClaw 實戰:從0到1搭建你的雲端AI工作流
看看這個龍蝦速度,就知道這OpenClaw有多火,速度跟上
不寫代碼,如何讓 OpenClaw Agent 學會新技能
OpenClaw 曲線救國:通過 CLI 後端使用 Claude 模型
OpenClaw 官方 53 個技能完整指南:功能詳解 + 風險評估 + 安裝建議
OpenClaw 多代理配置指南:讓 AI 團隊幫你同時幹多件事
OpenClaw 完全指南:從零搭建你的 AI 員工團隊
如何申請 Brave Search API 密鑰並配置 OpenClaw
OpenClaw 實戰操作指南:12大熱門應用案例詳細教程
飛書跟openclaw集成實操教程
OpenClaw 命令完整手冊
用上了openclaw,跟telegram能雙向通信了
【該文為openclaw輸出】OpenClaw超簡單且免費的安裝實操教程
今天就分享到這裏,關注嬌姐,持續分享AI乾貨和資訊。想跟着嬌姐一起養AI,評論區回覆AI。