Skip to content

系统提示词

OpenClaw 为每次代理运行构建自定义系统提示词。该提示词由 OpenClaw 拥有,不使用 p-coding-agent 的默认提示词。

提示词由 OpenClaw 组装并注入到每次代理运行中。

结构

提示词有意保持紧凑并使用固定的部分:

  • 工具: 当前工具列表 + 简短描述。
  • 安全: 简短的护栏提醒,避免权力寻求行为或绕过监督。
  • 技能(可用时): 告诉模型如何按需加载技能指令。
  • OpenClaw 自更新: 如何运行 config.applyupdate.run
  • 工作区: 工作目录 (agents.defaults.workspace)。
  • 文档: OpenClaw 文档的本地路径(仓库或 npm 包)及何时阅读。
  • 工作区文件(已注入): 指示下方包含引导文件。
  • 沙箱(启用时): 指示沙箱运行时、沙箱路径以及是否可用提升执行。
  • 当前日期和时间: 用户本地时间、时区和时间格式。
  • 回复标签: 支持的提供商的可选回复标签语法。
  • 心跳: 心跳提示和确认行为。
  • 运行时: 主机、操作系统、node、模型、仓库根目录(检测到时)、思考级别(一行)。
  • 推理: 当前可见性级别 + /reasoning 切换提示。

系统提示词中的安全护栏是建议性的。它们引导模型行为但不强制执行策略。使用工具策略、执行审批、沙箱和通道允许列表进行硬性强制;操作员可以按设计禁用这些。

提示词模式

OpenClaw 可以为子代理渲染更小的系统提示词。运行时为每次运行设置 promptMode(不是面向用户的配置):

  • full(默认): 包含上述所有部分。
  • minimal: 用于子代理;省略 技能记忆回忆OpenClaw 自更新模型别名用户身份回复标签消息传递静默回复心跳。工具、安全、 工作区、沙箱、当前日期和时间(已知时)、运行时和注入的 上下文保持可用。
  • none: 仅返回基本身份行。

promptMode=minimal 时,额外注入的提示词标记为 子代理 上下文 而不是 群聊上下文

工作区引导注入

引导文件被修剪并附加在 项目上下文 下,以便模型无需显式读取即可看到身份和配置文件上下文:

  • AGENTS.md
  • SOUL.md
  • TOOLS.md
  • IDENTITY.md
  • USER.md
  • HEARTBEAT.md
  • BOOTSTRAP.md(仅在全新工作区)

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

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

要检查每个注入文件的贡献量(原始 vs 注入、截断,加上工具架构开销),请使用 /context list/context detail。参见 上下文

时间处理

当已知用户时区时,系统提示词包含专用的 当前日期和时间 部分。为保持提示词缓存稳定,现在仅包含 时区(无动态时钟或时间格式)。

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

配置选项:

  • agents.defaults.userTimezone
  • agents.defaults.timeFormat (auto | 12 | 24)

有关完整行为详情,请参见 日期和时间

技能

当存在符合条件的技能时,OpenClaw 注入一个紧凑的 可用技能列表 (formatSkillsForPrompt),其中包含每个技能的 文件路径。提示词 指示模型使用 read 加载列出位置(工作区、托管或捆绑)的 SKILL.md。如果没有符合条件的技能,则 省略技能部分。

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

这使基础提示词保持精简,同时仍能实现有针对性的技能使用。

文档

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