简介:当大模型能力持续增强,应用层开发正面临“业务逻辑坍塌”的风险:核心逻辑被简化为对模型的调用与拼接。本教程面向开发者与技术负责人,系统讲解如何识别胶水代码特征、设计可验证的分层架构、落地提示词与工具调用工程化、建立评估与可观测体系,最终把不确定性纳入可控工程边界,构建可持续演进的AI应用。
本教程要解决的核心问题是:当大模型能力越来越强、应用层代码越来越薄,开发者如何避免业务逻辑退化为不可维护的“胶水代码”,并用工程化手段重建可验证、可观测、可演进的系统结构。
适合阅读人群:
阅读完成后,你将能够:识别胶水化信号、拆分稳定的业务逻辑层、把模型不确定性纳入工程约束、建立评估与排障流程,并给出可落地的优化建议。
以下场景是胶水代码的高发区,建议对照自查:
如果命中两条以上,说明系统已出现业务逻辑坍塌的早期信号。
在动手改造前,需要具备以下基础条件:
需要提前说明一个关键认知:即使把所有参数固定、把生成温度设为最低,固定输入仍可能得到不同输出。原因通常来自推理服务的批处理调度、并行计算中的浮点归约顺序差异、以及服务端的采样实现细节,而非模型参数本身在变化。工程上不应假设“确定性输出”,而应把输出波动当作常态来设计系统。
做什么:对现有代码做一次结构化盘点,把每一段逻辑标注为“稳定业务规则”“模型交互”“数据转换”“外部依赖”四类。
为什么做:坍塌的本质是稳定逻辑与不确定逻辑混在一起。先分类,才能决定哪些必须下沉为可测试的代码,哪些可以交给模型。
注意:盘点时以“变更频率”和“可验证性”为两个维度打分,变更频繁且难以验证的部分优先重构。
做什么:把系统拆为四层,并明确层间契约:
为什么做:领域层是可测试、可回归的核心资产,把它与模型隔离开,模型更换或提示词调整才不会冲击业务规则。
注意:层间通过明确的数据结构通信,禁止在领域层直接拼接提示词字符串。
示意性伪代码:
function handle(request):input = validate(request) # 接入层plan = orchestrator.buildPlan(input) # 编排层result = capability.execute(plan) # 能力层,内部调用模型/工具return domain.applyRules(result) # 领域层做业务判定
做什么:把提示词当作代码资产对待——纳入版本管理、定义输入输出契约、为每次变更配套回归用例;对工具调用定义统一的参数模式与返回校验。
为什么做:提示词是模型行为的主要控制面,缺乏版本与测试就会变成不可追溯的“魔法字符串”。
注意:输出解析必须做结构校验,解析失败要有明确的兜底路径,而不是让异常穿透到业务层。
做什么:基于前置准备中的样本集,定义可量化指标(如格式合规率、关键字段准确率、任务完成率),每次提示词或模型变更前跑一遍评估。
为什么做:没有评估就没有“验收标准”,胶水代码的典型症状正是靠人工感觉验收。
注意:评估集要与线上分布保持同步更新,避免指标漂移。
做什么:记录每次调用的输入摘要、输出摘要、耗时、重试次数、降级路径;对超时、限流、格式异常分别定义处理策略。
为什么做:不确定性无法消除,但可以被观测和约束。可观测性是排障的前提。
涉及的关键配置项及含义:
风险提示:重试策略与幂等设计必须成对出现,否则重试会放大副作用。
改造是否成功,可用以下方式验证:
应用层的“坍塌”并非模型太强导致,而是稳定逻辑与不确定逻辑长期混写的结果。本教程给出的路径是:先盘点分类,再分层隔离,把提示词与工具调用工程化,用评估与可观测把不确定性纳入约束,最后在性能、安全、稳定性、成本上持续优化。脚手架终会拆除,但承重结构必须由我们自己设计——这正是AI时代应用层开发者最值得投入的方向。