本文迁移自 mindcarver/91ai · 原始位置
docs/ai-architecture-decisions.md· 由 @阿新聊ai 整理。
AI 架构决策指南
更新日期:2026/05
你有一个 AI 需求,但不确定该用 RAG、Fine-tune、Agent 还是 Workflow。
这篇文章不解释每个方案是什么(那些内容在 Agent 学习路径 和 ML 系列 里),而是回答:面对具体需求,选哪个方案。
核心认知:这是两个独立决策
很多人把 RAG、Fine-tune、Agent、Workflow 放在一起比,但它们解决的是不同层面的问题:
决策 1(知识层):模型不知道 X → 怎么让它知道?
选项:直接 Prompt → RAG → Fine-tune
决策 2(执行层):模型要做 X → 怎么让它做多步操作?
选项:单次 API 调用 → Workflow → Agent
这两组决策独立且可组合。你可以用 RAG + 单次调用(知识问答),也可以用 RAG + Agent(研究型助手),还可以用 Fine-tune + Workflow(垂直业务流程)。
下面分别讲两个决策,最后给组合模式。
决策 1:知识层
问题:模型不知道它需要知道的信息。
决策树
你的信息是否可以放进 prompt?
├─ 是,且不超过几千 token → 直接 Prompt(写在 system message 里)
├─ 是,但每次不同 → RAG(按需检索塞进 prompt)
└─ 否,信息量太大或需要模型内化 → Fine-tune
信息是否频繁变化?
├─ 每天都变 → RAG(改数据源,不改模型)
├─ 每月更新 → RAG 或定期 Fine-tune
└─ 基本不变 → Fine-tune 或 Prompt 都可以
你需要模型改变行为风格,而不只是增加知识吗?
├─ 只需要增加事实 → RAG
├─ 需要改变输出格式/语气/推理方式 → Fine-tune
└─ 都需要 → Fine-tune + RAG
三个选项的判断标准
| 判断标准 | 直接 Prompt | RAG | Fine-tune |
|---|---|---|---|
| 信息量 | < 几千 token | 几千到几百万 token | 任何量级,但训练数据需要几千条以上 |
| 更新频率 | 随时改 | 随时改(改数据源) | 改一次要重新训练 |
| 成本 | API 调用费 | API 调用费 + 向量数据库 + embedding | 训练费($50-几千)+ 托管费 |
| 延迟 | 取决于 prompt 长度 | 多一步检索(+100-500ms) | 比长 prompt 快(知识在模型内) |
| 准确性 | 依赖 prompt 写得好 | 依赖检索质量 | 依赖训练数据质量 |
| 适合场景 | 规则、指令、少量知识 | 文档问答、知识库、企业内部知识 | 特定领域、特定风格、特定语言 |
什么时候用 RAG
- ✅ 企业知识库问答(文档量大、需要引用来源)
- ✅ 产品文档问答(文档频繁更新)
- ✅ 客服机器人(需要基于最新政策回答)
- ✅ 代码库问答(需要检索相关代码片段)
- ❌ 需要模型内化复杂推理模式(Fine-tune 更好)
- ❌ 信息量小到能直接放 prompt(直接写 Prompt)
什么时候用 Fine-tune
- ✅ 需要模型输出特定格式(JSON、SQL、特定标记语言)
- ✅ 需要特定领域术语和推理方式(医疗、法律、金融)
- ✅ 需要减少 prompt 长度来降成本和延迟(知识压缩进模型)
- ✅ 需要特定的语气和风格(品牌文案、客服话术)
- ❌ 信息频繁变化(每次改都要重训,RAG 更合适)
- ❌ 没有足够的高质量训练数据(至少需要几百到几千条)
- ❌ 只需要查事实(RAG 足够,不需要模型内化)
什么时候直接写 Prompt
- ✅ 少量规则和指令(不超过几千 token)
- ✅ 快速验证想法(零成本)
- ✅ 结构化输出格式(用 few-shot 示例)
- ❌ 知识量超过 context window
- ❌ 需要引用来源(Prompt 无法提供外部引用)
真实案例
| 场景 | 方案 | 原因 |
|---|---|---|
| 给客服机器人加产品知识 | RAG | 产品信息经常变,改数据源不需要重新训练 |
| 让模型输出特定 SQL 方言 | Fine-tune | 方言固定不常变,需要模型内化语法规则 |
| 让模型遵守审批流程 | Prompt | 规则简单明确,几条规则写进 system message |
| 法律合同分析 | Fine-tune + RAG | Fine-tune 学法律推理方式,RAG 提供最新法条 |
| 内部 Wiki 问答 | RAG | 文档量大且持续更新 |
决策 2:执行层
问题:模型需要做多步操作,不只是回答一个问题。
决策树
任务需要几步?
├─ 1 步(问 → 答)→ 单次 API 调用
├─ 2-5 步,步骤固定 → Workflow
└─ 步骤不确定,需要模型自己判断 → Agent
步骤是否可以预先定义?
├─ 可以明确列出所有步骤 → Workflow
├─ 大部分步骤已知,少数需要判断 → Workflow + 条件分支
└─ 步骤取决于中间结果,无法预知 → Agent
错误处理需要什么级别?
├─ 出错就停,人工处理 → 单次调用
├─ 出错重试或走备选路径 → Workflow
└─ 出错需要模型自己分析原因并调整策略 → Agent
三个选项的判断标准
| 判断标准 | 单次 API 调用 | Workflow | Agent |
|---|---|---|---|
| 步骤数 | 1 步 | 2-10 步 | 不确定 |
| 流程确定性 | - | 完全确定 | 需要动态决策 |
| 可控性 | 最高 | 高 | 低(依赖模型判断) |
| 成本可预测性 | 最高 | 高 | 低(取决于 Agent 走多少步) |
| 调试难度 | 最低 | 低 | 高(需要 trace 工具) |
| 适合场景 | 问答、翻译、总结 | 审批流、数据处理流水线 | 研究、调试、开放性任务 |
什么时候用 Workflow
- ✅ 流程固定、步骤可枚举(审批、数据 ETL、内容审核流水线)
- ✅ 需要人工确认节点(高风险操作前的审批)
- ✅ 需要条件分支(if A then X, if B then Y)
- ✅ 需要重试和错误处理(调用外部 API 失败后自动重试)
- ❌ 步骤取决于中间结果(Agent 更灵活)
- ❌ 任务太简单,一步就能完成(不需要 Workflow)
Workflow 工具: LangGraph、n8n、Dify
什么时候用 Agent
- ✅ 任务路径开放("帮我调研 X"→ 需要搜索、阅读、判断、汇总)
- ✅ 需要动态选择工具(根据问题决定用搜索还是数据库查询还是代码执行)
- ✅ 需要从错误中恢复(失败后自己换策略)
- ✅ 多步骤且步骤不可预知(调试、研究、探索性分析)
- ❌ 步骤可以预先定义(Workflow 更可控、更便宜)
- ❌ 没有评测体系(Agent 没有评测就是在盲飞)
- ❌ 没有成本上限(Agent 可能循环 100 步还没完成)
Agent 学习路径: → Agent Learning Path
什么时候单次调用就够了
- ✅ 问答、翻译、总结、改写
- ✅ 结构化输出(提取信息、分类、打标签)
- ✅ 代码生成(单文件、单函数)
- ❌ 需要调用外部工具(至少要 Workflow)
- ❌ 需要多步推理且步骤间有依赖(Workflow 或 Agent)
真实案例
| 场景 | 方案 | 原因 |
|---|---|---|
| 把用户反馈分类为 bug/feature/question | 单次调用 | 一步完成,输出结构化 JSON |
| 用户提交报销 → 审批 → 打款 | Workflow | 步骤固定,需要人工审批节点 |
| 帮用户调研竞品并写报告 | Agent | 步骤不确定,需要搜索、阅读、判断、汇总 |
| 批量处理 CSV 文件 | Workflow | 步骤固定:读取 → 校验 → 转换 → 写入 |
| AI 编程助手 | Agent | 需要读文件、改文件、跑命令、看结果、修复 |
| 客服问答 | 单次调用 + RAG | 回答问题,不需要多步操作 |
决策 3:组合模式
两个决策组合起来,有 6 种常见模式:
| 模式 | 知识层 | 执行层 | 典型场景 | 复杂度 |
|---|---|---|---|---|
| 简单问答 | Prompt | 单次调用 | FAQ、翻译、总结 | ⭐ |
| 知识问答 | RAG | 单次调用 | 文档问答、客服 | ⭐⭐ |
| 智能流程 | Prompt | Workflow | 审批流、内容审核 | ⭐⭐ |
| 知识流程 | RAG | Workflow | 合同审核、报告生成 | ⭐⭐⭐ |
| 通用助手 | Prompt/RAG | Agent | 编程助手、研究助手 | ⭐⭐⭐⭐ |
| 垂直专家 | Fine-tune | Agent/Workflow | 法律助手、医疗助手 | ⭐⭐⭐⭐⭐ |
选型原则:从简单开始,只在必要时升级。
第 1 步:能不能用 Prompt + 单次调用解决?
→ 能 → 做。这是 80% 的场景。
第 2 步:信息不够?加 RAG。
→ 不要一上来就 RAG,先试把关键信息写进 prompt。
第 3 步:步骤不够?加 Workflow。
→ 不要一上来就 Agent,先试 Workflow。
第 4 步:还不够?Fine-tune 或 Agent。
→ 这两步投入大,先确认前几步真的不够。
常见错误
| 错误 | 后果 | 正确做法 |
|---|---|---|
| 一上来就做 Agent | 成本失控、调试困难 | 先试单次调用,再 Workflow,最后才 Agent |
| 用 Fine-tune 解决知识问题 | 训练完数据就过时了 | 信息频繁变化用 RAG |
| 用 RAG 解决风格问题 | 检索到的内容风格不一致 | 需要改变输出风格用 Fine-tune |
| Workflow 和 Agent 分不清 | 用 Agent 做固定流程,浪费成本 | 步骤确定用 Workflow,不确定用 Agent |
| 组合过度(RAG + Fine-tune + Agent 全上) | 系统复杂度爆炸,debug 不动 | 从最简方案开始,每次只加一个组件 |
从这里去哪里
- 想系统学 Agent → Agent Learning Path
- 想深入 RAG → Agent 学习路径的 Stage 6: RAG for Agent
- 想深入 Workflow → Agent 学习路径的 Stage 3: Workflow
- 想深入 Fine-tune → 预训练与微调范式
- 想全局了解 → AI Knowledge Map
评论
登录后可以参与评论和讨论。
💬
还没有评论
欢迎留下第一条评论,帮助这篇内容更快形成讨论。