提示即代码是什么
「提示即代码」指把提示词、模板与相关配置纳入版本库管理:改动走评审、可 diff、可回滚,与代码同节奏发布;生产环境只读加载,不在控制台直接编辑。理由很直接——提示决定系统行为,它与代码享有同样的风险等级,理应有同样的工程流程。线上手改加上仓库滞后,会形成「生产实际生效版本无人说得清」的状态。
基本信息
| 适用平台 | 所有 LLM 应用;版本库(Git 等)与构建发布流程 |
|---|---|
| 目录组织 | 按用途分目录,版本文件、测试夹具与变更日志放在一起 |
| 发布方式 | 构建期打包与渲染,生产只读挂载,禁止运行时改写 |
| 例外处理 | 紧急线上修改必须事后回写仓库并补变更记录 |
典型使用场景
- 多环境部署:提示随代码一起进测试、预发、生产环境
- 多人协作:改动走合并请求,评审人看 diff 判断影响
- 事故回滚:按版本号快速切回上一版提示,不必重新发布应用
- 审计与合规:能证明某时间点线上生效的是哪一版内容
- 基线复用:安全基线与公共片段作为共享文件被多个业务引用
仓库结构示例
仓库结构示例
# prompts/
# summarize/
# v3.md # 当前版本提示正文
# fixtures.yaml # 该提示的测试用例与期望输出
# changelog.md # 变更日志:动机、评测结果、影响面、回滚方式
# extract/
# v2.md
# rules/
# injection_patterns.yaml # 检测规则与阈值,同样纳入版本管理
# 发布:构建期渲染出最终提示并写入只读目录;运行时不再拼接可变文件纳入与不纳入的界线
| 内容 | 是否入库 | 原因 |
|---|---|---|
| 提示正文与模板 | 入库 | 决定系统行为,需评审与回滚 |
| 检测规则与阈值 | 入库 | 阈值变化直接影响拦截结果 |
| 测试夹具 | 入库 | 与提示版本绑定,保证可复现 |
| 凭据与密钥 | 不入库 | 改用密钥管理服务,运行时注入 |
| 用户数据与日志 | 不入库 | 涉及隐私与体量问题 |
目录里同时放提示、夹具与变更日志,是为了让「这一版提示为什么改成这样」在一个位置就能回答,不必翻工单或聊天记录。
生产环境直接编辑提示看似高效,代价是仓库与生产长期不一致:下次发布把线上改动覆盖掉,问题发生时也无法确认当时生效的内容。