Skip to content

System Prompt(系统提示词)

OpenClaw 为每次 agent 运行构建一个定制化的系统提示词。该提示词由 OpenClaw 完全掌控,不使用 pi-coding-agent 的默认提示词。

提示词由 OpenClaw 组装并注入每次 agent 运行。

结构

提示词设计紧凑,使用固定章节:

  • Tooling:当前工具列表及简短描述。
  • Safety:简短的安全提醒,避免寻求权力或绕过监管。
  • Skills(可用时):告知模型如何按需加载技能说明。
  • OpenClaw Self-Update:如何运行 config.applyupdate.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:用于子代理;省略 SkillsMemory RecallOpenClaw Self-UpdateModel AliasesUser IdentityReply TagsMessagingSilent RepliesHeartbeats。Tooling、Safety、Workspace、Sandbox、Current Date & Time(已知时)、Runtime 和注入上下文保持可用。
  • none:只返回基础身份信息行。

promptMode=minimal 时,额外注入的提示词标签为 Subagent Context 而非 Group Chat Context

Workspace 引导文件注入

引导文件经过裁剪后以 Project Context 形式追加,让模型无需显式读取即可看到身份和配置信息:

  • AGENTS.md
  • SOUL.md
  • TOOLS.md
  • IDENTITY.md
  • USER.md
  • HEARTBEAT.md
  • BOOTSTRAP.md(仅限全新 workspace)
  • MEMORY.md(存在时),否则回退到小写的 memory.md

所有这些文件都在每轮对话中注入到上下文窗口,因此会消耗 token。请保持简洁——尤其是会随时间增长的 MEMORY.md,过大会导致意外的高上下文消耗和更频繁的压缩。

注意: memory/*.md 每日文件不会自动注入。它们通过 memory_searchmemory_get 工具按需访问,因此不会占用上下文窗口,除非模型明确读取它们。

超大文件会被截断并附加标记。每个文件的最大大小由 agents.defaults.bootstrapMaxChars(默认:20000)控制。所有文件的总注入大小上限由 agents.defaults.bootstrapTotalMaxChars(默认:150000)控制。缺失的文件会注入简短的缺失标记。发生截断时,OpenClaw 可在 Project Context 中注入警告块;通过 agents.defaults.bootstrapPromptTruncationWarning 控制(offoncealways;默认:once)。

子代理会话只注入 AGENTS.mdTOOLS.md(其他引导文件被过滤掉,以保持子代理上下文精简)。

内部钩子可通过 agent:bootstrap 拦截此步骤,对注入的引导文件进行变更或替换(例如将 SOUL.md 替换为备用人格)。

要查看每个注入文件的贡献量(原始大小、注入大小、截断情况以及工具 schema 开销),请使用 /context list/context detail。参见Context

时间处理

当用户时区已知时,系统提示词会包含专用的 Current Date & Time 章节。为保持提示词缓存稳定性,现在只包含时区(不含动态时钟或时间格式)。

当 agent 需要当前时间时,请使用 session_status;状态卡片中包含时间戳行。

配置方式:

  • agents.defaults.userTimezone
  • agents.defaults.timeFormatauto | 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(只有在无权访问时才询问用户)。