基础

系统提示

OpenClaw 为每次智能体运行构建一个自定义系统提示。该提示是 OpenClaw 自有 的,不使用 pi-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(仅在新工作空间上)
  • MEMORY.md 和/或 memory.md(当存在于工作空间中时;可能注入其中一个或两者)

所有这些文件在每次轮次都会注入到上下文窗口中,这意味着它们会消耗令牌。保持它们简洁——尤其是 MEMORY.md,它会随时间增长,并可能导致意外的高上下文使用率和更频繁的压缩。

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

大文件会被截断并带有标记。每个文件的最大大小由 agents.defaults.bootstrapMaxChars 控制(默认值:20000)。所有文件注入的引导内容总大小由 agents.defaults.bootstrapTotalMaxChars 限制(默认值:150000)。缺失的文件会注入一个简短的缺失文件标记。当发生截断时,OpenClaw 可以在项目上下文中注入一个警告块;通过 agents.defaults.bootstrapPromptTruncationWarning 控制此行为(offoncealways;默认值:once)。子智能体会话仅注入 AGENTS.mdTOOLS.md(其他引导文件被过滤掉以保持子智能体上下文较小)。内部钩子可以通过 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(仅在缺乏访问权限时询问用户)。

智能体循环上下文