第十六部 工程实施与制作基础设施
第 84 章 Prompt 编译器:从创作合同生成供应商调用#
生产系统不应让每位操作者临场拼提示词。Prompt 是 Episode Pack、身份契约、状态快照、镜头需求和供应商适配器编译出的执行产物。创作事实保存在上游,提示版本只负责把它们翻译为当前模型能理解的形式。
84.1 把创作意图编译为约束系统#
五层输入。
第一层是任务目标与验收;第二层是锁定事实;第三层是当前状态;第四层是视觉、声音或表演参考;第五层是供应商控制参数。层之间有优先级,低层不能覆盖高层。
prompt_source:
task: 文件从林夏左手转移到顾舟右手
facts: [folder_red, holder_in_lin, holder_out_gu]
identity: [lin_v03, gu_v04]
state: [wardrobe_state_06, boardroom_bluehour_v04]
camera: [zone_a, 50mm, subtle_push]
acceptance: [dual_grip_visible, no_mirror, identity_pass]
provider_adapter: video_b_2026_06
正向约束、负向约束与不变量。
正向约束描述必须出现的状态,负向约束列出高概率灾难,不变量声明任何情况下不能改变的事实。负面列表不应塞入几十个通用词;它只包含该镜头风险,如“文件不得复制、小痣不得换侧、结束持有者不得错误”。
抽象意图要翻译成可观察行为。“冷静强大”被编译为坐下后再开口、音量不提高、目光不看文件、句尾落地。模型仍可在包络内表演,不被逐像素控制。
84.2 参考选择、上下文压缩与模型适配#
参考选择器。
参考图按镜头角度、表情、光线和可见部位检索,不固定给每次调用同一张正面照。侧脸镜头优先侧脸身份锚,手部动作加入袖口与道具参考,多人镜头给槽位图。过多参考会产生冲突,选择器必须能解释每张图为何加入。
reference_selection:
selected:
- {asset: lin_3q_v03, reason: face_angle_match, weight_role: identity_primary}
- {asset: folder_dual_grip_v02, reason: action_peak, weight_role: state_primary}
- {asset: boardroom_zone_a_v05, reason: spatial_match, weight_role: environment}
excluded:
- {asset: lin_front_v03, reason: angle_conflict}
- {asset: old_wardrobe_v01, reason: lifecycle_retired}
上下文压缩与来源证明。
编译器只加入镜头直接依赖。整季秘密、未来伤势和无关角色不能进入,以免模型提前泄露。压缩摘要保留 source_ref 与校验和,出现争议可回到原事实。
当两份权威资料冲突,例如镜头表写左手、状态表写右手,编译器必须失败并生成冲突报告,不能按最近时间或文本顺序自行选择。
供应商适配器。
统一语义层转换为各服务的字段、参考数量、时长和限制。适配器还负责单位转换、默认值、不可支持能力和输出标准化。供应商不支持结束帧时,应返回 capability mismatch,不应丢掉该约束后继续调用。
适配器版本与生成资产绑定。更新适配器可能改变提示顺序和参数,即使模型版本不变也要跑回归。
84.3 清单、解析与回归控制#
Prompt Manifest。
prompt_manifest:
prompt_run_id: prun_e001_015_a04
compiler_version: 2.7.0
template_version: shot_handoff_4.2.1
adapter_version: video_b_1.8.0
source_checksums:
episode_pack: sha256:aaa
identity_bundle: sha256:bbb
state_packet: sha256:ccc
rendered_prompt_checksum: sha256:ddd
assumptions: []
excluded_context: [future_secret, retired_wardrobe]
Manifest 让同一结果可解释,不保证供应商完全确定性。可复现的最低标准是知道输入与编译过程,而不是承诺得到相同像素。
输出解析与污染隔离。
模型返回的文字说明和元数据均视为非权威。解析器验证文件、时长、格式和 Schema;模型声称“连续性已通过”不能写入批准状态。候选进入隔离区,经过独立评测与人工门禁才晋升。
若模型输出提出新剧情事实,只可作为候选建议,不进入 Fact Registry。生成层没有改写故事的权限。
Prompt 回归测试。
黄金集覆盖身份、动作、空间、文字和安全边界。测试结构化输出是否有效、必要字段是否存在、退役资产是否排除、冲突是否阻断、Token 是否超限。图像结果用统计与人工评审,不要求像素快照。
灰度发布 10% 任务,比较 Schema 失败、人工拒绝、批准秒成本和错误类型。任何 blocker 逃逸立即回滚。
84.4 故障诊断与编译差异审查#
故障树。
提示越来越长但效果下降:上下文没有按依赖裁剪;角色知道未来秘密:知识状态隔离失败;参考图互相打架:选择器没有角度与生命周期规则;换供应商后约束丢失:适配器静默降级;结果污染事实库:候选输出与权威写入没有分域。
SOP、检查表与交付物。
定义统一语义 Schema;实现来源解析;选择最小参考;检查冲突;编译可观察行为;应用供应商适配;保存 Manifest;隔离输出;运行回归与灰度;监测质量和成本。
- Prompt 可由上游合同重新生成。
- 每段上下文有来源和权威级别。
- 不支持能力会失败,不静默忽略。
- 模型输出不能直接写事实与批准状态。
- 编译器和适配器都有独立版本。
练习:实现一个镜头语义包到两种供应商格式的编译器,交付 prompt_schema.json、reference_selector.yaml、adapters/、manifests/、regression_cases/、canary_report.md。
编译差异审查。
任何 Prompt 模板或适配器升级,都生成语义差异而非只比较整段文本。审查要回答:新增了哪些事实,删除了哪些约束,参考选择为何变化,供应商不支持项怎样处理,Token 预算怎样改变。空格和句序变化可以折叠,身份、动作和权利变化必须突出。
用《逆光收购》文件交接镜做演练:新版适配器只允许两张参考,于是选择器删除会议室全景。系统不能静默提交,而应显示空间锚点缺失风险并提供三种路线:把空间信息编译进文字、合成一张经过批准的参考板、改用支持三张参考的能力路由。人类决定后,理由进入 Manifest,后续失败才可追溯。
编译器的通过条件包括:相同权威输入产生相同语义输出;冲突输入必然阻断;退役资产无法进入;供应商能力缺口不会静默消失;任何生成结果都能反查完整来源。
发布前再用人工可读视图抽查,防止结构正确而语义失真。
抽查结果必须归档。