Skip to main content

System Prompt

OpenClaw 為每次 agent 執行建構自訂 system prompt。此 prompt 由 OpenClaw 擁有,不使用 pi-coding-agent 的預設 prompt。 Prompt 由 OpenClaw 組裝並注入每次 agent 執行。

結構

Prompt 刻意保持緊湊並使用固定章節:
  • Tooling:當前工具列表 + 簡短描述。
  • Safety:短暫的護欄提醒,避免尋求權力的行為或繞過監督。
  • Skills(可用時):告知模型如何按需載入技能說明。
  • OpenClaw Self-Update:如何執行 config.applyupdate.run
  • Workspace:工作目錄(agents.defaults.workspace)。
  • Documentation:OpenClaw 文件的本地路徑(repo 或 npm 套件)以及何時讀取。
  • Workspace Files(注入的):指示下方包含 bootstrap 檔案。
  • Sandbox(啟用時):指示沙盒執行時、沙盒路徑以及是否可使用提升的 exec。
  • Current Date & Time:用戶本地時間、時區和時間格式。
  • Reply Tags:支援供應商的選用回覆標籤語法。
  • Heartbeats:心跳 prompt 和確認行為。
  • Runtime:主機、OS、node、模型、repo 根目錄(偵測到時)、thinking 層級(一行)。
  • Reasoning:當前可見性層級 + /reasoning 切換提示。
System prompt 中的安全護欄是建議性的。它們指導模型行為但不強制執行政策。使用工具政策、exec 核准、沙盒和頻道 allowlist 進行硬性執行;操作者可依設計停用這些。

Prompt 模式

OpenClaw 可以為子 agent 渲染較小的 system prompt。執行時為每次執行設定 promptMode(不是用戶端設定):
  • full(預設):包含上述所有章節。
  • minimal:用於子 agent;省略 SkillsMemory RecallOpenClaw Self-UpdateModel AliasesUser IdentityReply TagsMessagingSilent RepliesHeartbeats。Tooling、Safety、 Workspace、Sandbox、Current Date & Time(已知時)、Runtime 和注入的 上下文仍然可用。
  • none:僅返回基礎身份行。
promptMode=minimal 時,額外注入的 prompt 標記為 Subagent Context 而非 Group Chat Context

工作區 bootstrap 注入

Bootstrap 檔案被修剪並附加在 Project Context 下,讓模型在不需要明確讀取的情況下看到身份和設定檔上下文:
  • AGENTS.md
  • SOUL.md
  • TOOLS.md
  • IDENTITY.md
  • USER.md
  • HEARTBEAT.md
  • BOOTSTRAP.md(僅限全新工作區)
  • MEMORY.md 和/或 memory.md(工作區中存在時;任一或兩者都可能被注入)
所有這些檔案在每次輪次都注入到上下文視窗中, 這意味著它們消耗 token。保持簡潔——尤其是 MEMORY.md,它可能隨時間增長並導致意外的高上下文使用量和更頻繁的壓縮。
注意: memory/*.md 每日檔案不會自動注入。它們 透過 memory_searchmemory_get 工具按需存取,因此 除非模型明確讀取,否則不計入上下文視窗。
大型檔案以標記截斷。每個檔案的最大大小由 agents.defaults.bootstrapMaxChars(預設:20000)控制。所有檔案的總注入 bootstrap 內容以 agents.defaults.bootstrapTotalMaxChars (預設:150000)為上限。缺失的檔案注入短暫的缺失檔案標記。當發生截斷時,OpenClaw 可在 Project Context 中注入警告區塊;使用 agents.defaults.bootstrapPromptTruncationWarning 控制(offoncealways; 預設:once)。 子 agent 工作階段只注入 AGENTS.mdTOOLS.md(其他 bootstrap 檔案被過濾以保持子 agent 上下文小)。 內部 hooks 可透過 agent:bootstrap 攔截此步驟以修改或替換注入的 bootstrap 檔案(例如將 SOUL.md 替換為備用角色設定)。 要檢查每個注入檔案的貢獻量(原始 vs 注入、截斷以及工具 schema 開銷),使用 /context list/context detail。見 Context

時間處理

System prompt 在用戶時區已知時包含專用的 Current Date & Time 章節。為保持 prompt 快取穩定,現在只包含時區(不含動態時鐘或時間格式)。 需要當前時間時使用 session_status;狀態卡包含時間戳行。 設定方式:
  • agents.defaults.userTimezone
  • agents.defaults.timeFormatauto | 12 | 24
完整行為詳情見 Date & Time

技能

當存在符合條件的技能時,OpenClaw 注入緊湊的可用技能列表formatSkillsForPrompt),包含每個技能的檔案路徑。Prompt 指示模型使用 read 載入列出位置(工作區、managed 或捆綁)的 SKILL.md。若沒有符合條件的技能,Skills 章節被省略。
<available_skills>
  <skill>
    <name>...</name>
    <description>...</description>
    <location>...</location>
  </skill>
</available_skills>
這在仍能按需啟用技能的情況下保持基礎 prompt 小巧。

Documentation

可用時,system prompt 包含 Documentation 章節,指向本地 OpenClaw 文件目錄(repo 工作區中的 docs/ 或捆綁的 npm 套件文件),並指出公共鏡像、原始碼 repo、社群 Discord 和 ClawHub(https://clawhub.com)以供技能探索。Prompt 指示模型在詢問 OpenClaw 行為、指令、設定或架構時優先參考本地文件,並在可能時自行執行 openclaw status(只在無法存取時才詢問用戶)。