System Prompt
System Prompt
OpenClaw 为每个 agent 运行构建自定义系统提示。提示是 OpenClaw 所有,不使用 pi-coding-agent 默认提示。
提示由 OpenClaw 组装并注入到每个 agent 运行中。
结构
提示故意紧凑并使用固定部分:
- Tooling:当前工具列表 + 简短描述。
- Safety:简短的防护栏提醒,避免权力寻求行为或绕过监督。
- Skills(当可用时):告诉模型如何按需加载技能指令。
- OpenClaw Self-Update:如何运行
config.apply和update.run。 - Workspace:工作目录(
agents.defaults.workspace)。 - Documentation:OpenClaw 文档的本地路径(repo 或 npm 包)以及何时阅读它们。
- Workspace Files (injected):指示 bootstrap 文件包含在下面。
- Sandbox(当启用时):指示沙盒化运行时、沙盒路径以及是否可用提升的 exec。
- Current Date & Time:用户本地时间、时区和时间格式。
- Reply Tags:支持提供者的可选回复标签语法。
- Heartbeats:心跳提示和 ack 行为。
- Runtime:主机、OS、node、model、repo root(当检测到时)、thinking 级别(一行)。
- Reasoning:当前可见性级别 + /reasoning 切换提示。
系统提示中的安全防护栏是咨询性的。它们指导模型行为但不执行策略。使用工具策略、exec 审批、沙盒和频道允许列表进行硬执行;操作员可以按设计禁用这些。
提示模式
OpenClaw 可以为子 agent 渲染较小的系统提示。运行时为每次运行设置 promptMode(不是用户面对的配置):
full(默认):包括上面所有部分。minimal:用于子 agent;省略 Skills、Memory Recall、OpenClaw Self-Update、Model Aliases、User Identity、Reply Tags、Messaging、Silent Replies 和 Heartbeats。Tooling、Safety、Workspace、Sandbox、Current Date & Time(当知道时)、Runtime 和注入的上下文保持可用。none:仅返回基本身份行。
当 promptMode=minimal 时,额外注入的提示标记为 Subagent Context 而不是 Group Chat Context。
工作区 bootstrap 注入
Bootstrap 文件被修剪并附加在 Project Context 下,这样模型可以看到身份和配置文件上下文,而不需要显式读取:
AGENTS.mdSOUL.mdTOOLS.mdIDENTITY.mdUSER.mdHEARTBEAT.mdBOOTSTRAP.md(仅在全新工作区)MEMORY.md和/或memory.md(当存在于工作区时;可以注入一个或两个)
所有这些文件都注入到上下文窗口中,每次轮换,这意味着它们消耗令牌。保持它们简洁——尤其是 MEMORY.md,它可能随时间增长并导致意外高的上下文使用和更频繁的压缩。
注意:
memory/*.md日常文件不会自动注入。它们通过memory_search和memory_get工具按需访问,因此除非模型显式读取它们,否则不计入上下文窗口。
大文件用标记截断。每个文件的最大大小由 agents.defaults.bootstrapMaxChars 控制(默认:20000)。跨文件的总注入 bootstrap 内容受 agents.defaults.bootstrapTotalMaxChars 限制(默认:150000)。缺失的文件注入简短的缺失文件标记。
子 agent 会话仅注入 AGENTS.md 和 TOOLS.md(其他 bootstrap 文件被过滤掉以保持子 agent 上下文小)。
内部 hooks 可以通过 agent:bootstrap 拦截此步骤以突变或替换注入的 bootstrap 文件(例如为替代角色交换 SOUL.md)。
要检查每个注入文件贡献多少(原始 vs 注入,截断,加上工具模式开销),使用 /context list 或 /context detail。参见 Context。
时间处理
当用户时区已知时,系统提示包括专用的 Current Date & Time 部分。为保持提示缓存稳定,现在仅包括时区(没有动态时钟或时间格式)。
当 agent 需要当前时间时使用 session_status;状态卡包括时间戳行。
配置:
agents.defaults.userTimezoneagents.defaults.timeFormat(auto|12|24)
参见 Date & Time 获取完整行为详情。
Skills
当有符合条件的技能时,OpenClaw 注入紧凑的 可用技能列表(formatSkillsForPrompt),包括每个技能的文件路径。提示指示模型使用 read 加载列出的位置(工作区、托管或捆绑)的 SKILL.md。如果没有符合条件的技能,省略 Skills 部分。
<available_skills>
<skill>
<name>...</name>
<description>...</description>
<location>...</location>
</skill>
</available_skills>
这保持基础提示小,同时仍支持有针对性的技能使用。
Documentation
当可用时,系统提示包括 Documentation 部分,指向本地 OpenClaw 文档目录(repo 工作区中的 docs/ 或捆绑的 npm 包文档),还注意公共镜像、源 repo、社区 Discord 和 ClawHub(https://clawhub.com)用于技能发现。提示指示模型首先咨询本地文档以获取 OpenClaw 行为、命令、配置或架构,并在可能时自己运行 openclaw status(仅在缺乏访问权限时询问用户)。