System Prompt

OpenClaw 会为每次 Agent 运行构建一个自定义的 System Prompt。这个 Prompt 是 OpenClaw 自有的,不使用 p-coding-agent 的默认 Prompt。

Prompt 由 OpenClaw 组装并注入到每次 Agent 运行中。

结构

Prompt 设计得很紧凑,使用固定的几个部分:

  • Tooling:当前工具列表和简短描述。
  • Safety:简短的安全提醒,避免权力寻求行为或绕过监督。
  • Skills(如果可用):告诉模型如何按需加载 Skill 指令。
  • OpenClaw Self-Update:如何运行 config.applyupdate.run
  • Workspace:工作目录(agents.defaults.workspace)。
  • Documentation:OpenClaw 文档的本地路径(仓库或 npm 包)以及何时阅读它们。
  • Workspace Files (injected):表示下面包含了 Bootstrap 文件。
  • Sandbox(启用时):表示沙箱运行时、沙箱路径,以及是否可以提升执行权限。
  • Current Date & Time:用户本地时间、时区和时间格式。
  • Reply Tags:支持的 Provider 的可选回复标签语法。
  • Heartbeats:心跳 Prompt 和确认行为。
  • Runtime:主机、操作系统、Node 版本、模型、仓库根目录(检测到时)、思考级别(一行)。
  • Reasoning:当前可见性级别和 /reasoning 切换提示。

System Prompt 中的安全防护是建议性的。它们引导模型行为,但不强制执行策略。要硬性强制执行,请使用工具策略、执行审批、沙箱和 Channel 白名单;操作员可以按设计禁用这些。

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 和注入的 Context。
  • none:只返回基本身份行。

promptMode=minimal 时,额外注入的 Prompt 会标记为 Subagent Context 而不是 Group Chat Context

Workspace Bootstrap 注入

Bootstrap 文件会被修剪并附加在 Project Context 下,这样模型无需显式读取就能看到身份和配置文件 Context:

  • AGENTS.md
  • SOUL.md
  • TOOLS.md
  • IDENTITY.md
  • USER.md
  • HEARTBEAT.md
  • BOOTSTRAP.md(仅在全新 Workspace 上)

大文件会被截断并带有标记。每个文件的最大大小由 agents.defaults.bootstrapMaxChars 控制(默认:20000)。缺失的文件会注入一个简短的缺失文件标记。

内部钩子可以通过 agent:bootstrap 拦截这一步,以修改或替换注入的 Bootstrap 文件(例如将 SOUL.md 替换为备用人格)。

要检查每个注入文件的贡献量(原始 vs 注入、截断,以及工具模式开销),使用 /context list/context detail。参见 Context

时间处理

当用户时区已知时,System Prompt 包含一个专门的 Current Date & Time 部分。为了保持 Prompt 缓存稳定,现在它只包含时区(没有动态时钟或时间格式)。

当 Agent 需要当前时间时,使用 session_status;状态卡包含时间戳行。

配置方式:

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

完整行为详情参见 Date & Time

Skills

当存在符合条件的 Skill 时,OpenClaw 会注入一个紧凑的 available skills listformatSkillsForPrompt),其中包含每个 Skill 的文件路径。Prompt 指示模型使用 read 加载列出位置的 SKILL.md(Workspace、托管或捆绑)。如果没有符合条件的 Skill,则省略 Skills 部分。

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

这样可以保持基础 Prompt 小巧,同时仍然支持有针对性的 Skill 使用。

Documentation

当可用时,System Prompt 包含一个 Documentation 部分,指向本地 OpenClaw 文档目录(仓库中的 docs/ 或捆绑的 npm 包文档),还会注明公共镜像、源代码仓库、社区 Discord 和 ClawHub (https://clawhub.com) 用于 Skill 发现。Prompt 指示模型首先查阅本地文档以了解 OpenClaw 行为、命令、配置或架构,并在可能的情况下自己运行 openclaw status(仅在无法访问时询问用户)。