AI 项目复盘与改进
AI 项目复盘与改进 · 阅读后完成下方实验与检查题,再用「标记完成」记录进度。
学习目标
读完本课你能:从 ai_call 用量表和评估记录里取出真实数字诊断聊天与知识库两个项目;把每个改进写成「问题 + 依据 + 验证」三件套;区分「有数据支撑的改进」和「感觉上的优化」。
问题场景
你给自己的 AI 工作台做季度复盘,写下三条:「回答好像变快了」「检索感觉不太准」「整体还行」。半个月后翻回来,发现这三句话既没法证实也没法证伪——没有数字、没有对比、没有验证。复盘的价值全在「可复核」,而可复核的原料是测量数据——这门课从 A31 起一路铺垫的东西,现在是收割的时候。
核心解释
复盘的输入有三样,全部来自真实记录。
1. 用量数据(ai_call 表):平均延迟、token 分布、失败类别。一条 SQL 就能出诊断:
-- 按模型与状态的画像:慢不慢、贵不贵、错在哪
SELECT model, kind, status, COALESCE(error, '(ok)') AS err,
COUNT(*) AS calls,
ROUND(AVG(latency_ms)) AS avg_ms,
ROUND(AVG(prompt_tokens)) AS avg_prompt,
ROUND(AVG(completion_tokens)) AS avg_completion
FROM ai_call
GROUP BY model, kind, status, err
ORDER BY calls DESC;
2. 评估记录(A31 固定样例 + A32 分层定位):每个能力一个通过率;退步的样例能定位到检索层、生成层还是数据层。
3. 失败案例:error 字段是可枚举类别(E06 的纪律),能直接聚合成分布。
改进必须写成三件套,缺一件就不立项:
| 件 | 内容 | 反例 |
|---|---|---|
| 具体问题 | 「资料问答 12% 无引用,集中在 X 类问题」 | 「检索感觉不准」 |
| 修改依据 | 「A22 要求逐句标注引用;现提示缺失效分支」 | 「我觉得加条提示会好」 |
| 真实验证 | 「改后同批样例无引用率 12%→3%,A33 留档」 | 「试了下感觉好了」 |
两个项目的典型改法(走一遍真实推理):聊天项目——SQL 显示长会话 avg_prompt 线性上涨,依据是历史全量携带、裁剪线固定 20 条,改法是把更早的轮次折叠成摘要,验证是 A31 样例通过率不降且 avg_prompt 下降。知识库项目——评估记录显示检索无命中时模型硬编,而检索层其实已有兜底返回(lib/ai/tools.ts 里 search_documents 无命中时会返回「资料库没有命中内容;如无必要不要编造资料来源」),问题出在提示层没有强化这个信号,改法是在提示里加「检索无命中时明说没有资料」,验证是无命中样例的拒答率与引用有效性(A22)。
示例拆解
一次完整的复盘记录长这样(可直接抄格式,数字是示意):
## 复盘 2026-10 · AI 项目
### 数据
- 近 30 天 214 次调用,avg_ms 2310;失败里 rate_limit 占 41%
- A31 固定样例:聊天 17/20,知识库 14/20;退步 3 例均为「引用未标注」
### 改进(三件套)
1. [问题] 知识库问答引用缺失(5/14 样例无 refs)
[依据] search_documents 的 refs 固定返回空,引用只靠生成层自觉
[验证] 提示强制「资料问答必须引用文档名与片段位置」后重跑:11/14 带有效引用
2. [问题] rate_limit 失败无重试,用户直接看到报错
[依据] A35 退避策略已设计但未接入聊天链路
[验证] 接入后重放限流场景:自动恢复,无用户可见错误
### 遗留
- quota 类别本机无法触发,留待有欠费账户时验证
关键点:每条改进的验证都是跑出来的数字,不是描述性语言;「遗留」诚实记录做不到的检查——复盘不是验收表演。
动手任务
- 在本机库上跑上面的 SQL,把结果数字抄下来——这是你项目的真实基线。
- 从数据里挑一个最疼的问题,写成完整三件套(问题/依据/验证),哪怕这次只立项一条。
- 实施其中验证成本最低的一条,改完重跑 A31 固定样例,把前后数字写进版本记录(A33)。
常见错误
- 用形容词复盘:「更快」「更准」无法复核,三个月后等于没复盘。
- 改了不回归:每个改动必须过 A31 样例,否则「改进」可能悄悄退步了别的能力。
- 一次立项太多:三个改动同时上线,指标变了也说不清是谁的功劳——一次一个,逐个验证。
- 只报喜不报忧:遗留问题和已知退步(A33 的清单)不写进复盘,下个周期会重复踩坑。
检查与复盘
- 跑出过本项目的真实用量数字(至少:平均延迟、失败类别分布)
- 每条改进都有三件套,验证数字可复核
- 复盘文档里有「遗留」段,诚实记录未验证项
参考资料
- OpenAI 文档:Evals —— 评估任务的官方抽象,思路同 A31 固定样例
- OpenAI 文档:Production best practices —— 上线后持续改进的官方清单
- SQLite 文档:SELECT —— 聚合查询语法(GROUP BY / AVG)
读完这一课了?
标记完成后,工作台会安排接下来的学习。