作为在 AI 实战一线趟过无数地雷的工程老兵,把近几年做 AI 应用开发、Agent 落地以及大模型调优的零碎心得、血泪踩坑和抽象出来的判断框架整理成这份笔记。
整体风格参考了前端工程化专家对代码直觉、类型安全与工程克制的追求——少玩虚头巴脑的魔法提示词,多建严丝合缝的工程护城河。
一、 重新认识大模型
别把大模型当成无所不能的 AI 大脑,它本质上是一个极聪明但记忆力短路、没有常识的实习生。
很多工程师掉入的第一个坑,就是把 LLM 当成确定性程序来写。你给它一个复杂的 Prompt,期望它每次都输出完美的 JSON、完美的逻辑。一旦上线面对真实的业务长尾输入,系统立马崩溃。
二、 踩坑实录:我们交过的“智商税”
1. 迷信“大力出奇迹”的 Prompt 魔法
- 踩坑: 遇到模型输出不稳定,第一反应不是改架构,而是去写几千字的巨型 Prompt,往里面加各种“请务必”、“绝对不能”、“深呼吸”之类的玄学咒语。
- 代价: Prompt 越来越臃肿,牵一发而动全身,稍微换个基座模型(比如从 GPT-4 换成 Claude 3.5)全套逻辑直接失效。
- 解法: 将复杂任务拆解为“确定性代码 + 局部微型 Prompt”。 复杂的逻辑交给 Python 或 TypeScript 的传统逻辑去控制,大模型只负责它最擅长的部分:意图识别、文本抽取和内容润色。
2. 盲目信仰 RAG(检索增强生成)万能论
- 踩坑: 觉得只要接个向量数据库,把公司几万篇文档倒进去,RAG 就能解决所有幻觉问题。
- 代价: 召回率低、噪声污染严重。大模型看到一堆不相关的切片文本,反而容易被带偏。
- 解法: 分块策略和重排比换嵌入模型重要 10 倍。 永远不要迷信向量相似度搜索的极限,做好关键词检索与向量检索的混合双打,再加一层重排过滤,准确率才能有质的飞跃。
3. 放任自流的“无限循环 Agent”
- 踩坑: 看了很多炫酷的 Agent 论文和开源框架,觉得让大模型自主规划、自主调用工具、自主循环直到完成任务很酷。
- 代价: Token 费用爆炸、无限陷入工具调用的死循环、业务逻辑失控且完全无法调试。
- 解法: 用图结构代替自由扩散。 用显式的状态机来规范 Agent 的行为边界。什么节点可以调什么工具,路径必须是闭环的,且必须有最大重试次数限制,绝对不能把控制权完全交给概率模型。
三、 可复用判断框架:AI 工程化的“三层防护网”
在做 AI 系统架构设计时,我习惯用下面这套高可用的防御框架:
+-------------------------------------------------------------+
| Layer 3: 确定性代码层 |
| - 输入校验 (Zod / Pydantic) |
| - 业务规则过滤、敏感词拦截、权限控制 |
+-------------------------------------------------------------+
│
▼
+-------------------------------------------------------------+
| Layer 2: 概率大模型层 |
| - 结构化输出强制 (JSON Mode / Function Calling) |
| - 任务专注:单 Prompt 只做一件事 |
+-------------------------------------------------------------+
│
▼
+-------------------------------------------------------------+
| Layer 1: 兜底与监控层 |
| - 结构校验失败自动重试 |
| - 全链路 Trace 追踪(输入、Token 消耗、耗时) |
+-------------------------------------------------------------+
落地要点:
- 绝不裸奔输出: 从大模型拿到的 JSON 数据,必须通过强类型校验库(如 Python 的
Pydantic或前端的Zod)进行校验。校验失败不是直接报错给用户,而是把错误信息连同原输出打包重新喂给大模型进行自我修正。 - 灰度与回退机制: 关键业务流程必须准备兜底策略。当大模型服务抖动、超时或返回不可解析内容时,自动降级为规则引擎或人工处理。
四、 给普通 AI 工程人员的 4 条实战建议
- 像写单元测试一样测试 Prompt:
不要凭感觉在 Playground 里调 Prompt。建立一个包含 50 到 100 个典型测试用例的评测集,每次修改 Prompt 后跑一遍回归测试,看准确率到底是上升还是下降。
- 克制是对工程师最好的修养:
别总想着做一个能替代人类的超级 Agent。在现阶段,“AI 建议 + 人类确认” 的产品形态,比全自动 Agent 的落地成功率高出不知道多少倍。
- 把 Token 当成内存来算:
上下文窗口大,不代表你可以肆无忌惮地塞垃圾数据。越长的 Context,模型的注意力越容易被稀释。保持输入精简、干练,成本更低,效果反而更好。
- 拥抱确定性工程,警惕玄学调参:
优秀的 AI 工程不是炼丹,而是把大模型这个不确定性的黑盒,用坚固的传统软件工程框架(日志、监控、类型约束、状态机)给包裹起来,变成可控的业务组件。