第 19 天:三大挑战与对策——规范演进、AI 不确定性、模型权重管理

SDD+Harness 四周学习计划 · Week 3 · Day 19

Posted by LSG on August 28, 2026

SDD + Harness 四周学习计划 · Week 3 · Day 19(工程化闭环第 5 课 / 全计划第 19 课)

今日主题:三大挑战与对策:规范演进管理(Git 单一事实来源);AI 不确定性纳入规范(语义等价类/置信度阈值/回退策略);模型权重管理(镜像分层)

建议用时:60–90 分钟 | 前置:Day 17 持续交付

输出物:一张「三大挑战对策卡」(一页纸,Day 21 周复盘用)


0. 一句话剧透

Day 17 的持续交付很理想:门禁五步、自动回滚、一切自动化。但真实世界有三个坎绕不过去——规范会演进(怎么管版本?)、AI 输出有不确定性(怎么把概率写进规范?)、模型权重会变(怎么保证部署版本可控?)。今天是 Day 17 的「现实版」:每个坎一套对策。


1. 今日目标(学完你能做到)

  • 能说出三大挑战分别是什么
  • 能解释「Git 单一事实来源」并说出三个配套动作(同仓、PR 评审、原子提交触发 CI/CD)
  • 能说出把 AI 不确定性纳入规范的三个手段(语义等价类 / 置信度阈值 / 回退策略)
  • 能解释镜像分层解决什么问题(基础环境镜像 + 权重动态挂载)
  • 完成动手练:填三张对策卡

2. 学习动线(建议时间分配)

步骤 内容 用时
1 第 3 节:挑战一——规范演进管理 20 分钟
2 第 4 节:挑战二——AI 不确定性纳入规范 20 分钟
3 第 5 节:挑战三——模型权重管理 15 分钟
4 第 6 节:三张对策卡汇总 10 分钟
5 动手练(第 7 节) 15 分钟
6 自测(第 8 节) 10 分钟

3. 挑战一:规范演进管理 → Git 单一事实来源

问题:规范不是一次写死的。功能迭代、字段增减、AI 行为调整都会改 spec。如果规范散落在文档站、聊天记录、各人脑里,改到后面就没人知道「当前真相」是什么。

对策(已核验)

  • 规范与代码同仓:规范文件跟着代码一起进 Git 仓库,随分支演进;
  • Git 单一事实来源:仓库里的规范就是唯一权威版本,其他地方的都算副本;
  • 规范变更走 PR 评审:改规范要像改代码一样走评审,不能悄悄改;
  • 原子提交触发 CI/CD:规范和对应代码一起提交(原子提交),触发 CI/CD——这正是 Week 2 pre-commit hook 的「正规军版本」。

呼应 Week 1:OpenSpec 的 delta spec(ADDED / MODIFIED / REMOVED / RENAMED)就是「规范演进」在文件层面的表达——只记录本次变更,评审聚焦差异。


4. 挑战二:AI 不确定性纳入规范 → 概率不是 bug,但要写进规范

问题:AI 输出不是确定性的。同样的输入,回答可能不同;LLM 应用没法用「等于预期字符串」来验收。如果规范假装 AI 是确定性的,测试永远在飘。

对策(已核验)

  • 语义等价类测试:不比对字面,比对「语义等价」——多个不同表述只要语义正确都算过,把「正确」定义为一组等价类而不是一个字符串;
  • 置信度阈值触发人工兜底:给模型输出定置信度阈值,低于阈值自动转人工(人审兜底);
  • 回退到预设安全回答:不确定/不达标时,回退到预先写好的安全回答,而不是让模型自由发挥。

一句话:把「AI 会不确定」这件事本身写进规范——规范约定「不确定时该怎么办」,而不是假装它不会发生。


5. 挑战三:模型权重管理 → 镜像分层

问题:AI 应用的「代码」不只是代码,还有模型权重。权重文件巨大、更新频繁,每次发布把代码和权重打包进同一个镜像,镜像会又大又难管理,版本也难以对齐。

对策(已核验)

  • 镜像分层基础运行环境(底层镜像) + 权重经 Artifact Store 部署时动态挂载——代码/环境一层,权重单独存放、部署时挂载,不打包进镜像;
  • 版本号关联:每次发布记录「代码版本 ↔ 权重版本」的对应关系,回滚时能同时回退到匹配的组合。

一句话:代码和权重解耦管理,用版本号把它们重新绑起来。


6. 三张对策卡汇总

挑战 一句话问题 对策(已核验) 关键动作
规范演进管理 规范散落、改到没人知道真相 Git 单一事实来源 同仓 / PR 评审 / 原子提交触发 CI/CD
AI 不确定性 输出不确定,验收在飘 把概率写进规范 语义等价类测试 / 置信度阈值人工兜底 / 回退安全回答
模型权重管理 权重巨大、更新频繁、版本难对齐 镜像分层 底层镜像 + 权重 Artifact Store 动态挂载 / 版本号关联

三张卡有一个共同底色:所有「真相」都要有一个可追溯、可回退的单一载体——规范在 Git,输出在阈值与回退,权重在 Artifact Store + 版本号。这就是「可控」的工程含义。


7. 动手练(约 15 分钟)

填你自己的三张对策卡(存为 Week3-Day19-三大挑战对策卡.md):

1
2
3
4
5
6
7
8
9
10
11
挑战一:规范演进管理
  我的项目里规范目前放在____(Git / 文档 / 聊天记录…)
  我的对策第一步:____

挑战二:AI 不确定性
  我的 AI 功能里「不确定」的表现:____
  我打算用:□语义等价类 □置信度阈值 □回退安全回答(勾选 + 一句理由)

挑战三:模型权重管理
  我的权重/模型文件现在怎么存:____
  若用镜像分层,我的底层镜像和权重各是什么:____

8. 自测题

  1. 三大挑战是哪三个?各自一句话。
  2. 「Git 单一事实来源」的四个配套动作是什么?
  3. 规范变更走 PR 评审,和 Week 2 的 pre-commit hook 有什么关系?
  4. 语义等价类测试和普通断言测试的差别?
  5. 置信度阈值触发什么?回退策略回退到什么?
  6. 镜像分层里「分层」分的是哪两层?权重放哪里?
  7. 版本号关联解决什么问题?

答案与提示

  1. 规范演进管理(规范会变)/ AI 不确定性(输出不确定)/ 模型权重管理(权重会变)。
  2. 规范与代码同仓、Git 单一事实来源、规范变更走 PR 评审、原子提交触发 CI/CD。
  3. hook 是「提交时强制改 spec」的机械执行,PR 评审是「人看变更是否合理」的上层把关,两层叠加。
  4. 语义等价类不比对字面,比对语义是否等价,把「正确」定义为一组等价类。
  5. 置信度低于阈值 → 转人工兜底;不确定/不达标 → 回退到预设安全回答。
  6. 基础运行环境(底层镜像)与权重(Artifact Store 部署时动态挂载)两层。
  7. 保证回滚时代码与权重能回到匹配的组合。

延伸阅读

  • 腾讯云《SDD 规范驱动 + Harness:AI 全栈开发从「能跑」到「可控」》(三大挑战主出处):https://cloud.tencent.com/developer/article/2703349
  • sdd-harness 仓库(规范与代码同仓 / hook 落地):https://github.com/iMark21/sdd-harness
  • harness-sdd-template(可复制的 harness 模板):https://github.com/marcmassa/harness-sdd-template

本工作纸依据《SDD+Harness四周学习计划.md》Day 19 主题编制。整理日期:2026-09-09