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

翻譯文件

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

系統提示

OpenClaw 系統提示的組裝方式,包括結構、提示模式、工作區引導注入、時間處理、技能及文件路徑。

概覽

OpenClaw 為每次 Agent 執行建構專屬的系統提示。此提示由 OpenClaw 擁有,不使用 pi-coding-agent 的預設提示。

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

結構

提示刻意精簡,使用固定區段:

  • Tooling:當前工具清單 + 簡短描述。
  • Safety:簡短的安全護欄提醒,避免權力追求行為或繞過監督。
  • Skills(可用時):告知模型如何按需載入技能指令。
  • OpenClaw Self-Update:如何執行 config.applyupdate.run
  • Workspace:工作目錄(agents.defaults.workspace)。
  • Documentation:本地 OpenClaw 文件路徑及何時參考。
  • 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 時,額外注入的提示會標記為 Subagent Context 而非 Group Chat Context

工作區引導注入

引導檔案會被修剪並附加在 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)。跨檔案的總注入引導內容上限由 agents.defaults.bootstrapTotalMaxChars 設定(預設:150000)。缺失的檔案會注入一個簡短的缺失檔案標記。

子 Agent 工作階段僅注入 AGENTS.mdTOOLS.md(其他引導檔案會被過濾以保持子 Agent 上下文精簡)。

內部 Hook 可透過 agent:bootstrap 攔截此步驟,以變更或替換注入的引導檔案(例如將 SOUL.md 替換為替代人設)。

要檢查每個注入檔案的貢獻(原始 vs 注入大小、截斷狀況,加上工具結構描述開銷),使用 /context list/context detail。請參閱 上下文

時間處理

系統提示在使用者時區已知時包含專用的 Current Date & Time 區段。為保持提示快取穩定性,現在僅包含時區(無動態時鐘或時間格式)。

當 Agent 需要當前時間時使用 session_status;狀態卡包含時間戳記行。

設定方式:

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

完整行為詳情請參閱 日期與時間

技能

當存在合格的技能時,OpenClaw 會注入精簡的可用技能清單formatSkillsForPrompt),其中包含每個技能的檔案路徑。提示指示模型使用 read 在列出的位置(工作區、受管理或內建)載入 SKILL.md。若沒有合格的技能,Skills 區段會被省略。

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

這保持基礎提示精簡,同時仍能啟用目標技能的使用。

文件

可用時,系統提示包含 Documentation 區段,指向本地 OpenClaw 文件目錄(儲存庫工作區中的 docs/ 或內建的 npm 套件文件),同時也提及公開鏡像、原始碼儲存庫、社群 Discord 和 ClawHub(https://clawhub.com)用於技能探索。提示指示模型在查詢 OpenClaw 行為、命令、設定或架構時先參考本地文件,並在可能時自行執行 openclaw status(僅在無存取權限時才詢問使用者)。