OpenClaw System Prompt 運作機制全解析
你有沒有遇過這種情況:給 AI Agent 下了指令,它卻忘記自己在哪個目錄,或者根本不知道手邊有哪些工具可以用?當 System Prompt 變得又臭又長時,模型不只反應變慢,還容易漏掉關鍵的約束條件。
OpenClaw 捨棄了 p-coding-agent 的預設設定,改用一套自研的 System Prompt 構建邏輯。這套流程會根據你當前的環境自動組裝最精簡的指令,確保 Agent 既聰明又不會因為資訊過載而當機。
需要準備的東西
Section titled “需要準備的東西”在調整 System Prompt 行為前,請確保你具備以下條件:
- 已安裝並運行 OpenClaw
- 專案 Workspace 中包含基礎配置文件(如
AGENTS.md或USER.md) - 已在配置中設定
agents.defaults.userTimezone
Quick Start: 5 分鐘掌握 Prompt 注入
Section titled “Quick Start: 5 分鐘掌握 Prompt 注入”想讓你的 Agent 快速進入狀況,只需完成以下四個步驟:
- 準備基礎文件:在 Workspace 根目錄建立
AGENTS.md與IDENTITY.md,定義 Agent 的身分與任務。 - 設定時區:在配置中指定
agents.defaults.userTimezone,讓 Agent 具備正確的時間觀念。 - 檢查注入內容:使用
/context list指令查看哪些文件被選入 System Prompt。 - 驗證細節:使用
/context detail查看文件是否因過大而被截斷。
System Prompt 結構
Section titled “System Prompt 結構”OpenClaw 的 System Prompt 是高度結構化的,主要包含以下幾個區塊:
- Tooling: 當前的工具列表與簡短描述。
- Safety: 護欄提醒,防止 AI 繞過監管。
- Skills: 告知模型如何在需要時加載技能指令。
- Workspace: 當前工作目錄(
agents.defaults.workspace)。 - Documentation: 本地文件路徑,引導模型優先閱讀本地文檔。
- Runtime: 包含主機環境、OS、Node.js 版本及模型資訊。
- Current Date & Time: 使用者當地的時區資訊。
Prompt 模式 (promptMode)
Section titled “Prompt 模式 (promptMode)”OpenClaw 會根據任務類型自動切換 Prompt 模式,這不是由使用者直接配置,而是由 Runtime 控制:
full(預設): 包含所有區塊,適用於主 Agent。minimal: 移除 Skills、Memory Recall、Self-Update 等區塊,專為 Sub-agents 設計。none: 僅回傳基礎的身分標識。
Workspace 文件注入 (Bootstrap)
Section titled “Workspace 文件注入 (Bootstrap)”為了讓模型一開始就具備專案上下文,OpenClaw 會自動讀取並修剪以下文件,將其附加在 Project Context 區塊下:
AGENTS.md/SOUL.mdTOOLS.md/IDENTITY.mdUSER.md/HEARTBEAT.mdBOOTSTRAP.md(僅在全新 Workspace 中出現)
如果文件內容太長,OpenClaw 會進行截斷。你可以透過 agents.defaults.bootstrapMaxChars 來控制每個文件的字數上限(預設為 20000 字)。
技能與時間處理
Section titled “技能與時間處理”當環境中有可用的技能時,OpenClaw 會注入一個精簡的列表:
\<available_skills\> \<skill\> \<name\>...\</name\> \<description\>...\</description\> \<location\>...\</location\> \</skill\>\</available_skills\>這會要求模型在需要時使用 read 指令去讀取特定路徑的 SKILL.md,而不是把所有技能內容一次塞進 Prompt。
為了保持 Prompt Cache 的穩定性,System Prompt 現在只包含 時區 (Time Zone)。如果 Agent 需要精確的當前時間,它會使用 session_status 工具來獲取狀態卡片上的時間戳。
你可以透過以下參數配置:
agents.defaults.userTimezoneagents.defaults.timeFormat(auto|12|24)
文件內容被截斷
Section titled “文件內容被截斷”如果你發現 Agent 遺失了 AGENTS.md 結尾的指令,通常是因為文件超過了 bootstrapMaxChars 的限制。
- 方案:增加
agents.defaults.bootstrapMaxChars的數值,或精簡文件內容。
Agent 獲取的時間不準確
Section titled “Agent 獲取的時間不準確”如果 Agent 回報的時間與你本地不符,通常是時區配置錯誤。
- 方案:檢查
agents.defaults.userTimezone是否正確設定,並確保 Agent 是透過session_status獲取時間而非自行通靈。
想要更進一步優化你的 AI 開發流程?歡迎諮詢 AI Setup Assistant。
OpenClaw Expert
還是卡住了?
如果這篇文件沒有解決你的情境,直接問 OpenClaw Expert,拿到可執行步驟。