杀死你的 AI 系统的三种隐藏债务
你的 AI 功能准时上线了。用户正在使用它。一切看起来都很正常 —— 直到一季度后,一张支持工单揭露了系统已经“一本正经地胡说八道”了好几周,你的评估套件(evaluation suite)什么也没抓到,而向量索引正悄无声息地返回过期结果。没有任何环节崩溃。系统全程返回 200 OK。
这就是 AI 技术债务的样子。它不像失败的单元测试或堆栈溢出,而是以一种温和且概率性的方式退化。你不会遇到崩溃 —— 你面对的是微妙的质量侵蚀。主要由三种不同的负债驱动:提示词债务(prompt debt)、评估债务(eval debt)和嵌入债务(embedding debt)。每一项都独立积累,每一项又都在加剧其他的债务。而大多数工程团队正同时背负着这三者。
提示词债务:当你的指令变成遗留代码
提示词债务是那些脆弱、无文档、无归属 的指令所积累的混乱,随着时间的推移,它们会悄悄偏离预期行为。它的形成方式与其他技术债务相同 —— 通过走捷径、复制模板,以及比治理速度更快的变更 —— 但它的失败方式与传统代码不同。
带有 Bug 的函数会返回错误的值。而带有债务的提示词会以自信的语气返回微妙的错误答案,通过你所有的现有测试(如果你有的话),并混入正常的输出中。其 Bug 表面(bug surface)是整个开放式的自然语言空间。
这里有一个在生产环境中反复出现的失败模式:一名团队成员复制了一个现有的客户支持提示词来启动一个新的工作流。源提示词包含六个月前过时的取消政策。几周以来,AI 系统正确地减免了按当前政策本应收取的费用。没有触发任何报警。这种漂移是不可见的,直到收入审计发现了它。没有任何东西“坏了” —— 系统完全按照提示词的要求做了。
一项分析 LLM 项目仓库的 2025 年研究发现,提示词债务占所有检测到的技术债务的 6.61%,使其成为最普遍的类别。更令人担忧的是:一旦提示词债务出现,只有 49.1% 会被移除 —— 这是所有债务类型中最低的移除率。积累了问题的提示词往往会一直保持损坏状态。
根本问题在于,大多数团队将提示词视为配置,而不是代码。它们没有版本控制。它们没有负责人。它们堆积在 Notebook、Slack 线程以及散落在代码库各处的硬编码字符串中。当底层模型改变或业务规则更新时,提示词却没有同步更新。
在不重写的情况下解决提示词债务:
目标不是实现完美的提示词 —— 而是停止积累不可见的提示词。三个改变最为关键:
第一,集中存储。将提示词从应用程序代码中移出,进入一个无需部署即可检索、更新和审计的系统。这使提示词的迭代速度与工程发布周期解耦。
第二,建立版本控制。将提示词视为版本控制中跟踪的一等资产。维护一个兼容性矩阵,记录哪些提示词版本适用于哪些模型版本。当你从 GPT-4o 升级到更新的模型时,你需要知道哪些提示词发生了回退(regressed)。
第三,分配所有权。提示词泛滥既是一个技术问题,也是一个所有权问题。每个生产环境的提示词都应该有一个指定的负责人,负责保持其时效性。“所有权比工具更重要” —— 没有它,治理框架就会变成围绕着废弃提示词的官僚主义。
评估债务:你一直想建却没建的测试套件
评估债务(Eval debt)是指你的 AI 系统实际表现与你检测其行为变化的能力之间的差距。当团队优先考虑交付而忽略构建评估基础设施时,它就会积累,并且因为没有适当评估的每一周都是回归(regressions)未被检测到的一周,这种债务会不断复利。
核心问题不在于知道该使用哪种评分技术。而在于构建一个操作闭环,将生产环境的失败转化为可复现的测试用例。大多数团队只拥有三者之一 —— 手动测试过的原型、针对错误率报警的生产监控,或者发布时构建的评估套件。他们很少能将这三者连接起来。
失败模式如下:你的系统在某类边缘案例(edge cases)上发生了回退。客户注意到了。你进行调查,发现问题,修复它。三个月后,一个类似的变更触发了相同的回退。你再次调查。这种模式不断 重复,因为没有任何机制将最初的失败捕获为持久的测试用例,以便在第二次事件发生时拦截它。
研究数据非常严峻:67% 大规模使用 AI 的组织报告了至少一个与模型行为失调相关的关键质量问题,且这些问题一个月以上未被察觉。在模型供应商更新后的几天内,模型准确度就可能下降。评估债务使检测延迟成为一种结构性特征,而非意外。
在不重写的情况下解决评估债务:
构建三个相互连接的评估基础设施层。
第一层是黄金数据集(golden dataset) —— 50 到 200 个从真实生产流量中筛选出的输入-输出对。不是合成示例,而是你的系统接收到的实际输入,并标注了正确回答的样式。从最关键的失败模式中选择 25 到 50 个案例开始。包括那些曾经让你吃过亏的边缘案例:非英语输入、对抗性提示词、不完整或模糊的查询。
第二层是一个离线评估套件,在每次部署前针对该数据集运行。评估标准(rubric)应分解为具体的、可衡量的属性 —— 不是一个单一的“质量”分数,而是针对正确性、格式遵循、政策合规以及对你特定系统重要的任何维度的独立标记。使用前沿模型根据标准对输出进行评分的自动化裁判(judge)基础设施既实用且易于扩展。
第三层将生产监控连接回数据集。当生产监控识别到失败时,工作流应以该失败转化为新的测试用例并添加到黄金数据集而结束。每一个没有生成回归测试的事故,都是一个等待再次发生的事故。
将离线评估作为质量闸门(quality gates)集成到 CI/CD 中。如果一次部署导致黄金数据集的回退超过阈值,则不应进入生产环境 —— 就像单元测试失败的部署不能上线一样。
