系統提示詞

OpenClaw 會為每次 Agent 執行建構一份自訂的系統提示詞。這份提示詞歸 OpenClaw 所有,不使用 pi-coding-agent 的預設提示詞。

提示詞由 OpenClaw 組裝後注入到每次 Agent 執行中。

結構

提示詞刻意保持精簡,使用固定的章節:

  • Tooling:當前可用的工具清單 + 簡短說明。
  • Safety:簡短的護欄提醒,避免追求權力的行為或繞過監督機制。
  • Skills(可用時):告知模型如何按需載入技能說明。
  • OpenClaw Self-Update:如何執行 config.applyupdate.run
  • Workspace:工作目錄(agents.defaults.workspace)。
  • Documentation:OpenClaw 文件的本地路徑(倉庫或 npm 套件),以及何時應參閱。
  • Workspace Files (injected):指出下方包含了啟動檔案。
  • Sandbox(啟用時):說明沙箱化執行期間、沙箱路徑,以及是否可使用提升權限的 exec。
  • Current Date & Time:使用者當地時間、時區和時間格式。
  • Reply Tags:支援的供應商所使用的選用回覆標籤語法。
  • Heartbeats:心跳提示詞和確認行為。
  • Runtime:主機、作業系統、Node 版本、模型、倉庫根目錄(偵測到時)、思考等級(一行)。
  • Reasoning:當前可見性層級 + /reasoning 切換提示。

系統提示詞中的安全護欄是建議性質的。它們引導模型行為但不強制執行策略。若需硬性強制,請使用工具策略、exec 核准、沙箱化和頻道允許清單;營運者可依設計停用這些。

提示詞模式

OpenClaw 可為子 Agent 產生較小的系統提示詞。執行期間會為每次執行設定 promptMode(非使用者面向設定):

  • full(預設):包含上述所有章節。
  • minimal:用於子 Agent;省略 SkillsMemory RecallOpenClaw Self-UpdateModel AliasesUser IdentityReply TagsMessagingSilent RepliesHeartbeats。Tooling、Safety、Workspace、Sandbox、Current Date & Time(已知時)、Runtime 和注入的上下文仍然可用。
  • none:只回傳基礎身分行。

promptMode=minimal 時,額外注入的提示詞標籤從 Group Chat Context 改為 Subagent Context

Workspace 啟動檔案注入

啟動檔案會被裁減後附加在 Project Context 下方,讓模型無需明確讀取就能看到身分和 Profile 上下文:

  • AGENTS.md
  • SOUL.md
  • TOOLS.md
  • IDENTITY.md
  • USER.md
  • HEARTBEAT.md
  • BOOTSTRAP.md(僅在全新 Workspace 時)
  • MEMORY.md(存在時),否則以小寫 memory.md 作為備援

這些檔案每一輪都會注入到上下文視窗中,也就是說它們會消耗 Token。請保持精簡,尤其是 MEMORY.md,它可能隨時間增長,導致意外的高上下文使用量和更頻繁的壓縮。

注意: memory/*.md 每日檔案不會自動注入。它們透過 memory_searchmemory_get 工具按需存取,因此除非模型明確讀取,否則不計入上下文視窗。

大型檔案會被截斷並加上標記。每個檔案的最大大小由 agents.defaults.bootstrapMaxChars 控制(預設:20000)。所有注入的啟動內容總量受 agents.defaults.bootstrapTotalMaxChars 限制(預設:150000)。缺少的檔案會注入一則簡短的缺失標記。截斷發生時,OpenClaw 可在 Project Context 中注入一段警告;透過 agents.defaults.bootstrapPromptTruncationWarning 控制(offoncealways;預設:once)。

子 Agent Session 只注入 AGENTS.mdTOOLS.md(其他啟動檔案會被過濾以保持子 Agent 上下文精簡)。

內部 Hook 可透過 agent:bootstrap 攔截此步驟,修改或替換注入的啟動檔案(例如將 SOUL.md 換成替代人格)。

要檢視每個注入檔案的貢獻度(原始 vs 注入大小、截斷情況、加上工具 Schema 開銷),請使用 /context list/context detail。參閱 Context

時間處理

系統提示詞在使用者時區已知時包含專門的 Current Date & Time 章節。為了維持提示詞快取穩定性,目前只包含時區(不含動態時鐘或時間格式)。

當 Agent 需要取得當前時間時,請使用 session_status;狀態卡片中包含時間戳記行。

相關設定:

  • agents.defaults.userTimezone
  • agents.defaults.timeFormatauto | 12 | 24

完整行為細節請參閱 Date & Time

Skills

當有符合條件的 Skill 存在時,OpenClaw 會注入精簡的可用 Skill 清單formatSkillsForPrompt),包含每個 Skill 的檔案路徑。提示詞指示模型使用 read 載入所列位置(Workspace、受管理或內建)的 SKILL.md。若無符合條件的 Skill,Skills 章節會被省略。

<available_skills>
  <skill>
    <name>...</name>
    <description>...</description>
    <location>...</location>
  </skill>
</available_skills>

這樣保持基礎提示詞精簡,同時仍能針對性地使用 Skill。

Documentation

可用時,系統提示詞包含 Documentation 章節,指向本地 OpenClaw 文件目錄(倉庫 Workspace 中的 docs/ 或 npm 套件內建文件),同時註明公開鏡像、原始碼倉庫、社群 Discord 和 ClawHub(https://clawhub.com)供 Skill 探索。提示詞指示模型優先查閱本地文件了解 OpenClaw 行為、指令、設定或架構,並在可能時自行執行 openclaw status(只在無法存取時才詢問使用者)。