本網站為獨立社群專案,與 OpenClaw 官方無任何關聯。內容僅供參考。 了解更多

翻譯文件

本頁為社群翻譯版本,可能與官方最新內容有出入。 查看官方英文原文 →

上下文

OpenClaw 上下文的概念說明,涵蓋上下文視窗的組成、檢視命令、注入的工作區檔案、技能與工具成本。

概覽

「上下文」是 OpenClaw 傳送給模型進行單次執行的所有內容。它受限於模型的上下文視窗(Token 上限)。

入門心智模型:

  • 系統提示(OpenClaw 建構):規則、工具、技能清單、時間/執行環境,以及注入的工作區檔案。
  • 對話歷史:此工作階段中你的訊息 + 助理的訊息。
  • 工具呼叫/結果 + 附件:命令輸出、檔案讀取、圖片/音訊等。

上下文與「記憶」不同:記憶可以儲存在磁碟上稍後重新載入;上下文是模型當前視窗中的內容。

快速入門(檢視上下文)

  • /status → 快速查看「我的視窗有多滿?」以及工作階段設定。
  • /context list → 已注入的內容 + 粗略大小(每個檔案 + 總計)。
  • /context detail → 更深入的分解:每個檔案、每個工具結構描述大小、每個技能條目大小,以及系統提示大小。
  • /usage tokens → 在正常回覆後附加每次回覆的使用量頁尾。
  • /compact → 將較舊的歷史記錄摘要為精簡條目以釋放視窗空間。

另請參閱:斜線命令Token 使用與成本壓縮

範例輸出

數值因模型、供應商、工具策略和工作區內容而異。

/context list

🧠 Context breakdown
Workspace: <workspaceDir>
Bootstrap max/file: 20,000 chars
Sandbox: mode=non-main sandboxed=false
System prompt (run): 38,412 chars (~9,603 tok) (Project Context 23,901 chars (~5,976 tok))

Injected workspace files:
- AGENTS.md: OK | raw 1,742 chars (~436 tok) | injected 1,742 chars (~436 tok)
- SOUL.md: OK | raw 912 chars (~228 tok) | injected 912 chars (~228 tok)
- TOOLS.md: TRUNCATED | raw 54,210 chars (~13,553 tok) | injected 20,962 chars (~5,241 tok)
- IDENTITY.md: OK | raw 211 chars (~53 tok) | injected 211 chars (~53 tok)
- USER.md: OK | raw 388 chars (~97 tok) | injected 388 chars (~97 tok)
- HEARTBEAT.md: MISSING | raw 0 | injected 0
- BOOTSTRAP.md: OK | raw 0 chars (~0 tok) | injected 0 chars (~0 tok)

Skills list (system prompt text): 2,184 chars (~546 tok) (12 skills)
Tools: read, edit, write, exec, process, browser, message, sessions_send, …
Tool list (system prompt text): 1,032 chars (~258 tok)
Tool schemas (JSON): 31,988 chars (~7,997 tok) (counts toward context; not shown as text)
Tools: (same as above)

Session tokens (cached): 14,250 total / ctx=32,000

/context detail

🧠 Context breakdown (detailed)

Top skills (prompt entry size):
- frontend-design: 412 chars (~103 tok)
- oracle: 401 chars (~101 tok)
… (+10 more skills)

Top tools (schema size):
- browser: 9,812 chars (~2,453 tok)
- exec: 6,240 chars (~1,560 tok)
… (+N more tools)

什麼計入上下文視窗

模型接收的所有內容都會計數,包括:

  • 系統提示(所有區段)。
  • 對話歷史。
  • 工具呼叫 + 工具結果。
  • 附件/逐字稿(圖片/音訊/檔案)。
  • 壓縮摘要和修剪產物。
  • 供應商「包裝」或隱藏標頭(不可見,但仍被計數)。

OpenClaw 如何建構系統提示

系統提示由 OpenClaw 擁有,每次執行時重新建構。它包括:

  • 工具清單 + 簡短描述。
  • 技能清單(僅元資料;請參見下方)。
  • 工作區位置。
  • 時間(UTC + 轉換的使用者時間,若已設定)。
  • 執行環境元資料(主機/OS/模型/思考)。
  • Project Context 下注入的工作區引導檔案。

完整分解:系統提示

注入的工作區檔案(Project Context)

預設情況下,OpenClaw 會注入一組固定的工作區檔案(若存在):

  • AGENTS.md
  • SOUL.md
  • TOOLS.md
  • IDENTITY.md
  • USER.md
  • HEARTBEAT.md
  • BOOTSTRAP.md(僅首次執行)

大型檔案會使用 agents.defaults.bootstrapMaxChars 進行每檔截斷(預設 20000 字元)。OpenClaw 還透過 agents.defaults.bootstrapTotalMaxChars 對跨檔案的引導注入總量設定上限(預設 150000 字元)。/context 顯示原始 vs 注入大小以及是否發生截斷。

技能:注入的 vs 按需載入的

系統提示包含精簡的技能清單(名稱 + 描述 + 位置)。此清單有實際的開銷。

技能指令預設不包含。模型應在需要時才 read 技能的 SKILL.md

工具:兩種成本

工具以兩種方式影響上下文:

  1. 系統提示中的工具清單文字(你看到的「Tooling」部分)。
  2. 工具結構描述(JSON)。這些被傳送給模型以便它呼叫工具。即使你看不到它們以純文字呈現,它們仍計入上下文。

/context detail 分解最大的工具結構描述,以便你了解什麼占主導地位。

命令、指令與「行內捷徑」

斜線命令由 Gateway 處理。有幾種不同的行為:

  • 獨立命令:僅包含 /... 的訊息作為命令執行。
  • 指令/think/verbose/reasoning/elevated/model/queue 在模型看到訊息前被剝離。
    • 僅含指令的訊息會持久化工作階段設定。
    • 正常訊息中的行內指令作為每條訊息的提示。
  • 行內捷徑(僅限允許清單中的發送者):正常訊息中的某些 /... Token 可以立即執行(例如:「hey /status」),並在模型看到剩餘文字前被剝離。

詳情:斜線命令

工作階段、壓縮與修剪(持久化的內容)

什麼跨訊息持久化取決於機制:

  • 正常歷史在工作階段逐字稿中持久化,直到被策略壓縮/修剪。
  • 壓縮將摘要持久化到逐字稿中,並保留最近的訊息完整。
  • 修剪從執行的記憶體中提示移除舊的工具結果,但不改寫逐字稿。

文件:工作階段壓縮工作階段修剪

/context 實際報告的內容

/context 優先使用最新的執行時建構的系統提示報告(若可用):

  • System prompt (run) = 從最後一次嵌入的(具工具能力的)執行中擷取,並持久化於工作階段儲存中。
  • System prompt (estimate) = 在沒有執行報告存在時(或透過不產生報告的 CLI 後端執行時)即時計算。

無論哪種方式,它都報告大小和主要貢獻者;它不會傾印完整的系統提示或工具結構描述。