提示词管线

CLI-JAW 通过多层管线组装系统提示词:静态模板(A1/A2)、动态注入(记忆、编排、技能)、磁盘缓存(B.md/AGENTS.md),以及各 CLI 的生成适配器。

组装顺序

src/prompt/builder.ts 中的 getSystemPrompt() 函数按以下顺序组装提示词:

  1. A-1.md -- 系统规则(浏览器控制、记忆、心跳、委派)
  2. A-2.md -- 用户设置(身份、风格、工作目录)
  3. 记忆注入 -- 高级模式(档案 + 灵魂 + 任务快照)或旧版回退
  4. 编排部分 -- 员工调度规则 + PABCD 指南
  5. 心跳任务 -- 来自 heartbeat.json 的计划任务描述
  6. 技能部分 -- 已激活技能内联 + 可用技能列表
  7. Vision-click 提示 -- 仅限 Codex 的桌面自动化旧版回退
  8. 委派规则 -- CLI 子代理与 jaw 员工的区分

静态模板

A-1.md(系统规则)

路径:~/.cli-jaw/prompts/A-1.md。回退至 src/prompt/templates/a1-system.md(305 行)。包含核心系统行为:浏览器控制规则、记忆/心跳指令、jaw 员工与 CLI 子代理的区分,以及频道发送规则。

A-1.md 使用基于哈希的迁移机制。如果您未自定义过该文件,模板更新会自动应用。自定义的 A-1 文件会被保留。

A-2.md(用户设置)

路径:~/.cli-jaw/prompts/A-2.md。模板:a2-default.md(25 行)。包含身份、用户偏好、风格和工作目录提示。仅在缺失时创建,不会被覆盖。

动态注入

记忆注入

根据索引就绪状态分为两条路径:

注入具有角色感知能力:boss 获取完整快照,employee/subagent 获取精简档案,flush 角色不进行记忆注入。

编排

如果至少注册了一个员工,orchestration.md 模板会被注入,并附带 cli-jaw dispatch 使用示例。如果 skills/dev-pabcd/SKILL.md 存在,还会追加 PABCD 编排指南。

心跳

来自 ~/.cli-jaw/heartbeat.json 的活跃心跳任务会以其启用状态、人类可读的调度计划和提示词预览进行渲染。

技能

已激活的技能(~/.cli-jaw/skills/*/SKILL.md)会内联渲染。参考技能(~/.cli-jaw/skills_ref/registry.json)作为可发现的列表展示。

磁盘缓存(B.md)

regenerateB() 创建系统提示词的磁盘缓存版本:

输出用途
~/.cli-jaw/prompts/B.md调试和缓存文件
{workDir}/AGENTS.md由 Codex、Copilot、OpenCode 自动读取

系统会检查内容哈希值——仅在提示词实际发生变化时才重写文件,以保持恢复连续性。

各 CLI 的生成输入

每个 CLI 运行时接收提示词的方式不同:

CLI系统提示词用户输入
ClaudebuildArgs(..., sysPrompt)stdin:withHistoryPrompt(prompt, historyBlock)
CodexAGENTS.md 自动加载stdin:[User Message]
GeminiGEMINI_SYSTEM_MD 临时文件参数级提示词
AGY无系统提示词标志agy -p <prompt>
CursorAGENTS.md / CLAUDE.md 自动加载参数级提示词
GrokCWD 指令文件-p <prompt>
CopilotACP + CWD 指令文件session/prompt()

历史块

在新会话(非恢复)时,buildHistoryBlock() 会在前面插入最近的对话上下文:

[Recent Context]
assistant: Previous response summary...
user: Previous question...

---
[Current Message]
Your new prompt here

自定义提示词

编辑 ~/.cli-jaw/prompts/A-2.md 可自定义身份、偏好和工作目录。使用 /prompt 预览当前 A2 内容。Web UI 设置面板也提供了提示词模板编辑器。