跳到主要内容

内容阅读

AI 应用开发阿新聊ai

AI 架构决策指南

本文迁移自 mindcarver/91ai · 原始位置 docs/ai architecture decisions.md · 由 @阿新聊ai 整理。 AI 架构决策指南 更新日期:2026/05 你有一个 AI 需求,但不确定该用 RAG、Fine tune、Agent 还是 Workflow。 这篇文章不解释...

本文迁移自 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 工具: LangGraphn8nDify

什么时候用 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 不动 从最简方案开始,每次只加一个组件

从这里去哪里

评论

0
登录后可以参与评论和讨论。
💬

还没有评论

欢迎留下第一条评论,帮助这篇内容更快形成讨论。