Skip to content

System Prompt

Moltbot 会为每次 agent run 构建一份定制的 system prompt。该 prompt 由 Moltbot 维护,并且不使用 p-coding-agent 的默认 prompt。

prompt 由 Moltbot 组装,并注入到每次 agent run 中。

结构

该 prompt 有意保持紧凑,并使用固定的分区:

  • Tooling:当前工具列表 + 简短描述。
  • Skills(可用时):告诉模型如何按需加载 skill 指令。
  • Moltbot Self-Update:如何运行 config.applyupdate.run
  • Workspace:工作目录(agents.defaults.workspace)。
  • Documentation:本地 Moltbot docs 的路径(repo 或 npm 包)以及何时阅读。
  • Workspace Files(injected):提示下方已包含 bootstrap files。
  • Sandbox(启用时):提示当前为 sandbox 运行时、sandbox 路径,以及是否允许提权执行。
  • Current Date & Time:用户本地时间、时区与时间格式。
  • Reply Tags:对支持的 providers 的可选回复标签语法。
  • Heartbeats:heartbeat prompt 与 ack 行为。
  • Runtime:主机、OS、node、模型、repo root(探测到时)、thinking level(单行)。
  • Reasoning:当前可见级别 + /reasoning 切换提示。

Prompt 模式

Moltbot 可以为子 agent 渲染更小的 system prompt。运行时会为每次 run 设置 一个 promptMode(不是用户可配置项):

  • full(默认):包含上述全部分区。
  • minimal:用于子 agent;会省略 SkillsMemory RecallMoltbot Self-UpdateModel AliasesUser IdentityReply TagsMessagingSilent RepliesHeartbeats。Tooling、Workspace、 Sandbox、Current Date & Time(已知时)、Runtime 以及注入的上下文仍会保留。
  • none:仅返回最基础的 identity 行。

promptMode=minimal 时,额外注入的 prompt 会标记为 Subagent Context,而不是 Group Chat Context

Workspace bootstrap 注入

bootstrap files 会被裁剪并追加到 Project Context 之下,让模型无需显式读取文件也能看到身份与 profile 上下文:

  • AGENTS.md
  • SOUL.md
  • TOOLS.md
  • IDENTITY.md
  • USER.md
  • HEARTBEAT.md
  • BOOTSTRAP.md(仅在全新 workspace 上)

大文件会带标记地截断。单文件最大注入大小由 agents.defaults.bootstrapMaxChars 控制(默认:20000)。缺失文件会注入一段简短的 missing-file 标记。

内部 hooks 可以通过 agent:bootstrap 拦截这一步,以变更或替换注入的 bootstrap files(例如用另一个 persona 替换 SOUL.md)。

要查看每个注入文件贡献了多少内容(raw vs injected、截断情况以及 tool schema 的额外开销),使用 /context list/context detail。 参见 Context

时间处理

当用户时区已知时,system prompt 会包含专门的 Current Date & Time 分区。 为了保持 prompt cache 稳定,它现在只包含时区(不包含动态时钟或时间格式)。

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

配置项:

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

完整行为参见 Date & Time

Skills

当存在可用的 skills 时,Moltbot 会注入一个紧凑的 available skills listformatSkillsForPrompt),其中包含每个 skill 的文件路径。 prompt 会指示模型使用 read 从列出的路径加载对应的 SKILL.md(workspace、managed 或 bundled)。如果没有可用 skills,则 Skills 分区会被省略。

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

这样可以让 base prompt 维持较小的体积,同时仍支持按需、定向地使用 skills。

Documentation

当可用时,system prompt 会包含一个 Documentation 分区,指向本地 Moltbot docs 目录(repo workspace 下的 docs/,或 npm 包内置的 docs),并同时注明公共镜像、源代码仓库、社区 Discord,以及用于发现 skills 的 ClawdHub(https://clawdhub.com)。prompt 会指示模型在了解 Moltbot 行为、命令、配置或架构时优先阅读本地文档,并在可能的情况下自行运行 moltbot status(只有在自身无权限访问时才询问用户)。