Appearance
System Prompt(系统提示词)
OpenClaw 为每次 agent 运行构建一个定制化的系统提示词。该提示词由 OpenClaw 完全掌控,不使用 pi-coding-agent 的默认提示词。
提示词由 OpenClaw 组装并注入每次 agent 运行。
结构
提示词设计紧凑,使用固定章节:
- Tooling:当前工具列表及简短描述。
- Safety:简短的安全提醒,避免寻求权力或绕过监管。
- Skills(可用时):告知模型如何按需加载技能说明。
- OpenClaw Self-Update:如何运行
config.apply和update.run。 - Workspace:工作目录(
agents.defaults.workspace)。 - Documentation:OpenClaw 文档的本地路径(仓库或 npm 包)及何时读取。
- Workspace Files (injected):标识引导文件已注入到下方。
- Sandbox(启用时):标识沙箱运行时、沙箱路径、是否可用提权执行。
- Current Date & Time:用户本地时间、时区及时间格式。
- Reply Tags:受支持提供商的可选回复标签语法。
- Heartbeats:心跳提示和确认行为。
- Runtime:主机、操作系统、Node 版本、模型、仓库根目录(检测到时)、思考级别(单行)。
- Reasoning:当前可见级别 +
/reasoning切换提示。
系统提示词中的安全防护措施属于建议性内容,引导模型行为但不强制执行策略。如需硬性约束,请使用工具策略、exec 审批、沙箱和频道白名单;运营者可按需禁用这些机制。
提示词模式
OpenClaw 可为子代理渲染精简版系统提示词。运行时为每次运行设置 promptMode(非用户可见配置):
full(默认):包含以上所有章节。minimal:用于子代理;省略 Skills、Memory Recall、OpenClaw Self-Update、Model Aliases、User Identity、Reply Tags、Messaging、Silent Replies 和 Heartbeats。Tooling、Safety、Workspace、Sandbox、Current Date & Time(已知时)、Runtime 和注入上下文保持可用。none:只返回基础身份信息行。
当 promptMode=minimal 时,额外注入的提示词标签为 Subagent Context 而非 Group Chat Context。
Workspace 引导文件注入
引导文件经过裁剪后以 Project Context 形式追加,让模型无需显式读取即可看到身份和配置信息:
AGENTS.mdSOUL.mdTOOLS.mdIDENTITY.mdUSER.mdHEARTBEAT.mdBOOTSTRAP.md(仅限全新 workspace)MEMORY.md(存在时),否则回退到小写的memory.md
所有这些文件都在每轮对话中注入到上下文窗口,因此会消耗 token。请保持简洁——尤其是会随时间增长的 MEMORY.md,过大会导致意外的高上下文消耗和更频繁的压缩。
注意:
memory/*.md每日文件不会自动注入。它们通过memory_search和memory_get工具按需访问,因此不会占用上下文窗口,除非模型明确读取它们。
超大文件会被截断并附加标记。每个文件的最大大小由 agents.defaults.bootstrapMaxChars(默认:20000)控制。所有文件的总注入大小上限由 agents.defaults.bootstrapTotalMaxChars(默认:150000)控制。缺失的文件会注入简短的缺失标记。发生截断时,OpenClaw 可在 Project Context 中注入警告块;通过 agents.defaults.bootstrapPromptTruncationWarning 控制(off、once、always;默认:once)。
子代理会话只注入 AGENTS.md 和 TOOLS.md(其他引导文件被过滤掉,以保持子代理上下文精简)。
内部钩子可通过 agent:bootstrap 拦截此步骤,对注入的引导文件进行变更或替换(例如将 SOUL.md 替换为备用人格)。
要查看每个注入文件的贡献量(原始大小、注入大小、截断情况以及工具 schema 开销),请使用 /context list 或 /context detail。参见Context。
时间处理
当用户时区已知时,系统提示词会包含专用的 Current Date & Time 章节。为保持提示词缓存稳定性,现在只包含时区(不含动态时钟或时间格式)。
当 agent 需要当前时间时,请使用 session_status;状态卡片中包含时间戳行。
配置方式:
agents.defaults.userTimezoneagents.defaults.timeFormat(auto|12|24)
完整行为详见Date & Time。
技能(Skills)
当存在符合条件的技能时,OpenClaw 会注入简洁的可用技能列表(formatSkillsForPrompt),其中包含每个技能的文件路径。提示词会指示模型使用 read 工具加载对应位置(workspace、托管或内置)的 SKILL.md。如无符合条件的技能,Skills 章节将被省略。
<available_skills>
<skill>
<name>...</name>
<description>...</description>
<location>...</location>
</skill>
</available_skills>这种设计保持基础提示词精简,同时支持按需使用技能——养好龙虾之后,它知道去哪里找自己的"说明书"。
文档
可用时,系统提示词会包含 Documentation 章节,指向本地 OpenClaw 文档目录(仓库 workspace 中的 docs/ 或 npm 包中打包的文档),同时注明公共镜像、源码仓库、社区 Discord 和 ClawHub(https://clawhub.com)等技能发现渠道。提示词指示模型在遇到 OpenClaw 行为、命令、配置或架构问题时优先查阅本地文档,并尽可能自行运行 openclaw status(只有在无权访问时才询问用户)。