Prompt版本真源在代码而不是平台
生效路径
apps/*/prompts/*.md ← frontmatter: id / task / version(手动递增)
│ loadWorkflowPrompt() 读文件 + 解析 frontmatter
│ revision = SHA-256(全文) 前 16 位(自动,改一个字就变)
▼
workflow 用文件内容作 system prompt(代码里没有任何 getPrompt() 调用)
单向同步与它带来的安全边界
- 部署前跑同步脚本,把代码里的 prompt 推到平台:内容没变不产生新版本,变了才产生新版本;模型调用会标注用了哪个 prompt、哪个版本。
- 因此在平台里调试 prompt 是完全安全的沙盒:看 trace、开 playground、甚至建 prompt 都不影响生产行为;真正生效的唯一方式是改文件并部署。
- 反过来,如果产品要的是「网页改 prompt、不重新部署就立即生效」,那是另一套机制(运行时拉取 + 版本绑定),当前没有做 —— 选之前先明确谁是真源,否则会同时存在两个可写的版本源。
排查提示
「线上 prompt 行为不对」先确认生效的是哪一份:改的是文件还是平台?部署是否带上了这次改动?(见 改配置后要确认部署真的用了新配置)
相关
- 观测平台不能当运行状态真相源 —— 同一形状:平台解释「为什么」,真源在别处
- 真源要按维度显式指定
- 多源更新按维度取真源
- 判断现状要看真正在跑的那一份
- 评测平台是平台层项目规则是适配层
- 主观判据的prompt规则会随机误触发
- 可观测正文要按环境分级放开