AI不可靠性工程指南:从失效机理到五层防护网

发布时间:2026/5/22 12:11:30

AI不可靠性工程指南:从失效机理到五层防护网 1. 这不是一句抱怨而是一条必须写进操作手册的警告“AI Is Unreliable”——当我在第三个项目里连续两次被同一个大模型生成的Python函数在边界条件下 silently 返回 None 而不是抛出异常、导致下游数据管道静默丢失23%的样本后我把这句话钉在了团队共享看板最上方字体加粗背景标红。它不是情绪宣泄不是技术悲观主义更不是对某家厂商API的差评它是一条经过至少17次生产环境故障回溯、8个跨行业客户项目验证、覆盖文本生成、代码补全、结构化抽取、多模态推理等6类主流AI应用形态后凝练出的工程铁律。如果你正在用AI写周报、生成PPT、调试SQL、辅助写简历甚至让AI帮你审合同条款——那么这句话里的“Unreliable”指的不是“偶尔出错”而是系统性、可复现、与输入扰动强相关、且无法通过简单提示词优化彻底消除的确定性缺陷。核心关键词——不可靠性Unreliability、确定性失效Deterministic Failure、边界退化Boundary Degradation、置信度幻觉Confidence Illusion——全部指向一个事实当前所有公开可用的通用大模型在脱离受控沙盒、进入真实业务流时其输出稳定性远低于任何一款成熟的关系型数据库或HTTP客户端库。它适合做“灵感加速器”但绝不能当“执行发动机”。这篇文章不教你怎么调高temperature也不推荐所谓“最强提示词模板”我要带你一层层拆开“不可靠”这三个字背后真实的齿轮咬合问题它在哪失效为什么必然失效以及——最关键的是一个务实的工程师该如何在明知它不可靠的前提下依然安全、高效、可持续地把它用起来。适合所有已经尝过甜头、正准备把AI接入核心流程的产品经理、后端开发、数据分析师和独立开发者。别急着关页面你接下来要看到的是过去14个月我亲手填过的所有坑以及从血里捞出来的防护网。2. 不可靠性的四大发生现场不是Bug是设计使然很多人把AI的“不可靠”归咎于训练数据陈旧、算力不足或提示词没写好。这就像抱怨汽车刹车失灵是因为没系安全带——混淆了根本原因与表象。真正的不可靠性根植于当前主流AI架构的数学本质与工程实现之间那道无法弥合的鸿沟。我把它划分为四个高频、高危、且极易被误判为“偶然”的发生现场每个都附带真实故障日志片段和失效机理图解文字描述。2.1 数值敏感区小数点后第三位的雪崩这是最隐蔽也最致命的一类。模型对输入数值的微小扰动表现出极端非线性响应。我们曾用一个金融风控场景做压力测试输入用户月收入为“¥15,000.00”模型稳定输出“信用等级A”。但当输入变为“¥15,000.01”仅增加一分钱同一模型、同一提示词、同一API版本有63%的概率输出“信用等级B”且置信度分数反而从0.82升至0.91——它对自己的错误判断得更“笃定”了。提示这不是精度问题是嵌入空间Embedding Space的局部曲率畸变。当两个语义几乎 identical 的数字字符串15000.00 vs 15000.01被Tokenizer切分后其向量表示在高维空间中的欧氏距离可能远超“苹果”与“香蕉”的距离。模型学到的决策边界恰好横穿过这个极其狭窄的数值峡谷。实操中我们强制所有数值输入走标准化预处理不是简单除以最大值而是采用分段线性映射Piecewise Linear Mapping。例如将[0, 5000)映射到[0.0, 0.2)[5000, 20000)映射到[0.2, 0.6)[20000, ∞)映射到[0.6, 1.0]。这人为“拉平”了峡谷地形使相邻数值的向量距离可控。上线后该场景的数值敏感失效率从63%降至0.8%。2.2 逻辑断点当“并且”突然变成“或者”自然语言推理NLI是AI的阿喀琉斯之踵。模型能流畅写出“如果A成立且B成立则C成立”但在实际判断“A真B假”时却大概率跳过“且”的逻辑门直接输出“C成立”。我们在法律合同审查模块发现对条款“乙方须在收到发票后30日内付款并提供完税凭证”当输入“乙方已付款但未提供凭证”时模型判定“义务已履行”的错误率高达79%。根源在于当前LLM的推理并非基于形式逻辑引擎而是基于海量文本中的统计共现模式。“付款”与“义务履行”在训练数据中高频共现而“完税凭证”作为修饰语其逻辑权重被严重稀释。模型学到了“付款→履行”的强关联却没学会“且”这个连接词的真值表。我们的应对不是改提示词而是引入轻量级规则校验层Rule-based Validator。对所有含逻辑连接词且/或/非/若…则…的条款自动提取主谓宾三元组构建简易依赖图。当模型输出结论后校验层反向追溯结论C是否严格依赖于所有前置条件A与B的同时满足不满足则触发人工复核队列。这套机制增加了0.3秒延迟但将合同误判率压到0.2%以下且所有误判案例均被记录为可解释的规则冲突而非黑箱错误。2.3 长程遗忘第127行代码的幽灵上下文窗口Context Window不是内存而是注意力机制的计算范围。模型并非“记住”了前面的内容而是在每次生成新token时重新计算与所有历史token的注意力得分。当上下文超过其有效注意力半径通常为窗口长度的60%-70%早期信息的注意力权重会指数级衰减。我们测试过一个1200行的Python脚本摘要任务模型对最后200行的摘要准确率92%但对开头定义的类名DataProcessorV2在摘要中错误引用为DataProcessor的比率高达41%。更危险的是“伪记忆”模型会编造一个看似合理、实则从未出现过的类名或变量名来填补遗忘空白且语法完全正确。这种错误比直接报错更难捕获。解决方案是分治锚点。我们将长文档按语义块切分非简单按行数每块不超过模型有效上下文的50%。关键是在每个块的开头强制注入一个不可篡改的“锚点标识符”Anchor ID如[ANCHOR:CLASS_DEF_001]。这个标识符在切分、传输、拼接全流程中保持原样不参与任何文本处理。模型输出时我们要求其必须在摘要中显式引用该锚点如“如[ANCHOR:CLASS_DEF_001]所定义…”。后处理脚本只接受包含有效锚点引用的输出否则视为无效。这相当于给模型的记忆装上了GPS定位器让它无法自由发挥编造。2.4 格式幻觉JSON的完美陷阱这是开发者最容易栽跟头的坑。当你明确要求“请输出标准JSON格式包含字段name、age、city”模型确实会输出一个语法完美的JSON字符串。但它极可能在city字段里塞进一段完整的、关于该城市历史的散文或者把age写成twenty-five字符串而非整数甚至在JSON末尾多加一个逗号——所有这些都通过了json.loads()的语法校验却在下游类型检查时崩溃。这是因为模型的“格式遵循”能力本质上是对其训练数据中JSON样例的模式模仿而非理解JSON Schema的约束。它学会了“大括号、冒号、引号”的视觉模式但不懂age: 25与age: 25在数据契约中的天壤之别。我们的防御是三层过滤语法层用json.loads()校验基础语法结构层用Pydantic定义严格Schema强制类型转换与字段存在性检查语义层对关键字段如age添加业务规则断言assert0 age 150。三者缺一不可。曾有一次模型输出age: 0通过了前两层但在第三层断言失败。我们没有简单丢弃而是记录下这个age0的case发现它集中出现在用户填写“出生年份”而非“年龄”的输入中——这反过来帮我们优化了前端表单设计。不可靠性有时是业务逻辑漏洞的X光片。3. 构建可靠性防护网五道不可绕过的工程防线承认AI不可靠不是终点而是工程设计的起点。我服务过的12个成功落地AI功能的客户无一例外都建立了超越提示词工程的硬性防护体系。这套体系不追求100%可靠那违背第一性原理而是将不可靠性控制在业务可容忍的毛刺率Glitch Rate阈值内并确保每次失效都可追溯、可解释、可补偿。以下是五道必须部署的防线按实施优先级排序。3.1 输入净化层Input Sanitization Layer给AI喂“精饲料”绝大多数失效源于输入噪声。不是模型不行是你给它喂了带杂质的原料。我们曾分析过217个生产环境报错其中68%的根因是输入中混入了不可见Unicode字符如零宽空格U200B、异常换行符\r\n\r\n、或HTML实体编码。模型把这些当作正常语义的一部分去处理结果当然南辕北辙。净化不是简单的.strip()。我们采用三阶段流水线阶段一编码归一化。将所有输入强制转为UTF-8用unicodedata.normalize(NFC, text)处理组合字符消除视觉相同但码点不同的歧义如é vs e´。阶段二结构剥离。使用正则精准移除HTML/XML标签、Markdown符号**、、以及所有非ASCII标点保留中文顿号、书名号等必要符号。关键原则只移除非语义结构绝不触碰语义内容本身。例如保留scriptalert(1)/script中的alert(1)只剥离script和/script标签。阶段三语义校验。对关键字段做轻量NLP校验。如对“日期”字段用dateutil.parser.parse()尝试解析失败则返回标准化错误码INPUT_DATE_INVALID而非让AI去猜。这套净化层部署后由输入噪声引发的失效下降了91%。它不提升模型能力但极大收窄了模型需要应对的“问题域”让它的统计优势得以聚焦。3.2 输出契约层Output Contract Layer用Schema给AI上紧箍咒让AI“自由发挥”是最大的工程懒惰。我们必须像定义API接口一样为每一次AI调用明确定义输入输出契约Contract。这不是提示词里的“请用JSON格式”而是机器可执行、可验证的契约。我们使用OpenAPI 3.0规范来描述AI端点paths: /summarize: post: requestBody: content: application/json: schema: type: object properties: text: type: string maxLength: 8000 # 强制截断防OOM max_length: type: integer minimum: 50 maximum: 500 responses: 200: content: application/json: schema: $ref: #/components/schemas/SummaryResponse components: schemas: SummaryResponse: type: object required: [summary, word_count, confidence_score] properties: summary: type: string maxLength: 500 word_count: type: integer minimum: 1 confidence_score: type: number minimum: 0.0 maximum: 1.0这个契约被编译成运行时校验器。AI输出后校验器逐字段检查summary是否为string长度是否≤500word_count是否为正整数confidence_score是否在[0,1]区间任何一项失败立即触发降级策略如返回缓存摘要、或调用备用模型并记录详细违规模板如field: confidence_score, value: 1.25, violation: max_exceeded。这让我们第一次拥有了AI输出的“质量仪表盘”而不是靠肉眼抽查。3.3 置信度熔断层Confidence Circuit Breaker信任但要验证所有声称“置信度分数”的模型其分数都是对自身输出概率分布的某种变换如softmax最大值它衡量的是模型有多“相信自己”而非输出有多“接近真相”。我们做过实验对同一问题让模型输出10次取置信度最高的那次其真实准确率仅比随机选择高3.2%。置信度与真实性弱相关甚至在某些场景下负相关。因此我们废弃了所有基于单一置信度阈值的熔断。取而代之的是多维度置信度融合Multi-dimensional Confidence Fusion内部一致性对输出的关键主张用同一模型反向提问如输出说“合同有效期3年”则问“该合同有效期是否为3年”计算正反回答的logit差值。外部一致性调用一个极简的、基于规则的验证器如检查日期是否为合法格式、金额是否符合会计惯例。熵值稳定性对同一输入采样3次输出计算其token-level熵的方差。方差越大说明模型越“犹豫”输出越不可靠。三个维度加权融合权重根据业务场景动态调整生成一个综合可信度分。只有当综合分 阈值如0.85且所有子维度均达标时才放行。这个机制将高置信度下的误判率从12%压到0.7%。它不迷信模型的自我报告而是用交叉验证建立可信度。3.4 降级与补偿层Fallback Compensation Layer永远有Plan B把AI当作唯一答案源是所有AI项目夭折的起点。一个成熟的AI系统其90%的代码量不在主模型调用而在降级路径的设计。我们强制要求每个AI功能必须定义三级降级L1模型内降级。当主模型如GPT-4置信度不足时自动切换到同一厂商的轻量模型如GPT-3.5用速度换确定性。L2规则引擎降级。当所有模型都不可信时启动预置的、可解释的规则引擎如Drools。例如合同审查中若AI无法判断“不可抗力”条款规则引擎可基于关键词匹配句法树分析给出保守结论“存在不可抗力条款建议人工复核”。L3人工接管通道。所有降级最终必须导向一个清晰、低摩擦的人工介入点。我们设计了一个“一键转人工”按钮点击后自动打包原始输入、所有模型输出、各维度置信度分析、规则引擎结论、以及一个预填充的工单模板含问题分类、紧急程度、建议处理步骤。平均人工响应时间从47分钟缩短到6分钟。关键心得降级不是“兜底”而是用户体验的主动管理。用户看到“AI正在深度分析预计2秒后给出专业建议”比看到“处理中…”更能容忍延迟看到“AI建议A但基于您的历史偏好我们更推荐B”比看到“AI建议A”更感被尊重。降级策略本身就是产品力。3.5 可观测性与反馈闭环Observability Feedback Loop让失效成为资产没有可观测性AI系统就是黑箱中的黑箱。我们部署了四维监控看板输入健康度输入长度分布、字符集分布、异常字符告警率模型行为谱各维度置信度分布、输出长度分布、token生成耗时P95/P99业务影响面AI输出被下游系统接受率、降级触发率、人工接管率失效根因热力图将所有失败case按输入特征如“含数字”、“含专有名词”、“长度2000”聚类实时显示最高发的3个失效模式。但这只是第一步。真正的价值在于反馈闭环。每当一个case被人工确认为错误系统自动执行将该输入-期望输出对加入一个隔离的“对抗样本池”Adversarial Sample Pool每周运行一次自动化重训脚本用该池中的样本对主模型进行轻量LoRA微调仅更新0.1%参数微调后在影子流量Shadow Traffic中AB测试仅当新模型在该失效模式上的准确率提升15%且无新增失效时才灰度发布。过去8个月我们通过这种方式将TOP5失效模式的准确率平均提升了37%。AI的不可靠性就这样被转化成了持续进化的燃料。你不是在对抗不可靠你是在驯化它。4. 实操手记一个电商客服摘要功能的从0到1落地理论终需落地。下面以我亲自交付的一个真实项目——为某头部电商平台的客服对话生成实时摘要用于坐席快速了解用户诉求——为例完整复现从需求确认到上线稳定的全过程。所有步骤、配置、参数、踩坑细节均来自生产环境日志。4.1 需求与约束在钢丝上跳舞业务目标很清晰将平均时长8分23秒的客服对话含用户消息、坐席回复、系统提示压缩成≤120字的摘要准确覆盖3个核心要素用户身份新客/老客/会员等级、核心诉求退货/换货/投诉/咨询、紧急程度是否提及“今天必须解决”、“已投诉12315”等。但约束极其苛刻延迟要求端到端从对话结束到摘要生成≤1.2秒准确率底线核心要素覆盖率 ≥95%任意要素错误即视为失败合规红线摘要中不得出现任何用户手机号、身份证号、银行卡号等PII信息且必须100%可审计成本上限单次摘要API调用成本 ≤$0.008。这意味着我们无法使用最强大的模型GPT-4 Turbo延迟1.8秒成本$0.012也不能依赖后处理脱敏会增加延迟。4.2 方案选型为什么是Claude-3-Haiku 自研规则经过7轮AB测试对比GPT-3.5-Turbo、Claude-3-Sonnet、Gemini-1.0-Pro、Llama-3-70B-Instruct我们选定Claude-3-Haiku作为主模型。理由非常务实延迟P95延迟0.87秒满足≤1.2秒要求成本$0.0025/千token远低于阈值结构化输出稳定性在JSON Schema输出测试中其字段缺失率2.1%显著低于GPT-3.5-Turbo8.7%隐私保护倾向在测试中当输入含手机号时Haiku主动在摘要中替换为[PHONE]的比率93%远高于其他模型平均41%。但Haiku仍有两大短板对“紧急程度”的识别准确率仅72%且对长对话50轮的要素覆盖会衰减。因此我们设计了混合架构主模型负责生成带结构化标记的初稿JSON格式一个超轻量50KB的Python规则引擎专门处理紧急程度识别和PII二次清洗。4.3 核心提示词与输出契约精确到标点提示词不是艺术是工程规格书。我们的最终版提示词经137次迭代如下你是一个专业的电商客服对话摘要助手。请严格按以下要求处理输入对话 【输入格式】 - 对话为JSON数组每个元素为{role:user|assistant|system, content:...} - 用户消息可能包含手机号如138****1234、订单号如OD20231001XXXX、地址如北京市朝阳区XXX路XX号 【处理要求】 1. 严格输出标准JSON仅包含且必须包含以下4个字段 - summary: 字符串≤120字用中文。必须概括用户身份、核心诉求、紧急程度。禁止任何推测、评论、建议。 - user_identity: 字符串取值为new_user|regular_user|vip_level1|vip_level2|vip_level3。依据对话中用户自述或坐席确认信息判断。 - core_request: 字符串取值为return|exchange|complaint|consultation|other。严格依据用户第一句话的明确诉求判断。 - urgency: 整数取值0-3。0普通咨询1希望尽快处理2明确要求今日解决3已提及投诉渠道如12315、消协、媒体。 2. PII处理所有手机号、身份证号、银行卡号、详细地址必须在summary中替换为对应占位符[PHONE]、[ID]、[CARD]、[ADDRESS]。占位符不计入120字限制。 3. 严禁输出任何额外字段、注释、markdown、空格、换行符。JSON必须紧凑no whitespace。 【示例输入】 [{role:user,content:你好我是老会员订单OD202310011234收到的手机屏幕有划痕今天必须换138****5678},{role:assistant,content:您好请提供订单号和问题照片。}] 【示例输出】 {summary:VIP老会员订单OD202310011234手机屏幕有划痕今日必须更换。[PHONE],user_identity:vip_level2,core_request:exchange,urgency:2}这个提示词的关键在于将模糊的业务需求翻译成模型可执行的、原子化的、可验证的指令。特别是urgency字段的0-3分级直接对应了规则引擎的触发逻辑避免了模型在“希望尽快”和“必须今日”之间的模糊地带。4.4 规则引擎50行代码的救命稻草规则引擎的核心任务只有两个但每个都直击Haiku的弱点紧急程度增强扫描summary字段若发现“今天”、“立刻”、“马上”、“24小时”、“已投诉”、“12315”、“消协”、“媒体”等关键词且当前urgency 2则强制提升至2若发现“已拨打12315”、“已向媒体曝光”等则强制提升至3。这弥补了Haiku对隐含紧急信号的识别不足。PII终极清洗使用正则r1[3-9]\d{9}匹配手机号r\b\d{17}[\dXx]\b匹配身份证号r\b\d{4} \d{4} \d{4} \d{4}\b匹配银行卡号r[\u4e00-\u9fa5]{2,5}省[\u4e00-\u9fa5]{2,10}市[\u4e00-\u9fa5]{2,10}区[\u4e00-\u9fa5]{2,20}路[\u4e00-\u9fa50-9]{2,15}号\b匹配中国地址。匹配成功则替换为占位符。关键技巧正则模式全部编译为re.compile()对象并缓存单次匹配耗时从12ms降至0.3ms。整个引擎仅47行Python部署为独立Lambda函数冷启动时间100ms。它不替代AI而是做AI的“校对员”和“守门员”。4.5 上线后的数据表现与持续优化上线首周我们监控到关键指标端到端延迟P500.72s, P950.98s 达标核心要素覆盖率96.3% 达标PII泄露率0.0% 达标单次成本$0.0028 达标但人工接管率11.2%—— 远高于预期的≤5%。根因分析显示11.2%的接管中83%集中在“用户身份”判断错误。深入日志发现当用户说“我上次买的是iPhone这次想换个安卓”Haiku常将user_identity误判为new_user因为它只关注了“这次想换”忽略了“上次买过”这一关键线索。对策我们没有修改提示词那会增加延迟而是将“用户身份”判断逻辑从模型中剥离交给规则引擎。引擎现在会先扫描对话查找“上次”、“之前”、“历史订单”、“老顾客”等线索结合坐席称呼如“王女士您是我们老用户了”生成user_identity的确定性判断再将其作为上下文注入模型提示词。一周后人工接管率降至4.1%。这个案例印证了核心观点AI的不可靠性是暴露业务逻辑盲点的探针。每一次失败都在告诉你哪里的规则还不够清晰哪里的数据还不够结构化哪里的用户意图还不够明确。解决方案往往不在模型侧而在你的系统设计侧。5. 常见问题与血泪排查指南那些凌晨三点的电话在交付了23个AI项目后我整理了一份高频问题速查表。这些问题90%都曾在凌晨三点打爆我的电话。它们不是理论难题而是真实世界里让你抓狂、让你怀疑人生、但又必须立刻解决的“毛刺”。问题现象最可能根因快速排查步骤终极解决方案我的血泪教训模型输出完全偏离主题且置信度极高输入中存在不可见Unicode字符如U200E, U200F或BOM头1. 将输入复制到https://www.soscisurvey.de/tools/view-chars.php查看隐藏字符2. 用hexdump -C input.txt | head检查文件头在输入净化层强制text.encode(utf-8).decode(utf-8-sig)去除BOM并用re.sub(r[\u200e\u200f\ufeff], , text)清除方向控制符第一次遇到时花了4小时排查网络代理和API密钥最后发现是前端富文本编辑器偷偷插入了零宽空格。从此所有输入必过view-chars同一输入多次调用结果完全不同非随机性模型启用了top_p或temperature 0且业务代码未固定seed1. 检查API请求体确认temperature是否为02. 查看文档确认该模型是否支持seed参数Claude不支持GPT-4支持对所有需要确定性的场景强制temperature0并尽可能使用支持seed的模型。若必须用top_p则top_p1.0曾因未设seed导致A/B测试结果无法复现被产品总监质疑数据造假。seed是确定性的生命线JSON输出语法正确但下游解析失败模型在JSON末尾添加了不可见的零宽空格U200B或BOM1. 将输出JSON粘贴到https://jsonlint.com/看是否报“Unexpected token”2. 用echo $output | hexdump -C | tail检查末尾字节在输出契约层校验后强制output.strip().rstrip(,)并用json.loads(output.strip())解析JSONLint救了我无数次命。永远不要相信肉眼看到的“完美JSON”模型对长文本摘要时遗漏开头的关键信息输入超出了模型的有效注意力半径约窗口长度的65%1. 计算输入token数用对应模型的Tokenizer2. 若 (context_window * 0.65)则触发长文本切分逻辑采用2.3节的“分治锚点”策略。切分点必须选在语义断点如句号、换行符绝不能在单词中间曾在切分时按固定长度切导致“DataProcessorV2”被切成“DataPro”和“cessorV2”模型完全无法理解。语义切分是底线模型拒绝回答返回“我无法提供帮助”等泛化拒绝输入中触发了模型的安全护栏Safety Guardrail如含特定政治、医疗、法律敏感词1. 尝试将输入中疑似敏感词如“新冠”、“疫苗”、“离婚”替换为同义词“呼吸道疾病”、“免疫制剂”、“婚姻关系解除”2. 检查是否含URL或邮箱某些模型默认拦截在输入净化层建立白名单敏感词库。对业务必需的词如电商的“退货”预先注册为白名单绕过护栏。绝不使用模糊替换客服场景中“投诉”一词被护栏拦截率高达35%。我们向厂商申请了白名单豁免这是合规前提下的必要操作注意所有“快速排查步骤”都必须能在2分钟内完成。AI运维不是玄学是标准化的SOP。把这份表格打印出来贴在显示器边框上。另一个独门技巧永远保留“影子日志”Shadow Log。在生产环境中对1%的流量除了记录最终输出还完整记录原始输入、模型原始输出未经任何后处理、各维度置信度分数、规则引擎的中间判断、以及最终生效的摘要。当问题爆发时你不需要猜直接查这条影子日志就能看到整个决策链的每一个齿轮是如何咬合或崩坏的。这是我见过最有效的故障定位方式没有之一。6. 写在最后与不可靠共舞才是AI时代的生存技能“AI Is Unreliable”这句话我不会再把它钉在看板上。因为经过两年的实战它已经内化为我每一次设计、每一次编码、每一次评审时的本能反射。它不再是一个需要被解决的“问题”而是一种必须被接纳的“状态”就像程序员知道TCP会有丢包、数据库会有锁表、硬盘会有坏道一样自然。我见过太多团队在最初的惊艳之后陷入两种极端一种是盲目乐观把AI当万能胶水糊住所有流程直到某次关键合同审查出错才仓皇补救另一种是彻底悲观认为AI就是个玩具拒绝任何探索眼睁睁看着竞品用AI把服务响应时间从4小时压缩到4分钟。真正的务实是像对待一个天赋异禀但性格古怪的天才同事。你知道他会在数学证明上惊艳全场但也清楚他可能把咖啡洒在服务器上你给他最清晰的任务说明书输出契约为他准备最顺手的工具输入净化在他状态不佳时及时递上一杯茶降级策略并把他每次的奇思妙想包括错误都认真记录下来可观测性慢慢理解他的思维模式反馈闭环。所以别再问“如何让AI变得可靠”。去问“在这个具体场景里我需要它可靠到什么程度哪些环节我可以接受它的毛刺哪些环节我必须用钢铁般的规则去兜底当它出错时我的用户会感受到挫败还是会觉得‘哦它尽力了而我的问题很快就被解决了’”这才是“AI Is Unreliable”之后真正该写的下一句。它不是一个终点而是一张邀请函——邀请你以一个更谦卑、更精细、更富创造力的工程师姿态踏入这个充满不确定性的新世界。我在这条路上摔过无数跟头也捡到了比预想中多得多的金子。希望这篇带着体温和墨迹的手记能帮你少摔几个。

相关新闻