把一个AI应用拆成四层:输入、判断、执行、复核
聊 AI 应用时,很容易把注意力全放在模型那一层,结果做完发现:出问题的地方往往不在模型。我习惯先把一个应用拆成四层,逐层想清楚各自的职责,再决定哪里用 AI。
四层分别管什么
| 层 | 职责 | 常见错误 |
|---|---|---|
| 输入 | 收拢、清洗、结构化 | 把脏数据直接丢给模型 |
| 判断 | 理解意图、决定走哪条路 | 让模型做本该由规则定的判断 |
| 执行 | 调用确定性的代码或接口 | 让模型“顺便”改数据 |
| 复核 | 校验结果、给回退入口 | 没有复核,输出即结论 |
输入层要先解决格式、缺失、超长、重复。这层做扎实,后面三层的复杂度能降一大半。
判断层最容易越界。像“这个问题要不要查外部数据”“用户有没有权限”,这类二值规则写在代码里更稳,不必交给模型去“理解”。
执行层必须是确定性的:取数、写入、发送,都由函数完成,模型只提供参数。描述这些函数的参数、类型、默认值时,BackendWiki 的接口文档写法 是很好的模板——参数列清楚,模型才不容易传错。
复核层常被当成可选项,其实是四层里最不能省的:格式校验、引用是否齐全、失败是否可见、人能否接手。
一个具体例子
给一份活动规则做问答:输入层把规则切成带编号的条目;判断层用规则判断“问题是否涉及时间或条件”;执行层检索对应条目;复核层检查回答有没有带上条目编号,没有就转人工。模型只出现在“理解问题”和“组织语言”两处,其余都是普通代码。
这样拆完,出问题时能立刻定位到层,而不用反复调提示词碰运气。任务编排的具体做法可以参考 WorkBuddy 官方文档。
小结
一个能用的 AI 应用,模型常常只占四分之一。把输入、判断、执行、复核分开,最大的好处不是架构好看,而是知道该改哪里:答案不对看判断层,数据不对看执行层,格式不对看复核层。