---
read_when:
    - 說明權杖用量、費用或上下文視窗
    - 偵錯上下文增長或壓縮行為
summary: OpenClaw 如何建立提示詞上下文並回報權杖用量與成本
title: 權杖用量與費用
x-i18n:
    generated_at: "2026-07-11T21:49:27Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    provider: openai
    source_hash: 07c79e137d6809ccf8c435ef62641c0cc7579b3ec43acd513e430a7ab91cd47c
    source_path: reference/token-use.md
    workflow: 16
---

OpenClaw 追蹤的是 **token**，而非字元。Token 因模型而異，但對英文文字而言，大多數
OpenAI 風格的模型平均每個 token 約為 4 個字元。

## 系統提示詞的建構方式

OpenClaw 會在每次執行時組裝自己的系統提示詞，其中包括：

- 工具清單與簡短說明
- Skills 清單（僅含中繼資料；指示會依需求透過 `read` 載入）。原生
  Codex 輪次會取得精簡的 Skills 區塊，作為僅限該輪次的協作
  開發者指示；其他執行框架則會在一般提示詞介面中取得該區塊。
  其大小受 `skills.limits.maxSkillsPromptChars` 限制，並可透過
  `agents.list[].skillsLimits.maxSkillsPromptChars` 針對個別代理程式選擇性覆寫。
- 自我更新指示
- 工作區與啟動檔案（`AGENTS.md`、`SOUL.md`、`TOOLS.md`、
  `IDENTITY.md`、`USER.md`、`HEARTBEAT.md`、新建時的 `BOOTSTRAP.md`，以及
  存在時的 `MEMORY.md`）。大型注入檔案會依
  `agents.defaults.bootstrapMaxChars` 截斷（預設：`20000`）；啟動內容
  注入總量則受 `agents.defaults.bootstrapTotalMaxChars` 限制（預設：
  `60000`）。
  - 當該工作區可使用記憶工具時，原生 Codex 輪次不會貼入原始
    `MEMORY.md`；改為在僅限該輪次的協作開發者指示中取得一小段記憶指引，
    並依需求使用記憶工具。若工具已停用、無法使用記憶搜尋，或
    目前工作區與代理程式記憶工作區不同，`MEMORY.md`
    會回退至一般受限的輪次情境路徑。
  - 根目錄中的小寫 `memory.md` 永遠不會被注入。它是
    `openclaw doctor --fix` 的舊版修復輸入，該命令會將其遷移至 `MEMORY.md`。
  - `memory/*.md` 每日檔案不屬於一般啟動提示詞的一部分；
    在一般輪次中仍會依需求透過記憶工具取得。重設／啟動
    模型執行可在第一個輪次前置加入一次性的啟動情境區塊，其中包含近期
    每日記憶，並由 `agents.defaults.startupContext` 控制。單純的聊天
    `/new` 與 `/reset` 只會回覆確認，不會叫用模型。
  - 壓縮後的 `AGENTS.md` 摘錄是獨立內容，必須明確選擇啟用
    `agents.defaults.compaction.postCompactionSections`。
- 時間（UTC 與使用者時區）
- 回覆標籤與心跳偵測行為
- 執行階段中繼資料（主機／作業系統／模型／思考模式）

完整細節請參閱[系統提示詞](/zh-TW/concepts/system-prompt)。

記錄憑證或驗證程式碼片段時，請使用
[密鑰預留位置慣例](/zh-TW/reference/secret-placeholder-conventions)，以避免
僅變更文件時觸發密鑰掃描器的誤判。

## 情境視窗中包含哪些內容

模型接收到的所有內容都會計入情境限制：

- 系統提示詞（上述所有區段）
- 對話歷程（使用者與助理訊息）
- 工具呼叫與工具結果
- 附件／逐字稿（圖片、音訊、檔案）
- 壓縮摘要與修剪產物
- 供應商包裝層或安全標頭（雖不可見，但仍會計入）

高度依賴執行階段的介面在 `agents.defaults.contextLimits` 下有各自明確的上限
（可於 `agents.list[].contextLimits` 下針對個別代理程式覆寫）：

| 鍵                       | 用途                                                                     |
| ------------------------ | ------------------------------------------------------------------------ |
| `memoryGetMaxChars`      | `memory_get` 截斷前最多可傳回的字元數。                                  |
| `memoryGetDefaultLines`  | 請求省略 `lines` 時，`memory_get` 預設使用的行數視窗。                    |
| `toolResultMaxChars`     | 單一即時工具結果的進階上限（最高 `1000000` 個字元）。                    |
| `postCompactionMaxChars` | 壓縮後重新整理時，從 `AGENTS.md` 保留的最大字元數。                      |

這些是受限的執行階段摘錄與執行階段擁有的注入區塊，
與啟動限制、啟動情境限制及 Skills 提示詞限制相互獨立。

`toolResultMaxChars` 預設未設定，因此 OpenClaw 會依有效的模型情境視窗推導即時
工具結果上限：低於 100K token 時為 `16000` 個字元，達 100K 以上時為
`32000` 個字元，達 200K 以上時為 `64000` 個字元。
即使設定了更大的明確上限，執行階段情境占比防護仍會將單一工具結果限制在
情境視窗的 30%。

對於圖片，OpenClaw 會在呼叫供應商前，縮小逐字稿／工具圖片承載內容。
可透過 `agents.defaults.imageMaxDimensionPx` 調整（預設：`1200`）：

- 較低的值可減少視覺 token 用量與承載內容大小。
- 較高的值可為大量使用 OCR／UI 的螢幕擷取畫面保留更多視覺細節。

若要查看實際細分資料（每個注入檔案、工具、Skills 與系統
提示詞大小），請使用 `/context list` 或 `/context detail`。另請參閱
[情境](/zh-TW/concepts/context)。

## 如何查看目前的 token 用量

在聊天中：

- `/status` -> 顯示包含豐富表情符號的狀態卡，其中列出工作階段模型、情境用量、
  上次回覆的輸入／輸出 token，以及為目前模型設定本機定價時的預估成本。
- `/usage off|tokens|full` -> 在每則回覆附加單次回覆用量頁尾。
  此設定會在個別工作階段中持續保留（儲存為 `responseUsage`）。
  - `/usage reset`（別名：`inherit`、`clear`、`default`）會清除
    工作階段覆寫，使其重新繼承已設定的預設值。
  - `/usage tokens` 顯示該輪次的 token／快取詳細資料。
  - `/usage full` 顯示精簡的模型／情境／成本詳細資料；僅當 OpenClaw
    具有用量中繼資料以及目前模型的本機定價時，才會顯示預估成本。
    自訂 `messages.usageTemplate` 版面配置可包含 token／快取欄位。
- `/usage cost` -> 顯示來自 OpenClaw 工作階段日誌的本機成本摘要。

其他介面：

- **終端介面／網頁終端介面：** 支援 `/status` 與 `/usage`。
- **命令列介面：** `openclaw status --usage` 與 `openclaw channels list` 會顯示
  正規化的供應商配額視窗（`X% left`，而非單次回覆成本）。
  目前支援用量視窗的供應商包括：Claude (Anthropic)、ClawRouter、Copilot
  (GitHub)、DeepSeek、Gemini (Google Gemini CLI)、MiniMax、OpenAI、Xiaomi、
  Xiaomi Token Plan 與 z.ai。

用量介面會在顯示前，先將常見的供應商原生欄位別名正規化。對於 OpenAI
系列的 Responses 流量，這包括 `input_tokens`／`output_tokens` 與
`prompt_tokens`／`completion_tokens`，因此傳輸方式特有的欄位名稱不會改變
`/status`、`/usage` 或工作階段摘要。Gemini CLI 用量也會正規化：預設的
`stream-json` 剖析器會讀取助理的 `message` 事件，而 `stats.cached` 會對應至
`cacheRead`；當命令列介面省略明確的 `stats.input` 欄位時，則使用
`stats.input_tokens - stats.cached`。舊版 JSON 覆寫仍會從 `response`
讀取回覆文字。

對於原生 OpenAI 系列的 Responses 流量，WebSocket／SSE 用量別名會以相同方式
正規化；當 `total_tokens` 遺漏或為 `0` 時，總量會回退為正規化後的輸入與輸出
之和。

當目前工作階段快照資料不足時，`/status` 與 `session_status`
可從最近的逐字稿用量日誌還原 token／快取計數器與目前作用中的執行階段模型標籤。
現有非零的即時值仍優先於逐字稿回退值；當已儲存的總量遺漏或較小時，
以提示詞為導向且較大的逐字稿總量可取得優先權。

供應商配額視窗的用量驗證會優先取自供應商專屬掛鉤；
若供應商沒有掛鉤（或掛鉤無法解析出 token），OpenClaw 會回退至
驗證設定檔、環境變數或設定中相符的 OAuth／API 金鑰憑證。

助理逐字稿項目會保存相同的正規化用量結構；當目前模型已設定定價且供應商
傳回用量中繼資料時，也會包含 `usage.cost`。如此一來，即使即時
執行階段狀態已消失，`/usage cost` 與以逐字稿為依據的工作階段狀態仍有穩定的
資料來源。

OpenClaw 會將供應商用量計算與目前情境快照分開處理。供應商的 `usage.total`
可能包含已快取的輸入、輸出，以及多次工具迴圈模型呼叫，因此適合用於成本與
遙測，但可能高估即時情境視窗。情境顯示與診斷會使用最新的提示詞快照
（`promptTokens`；若沒有提示詞快照，則使用最後一次模型呼叫）作為
`context.used`。

## 成本估算（顯示時）

成本是依據您的模型定價設定估算：

```text
models.providers.<provider>.models[].cost
```

這些是 `input`、`output`、`cacheRead` 與 `cacheWrite` 的
**每 100 萬 token 美元價格**。若缺少定價，`/usage full` 會省略成本；
若您需要在每則回覆中查看 token／快取詳細資料，請使用
`/usage tokens` 或自訂 `messages.usageTemplate`。成本顯示不限於 API 金鑰
驗證：若 `aws-sdk` 等非 API 金鑰供應商的已設定模型項目包含本機定價，且
供應商傳回用量中繼資料，也可以顯示預估成本。

當附屬服務與頻道到達閘道就緒路徑後，OpenClaw 會針對尚未具備本機定價的
已設定模型參照，啟動選用的背景定價啟動程序。該程序會擷取遠端 OpenRouter 與
LiteLLM 定價目錄。在離線或受限網路中，可設定 `models.pricing.enabled: false`
以略過這些目錄擷取；明確的 `models.providers.*.models[].cost` 項目仍會用於
本機成本估算。

## 快取 TTL 與修剪的影響

供應商提示詞快取僅適用於快取 TTL 視窗內。OpenClaw 可選擇執行
**快取 TTL 修剪**：快取 TTL 到期後修剪工作階段，接著重設快取視窗，
讓後續請求重複使用新快取的情境，而非重新快取完整歷程。
當工作階段閒置時間超過 TTL 時，這可降低快取寫入成本。

請在[閘道設定](/zh-TW/gateway/configuration)中進行設定，並參閱
[工作階段修剪](/zh-TW/concepts/session-pruning)了解行為詳情。

心跳偵測可在閒置期間讓快取保持**暖機**。若您的模型快取 TTL 為 `1h`，
將心跳偵測間隔設為略低於該值（例如 `55m`），可避免重新快取完整提示詞，
進而降低快取寫入成本。

在多代理程式設定中，您可以共用一份模型設定，並透過
`agents.list[].params.cacheRetention` 針對每個代理程式調整快取行為。

如需逐項設定的完整指南，請參閱[提示詞快取](/zh-TW/reference/prompt-caching)。

對於 Anthropic API 定價，快取讀取明顯比輸入 token 便宜，而快取寫入則以
較高倍率計費。如需最新費率與 TTL 倍率，請參閱 Anthropic 的提示詞快取定價：
[https://docs.anthropic.com/docs/build-with-claude/prompt-caching](https://docs.anthropic.com/docs/build-with-claude/prompt-caching)

### 範例：使用心跳偵測讓 1h 快取保持暖機

```yaml
agents:
  defaults:
    model:
      primary: "anthropic/claude-opus-4-6"
    models:
      "anthropic/claude-opus-4-6":
        params:
          cacheRetention: "long"
    heartbeat:
      every: "55m"
```

### 範例：使用個別代理程式快取策略的混合流量

```yaml
agents:
  defaults:
    model:
      primary: "anthropic/claude-opus-4-6"
    models:
      "anthropic/claude-opus-4-6":
        params:
          cacheRetention: "long" # 多數代理程式的預設基準
  list:
    - id: "research"
      default: true
      heartbeat:
        every: "55m" # 讓長效快取為深度工作階段保持暖機
    - id: "alerts"
      params:
        cacheRetention: "none" # 避免為突發通知寫入快取
```

`agents.list[].params` 會合併至所選模型的 `params` 之上，因此您可以
僅覆寫 `cacheRetention`，並原樣繼承其他模型預設值。

### Anthropic 100 萬 token 情境

OpenClaw 會為支援正式版的 Claude 4.x 模型（例如 Opus 4.8、Opus 4.7、Opus
4.6 與 Sonnet 4.6）配置 Anthropic 的 100 萬 token 情境視窗。這些模型不需要
設定 `params.context1m: true`。

```yaml
agents:
  defaults:
    models:
      "anthropic/claude-opus-4-6":
        alias: opus
```

舊版設定可以保留 `context1m: true`，但 OpenClaw 不再因這項設定傳送
Anthropic 已停用的 `context-1m-2025-08-07` Beta 標頭，也不會將不支援的
舊版 Claude 模型擴展至 100 萬 token。

要求：憑證必須符合長上下文使用資格。否則，
Anthropic 會針對該請求回傳供應商端的速率限制錯誤。

如果您使用 OAuth／訂閱權杖（`sk-ant-oat-*`）驗證 Anthropic，
OpenClaw 會保留 OAuth 所需的 Anthropic beta 標頭，同時移除舊版設定中
可能仍存在但已停用的 `context-1m-*` beta。

## 降低權杖壓力的訣竅

- 使用 `/compact` 摘要長時間的工作階段。
- 在工作流程中精簡大型工具輸出。
- 對於大量使用螢幕截圖的工作階段，請降低 `agents.defaults.imageMaxDimensionPx`。
- 保持 Skills 說明簡短（Skills 清單會注入提示詞中）。
- 對於冗長的探索性工作，優先使用較小的模型。

如需確切的 Skills 清單額外負擔計算公式，請參閱 [Skills](/zh-TW/tools/skills)。

## 相關內容

- [API 使用量與費用](/zh-TW/reference/api-usage-costs)
- [提示詞快取](/zh-TW/reference/prompt-caching)
- [使用量追蹤](/zh-TW/concepts/usage-tracking)
