Skip to content

System Prompt(系统 Prompt)

OpenClaw 为每次 agent 运行构建自定义系统 Prompt,不使用 pi-coding-agent 默认 Prompt,完全由 OpenClaw 自己组装注入。

Provider Plugin 可以贡献感知缓存的 Prompt 引导,而无需替换整个 Prompt。Provider 运行时可以:

  • 替换少量命名的核心区块(interaction_styletool_call_styleexecution_bias
  • 在 Prompt Cache 边界上方注入稳定前缀
  • 在 Prompt Cache 边界下方注入动态后缀

Prompt 结构

Prompt 刻意保持紧凑,使用固定区块:

区块说明
Tooling结构化工具真理源提醒 + 运行时工具使用指引
Safety短防护提醒,避免寻求权力或绕过监督
Skills(可用时)告知模型如何按需加载 Skill 指令
OpenClaw 自更新如何安全检查/修改/替换配置,以及 update.run 仅在用户明确请求时运行
Workspace工作目录(agents.defaults.workspace
Documentation本地 OpenClaw 文档路径(仓库或 npm 包)及何时阅读
Workspace Files标记 Bootstrap 文件将在下方注入
Sandbox(启用时)沙箱路径和是否有提权 exec
当前日期时间用户本地时区(当已知时)
Reply Tags支持该功能的 Provider 的回复标签语法
HeartbeatsHeartbeat Prompt 和 ack 行为
Runtime主机、OS、Node、模型、仓库根目录(检测到时)、thinking 级别
Reasoning当前可见性 + /reasoning 切换提示

长时任务指引

Tooling 区块还包含长时运行工作的运行时指引:

  • 用 cron 处理未来跟进("回头看"、提醒、周期任务),不要exec sleep 循环或 yieldMs 延迟技巧
  • 仅在命令需要立即启动并继续在后台运行时才用 exec / process
  • 启用自动完成唤醒时,启动一次命令并依赖基于推送的唤醒路径
  • 任务较大时优先用 sessions_spawn;子代理完成基于推送,自动回报给请求者

Prompt 模式

模式使用场景省略内容
full(默认)正常 agent
minimal子代理Skills、Memory Recall、OpenClaw 自更新、Model Aliases、User Identity、Reply Tags、Messaging、Silent Replies、Heartbeats
none极简模式仅保留基础身份行

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

Workspace Bootstrap 注入

以下文件在 Project Context 下修剪后附加,让模型无需显式读取就能看到身份和配置信息:

  • AGENTS.md
  • SOUL.md
  • TOOLS.md
  • IDENTITY.md
  • USER.md
  • HEARTBEAT.md
  • BOOTSTRAP.md(仅在全新 Workspace 上)
  • MEMORY.md(不存在时用小写 memory.md 作后备)

注意:这些文件在每次 turn 都注入到上下文窗口,会消耗 token。保持它们简洁——尤其是 MEMORY.md,随时间增长会导致上下文用量意外飙升,更频繁触发 Compaction。

大文件会被截断并附加标记。单文件最大由 agents.defaults.bootstrapMaxChars(默认 20000)控制,总注入量由 agents.defaults.bootstrapTotalMaxChars(默认 150000)上限。

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

时间处理

系统 Prompt 的当前日期时间区块仅包含时区(不含动态时钟),以保持 Prompt Cache 稳定性。

agent 需要当前时间时使用 session_status(状态卡片包含时间戳行)。

配置项:

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

Skills 注入

有符合资格的 Skill 时,OpenClaw 注入紧凑的可用 Skill 列表(含每个 Skill 的文件路径),并指令模型用 read 按需加载 SKILL.md:

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

这让基础 Prompt 保持精简,同时支持按需 Skill 调用。

文档引用

当本地文档目录可用时,系统 Prompt 的 Documentation 区块会指向本地 OpenClaw 文档路径(仓库 docs/ 或 npm 包),并附上公开镜像、社区 Discord 和 ClawHub(https://clawhub.ai)的 Skill 发现入口。Prompt 指令模型优先查阅本地文档,并在可能时自行运行 openclaw status(只在无法访问时才询问用户)。

Q:怎么查看我的 agent 实际收到的系统 Prompt 是什么? 在聊天中使用 /context list 查看各区块内容和每个注入文件的 token 占用。

Q:如何让 agent 的个性更鲜明? 编辑 SOUL.md——参见 SOUL.md 个性指南

Q:安全提示真的有约束力吗? 系统 Prompt 中的安全防护是建议性的,引导模型行为但不强制执行策略。用工具策略、exec 审批、沙箱和 channel 白名单做硬性约束。

相关文档