Skip to content

AI 应用和传统后端有什么不同?不确定性带来的 8 个工程问题

AI 应用仍然需要传统后端的鉴权、数据库、缓存和可用性能力,但它多了一层概率性组件:同一输入可能得到不同输出,正确性需要样例评估,延迟和资源消耗也随上下文与生成长度变化。工程重点因此从“接口是否返回”扩展为“输出是否可接受、可解释、可控并可回归”。

先说结论

不要把 AI 应用理解成完全不同的软件工程,也不要把模型当成普通 RPC。正确做法是:

  • 用传统后端保证确定性边界:身份、权限、事务、幂等、数据约束;
  • 用 AI 工程方法管理不确定性:评估集、结构校验、引用、人工复核、预算和降级;
  • 把模型输出当作不可信候选结果,而不是权威事实或可直接执行的命令。

适合谁,不适合谁

本文适合已有 API、微服务或数据系统经验,正在设计 RAG、Agent、智能客服、抽取与生成类应用的开发者。

本文不是“传统后端已经过时”的论证。对于规则稳定、结果必须完全确定、普通查询即可解决的问题,传统程序通常更便宜、更容易测试,也更应优先使用。

八个工程问题

1. 正确性从布尔值变成多维度

传统接口常用状态码和精确断言判断结果。AI 输出还要评估事实性、完整性、相关性、格式、安全性和业务可接受度。不同维度可能互相冲突,例如更完整的回答可能更慢。

2. 测试从固定期望扩展到评估集

单元测试仍用于解析器、权限和路由;模型行为则需要包含正常、边界、对抗和历史故障样例的评估集。断言应关注业务不变量,不必对自由文本逐字匹配。

3. 输入不只是请求参数,而是上下文

系统指令、历史消息、检索文档和工具结果共同影响输出。上下文必须有来源、优先级、长度预算和信任等级,不能把外部文档当成系统指令。

4. 延迟分成首片段与完整生成

传统后端常关注总响应时间;生成式应用还要区分首片段等待、生成时长、工具调用等待和校验时间。流式响应改善感知,但也引入断流与半成品处理。

5. 资源消耗随输入输出变化

同一接口的消耗与上下文、生成长度、重试和工具循环相关。必须在请求前限制预算,在请求后记录实际用量,并为异常循环设置停止条件。

6. 外部依赖的语义会变化

模型或 Prompt 改动可能不改变 HTTP 契约,却改变分类边界、语气和拒答行为。因此升级要经过离线评估、灰度和可回滚版本管理。

7. 安全边界包含自然语言攻击

除了注入、越权和敏感数据泄漏,还要处理提示注入、恶意文档和危险工具参数。模型不能自行授予权限,工具层必须重新鉴权和校验。

8. 故障不总是显式异常

最危险的失败可能返回 200:引用不存在、答案看似合理但事实错误、分类字段合法但业务含义错误。因此监控既要看系统指标,也要看输出质量与用户反馈。

架构决策表

问题优先使用确定性代码可以使用模型必须增加的护栏
身份与权限服务端鉴权、最小权限
金额和配额计算仅解释权威数据源、范围校验
文本分类与抽取规则稳定时边界复杂时Schema、评估集、人工复核
知识问答精确查询优先需要综合表达时检索引用、无答案策略
工具选择固定流程优先工具多且路径开放时allowlist、参数校验、审批
用户可见文案模板可满足时需要个性化时安全过滤、事实校验

判断标准不是“能不能用模型”,而是模型带来的收益是否值得承担额外的不确定性、延迟、观测和治理成本。

一条可落地的工程链路

text
请求
→ 确定性鉴权与限流
→ 上下文构建与数据分级
→ 模型路由与预算检查
→ 生成或工具选择
→ Schema 与业务规则校验
→ 必要的人工审批
→ 幂等提交
→ 质量反馈与评估集回流

这条链路把概率性决策夹在确定性边界中。即使模型输出失败,系统也能明确返回失败、降级为搜索结果或进入人工队列,而不是继续执行未知动作。

发布和观测边界

  • 版本:同时记录 Prompt、Schema、检索配置、模型路由和应用版本。
  • 测试:传统单元/集成测试与模型评估并行,不能互相替代。
  • 监控:系统侧看错误、超时、首片段、总耗时和用量;质量侧看校验失败、无答案、引用、人工驳回和用户反馈。
  • 降级:模型不可用时,可返回搜索结果、固定流程或人工处理;不能绕过鉴权与校验。
  • 回滚:回滚单位应包含 Prompt、路由和 Schema 的兼容组合,避免只切模型造成格式不匹配。

常见误区与失败边界

  1. 把 temperature 设低就认为确定:概率变化不等于业务正确性保证。
  2. 只做传统接口测试:HTTP 成功无法覆盖幻觉、引用和语义偏移。
  3. 把所有流程改成 Agent:固定规则被开放式决策替代后,成本和风险都会上升。
  4. 让模型决定权限:自然语言判断不能替代服务端授权。
  5. 出现质量问题只改 Prompt:数据、检索、Schema、工具和验收标准也可能是根因。

当任务没有可定义的“可接受输出”或无法构造任何评估样例时,不应急于自动化上线;先缩小任务或保留人工流程。

可执行检查清单

  • [ ] 明确哪些步骤必须确定性执行,哪些允许模型参与
  • [ ] 为模型输出定义可接受标准和失败结果
  • [ ] 权限、金额、资源存在性由服务端重新校验
  • [ ] 建立覆盖边界与历史故障的评估集
  • [ ] 记录 Prompt、Schema、模型和检索版本
  • [ ] 分开监控首片段、完整响应、工具和校验耗时
  • [ ] 为请求、重试和 Agent 循环设置预算
  • [ ] 准备不依赖模型的降级路径
  • [ ] 发布支持灰度、停止和兼容回滚

下一步

AI 工程化专题 中可以继续补齐可靠性能力。下一步阅读 LLM 成本控制,把上下文、缓存、模型路由和降级转化为可执行预算,而不是上线后只看总账单。

AI 应用开发训练营 · 现在开始

别只收藏 AI 文章,今天就做出第一个能上线的项目

文章解决认知,项目才证明能力。把 Agent、RAG、MCP 变成可运行、可展示、可面试表达的成果,现在就从一次岗位准备度自测开始。

立即开始 AI 岗位准备度自测 查看训练营路线
真实学员成果先看成果,再决定是否开始 →
  1. 01选方向
  2. 02做项目
  3. 03出成果
  4. 04拿面试