A25第 1 / 1 课时未开始内容版本 1.0.0 · 核验于 2026-10-26

工作流与智能体选择

工作流与智能体选择 · 阅读后完成下方实验与检查题,再用「标记完成」记录进度。

学习目标

读完本课你能回答一个架构问题:这个任务该写成固定步骤的工作流,还是交给模型自主决策的智能体?并且能给出可检验的理由,而不是「智能体更智能」这种空话。

问题场景

两个需求摆在你面前:

  • 需求一:每天把导入的资料做一次「解析 → 切分 → 索引 → 出报告」,步骤固定,错了要能查。
  • 需求二:用户随口问「帮我整理这份文档的要点,顺便查查和站里哪门课相关」——下一步做什么,事先列不全。

第一个用智能体是浪费:每步都让模型「想」一遍,又贵又不稳定。第二个用死流程是灾难:路径因问题而变,写死哪条都会漏。选择的标准不是哪个更先进,而是任务的结构化程度。

核心解释

两者定义:

  • 工作流(workflow):步骤预先定义,代码控制流转,模型只负责每个步骤内部的生成任务。输入确定、路径确定、输出形态确定。
  • 智能体(agent):给模型一组工具和一个目标,由模型决定下一步调用什么、循环到何时(A17 的工具循环就是最小智能体)。路径在运行时才确定。

选择看三个标准:

标准 偏向工作流 偏向智能体
步骤能否预先列出 能 不能,因问题而变
单步错误的代价 高(写库、发钱) 低(只读、可重来)
可解释性要求 高(每步要能审计) 中(结果导向)
// 工作流:路径写死在代码里,模型只是步骤内部的函数
async function importPipeline(file: File) {
  const text = await extractText(file);      // 步骤 1:解析
  const chunks = chunkText(text);            // 步骤 2:切分
  await indexChunks(chunks);                 // 步骤 3:索引
  return { chunks: chunks.length };          // 每步成败可单独审计
}

// 智能体:路径由模型运行时决定(A17 的循环 + 白名单 + 上限)
while (!done && rounds < MAX_ROUNDS) {
  const res = await chatWithTools(messages, ASSISTANT_TOOLS); // 模型自主选择工具
  if (res.finish_reason === "tool_calls") messages.push(...runTools(res));
  else done = true;
}

本站的选择是「受限智能体」:学习助手需要处理千奇百怪的问题(路径不可预列,选智能体形态),但把自主性收进三个笼子——工具白名单(只有三个只读检索工具,模型提名了名单外的直接拒绝)、轮次上限(A17,超限强制基于已有信息作答)、只读约束(再怎么「自主」也写不了库)。自主性负责覆盖问题的多样性,约束负责兜住错误的下限。

如何验证选型:把任务的「预期路径」写出来。写得出来且覆盖 90% 以上场景 → 工作流;写出来发现分支爆炸 → 智能体。选完再问一句:它出错时我能不能不看代码就说出「错在第几步」?

示例拆解

同一个「整理资料」需求,两种实现的对比:

// 工作流版:路径固定,适合「每次都要做完所有事」
const report = [
  summarizeAll(await getAllChunks()),     // 1. 汇总全部片段
  matchCourses(report),                   // 2. 匹配站内课程
];

// 智能体版:按问题需要挑工具,适合「问什么做什么」
// 用户问「这份文档和哪门课相关」→ 模型只调 search_courses,不碰 summarize

关键点:

  • 混合形态是常态:本站资料导入是纯工作流(A24 走过的链路),学习助手是受限智能体,两者共存于同一应用。不必全站二选一。
  • 可解释性的差异是本质的:工作流出错看日志就能定位到步骤;智能体出错要回放模型的决策序列(为什么调这个工具)——这就是 A26 要做的执行轨迹。
  • 「智能体更强」是错觉:路径可预列的任务,工作流的每次输出都一样、每步都能测,稳定性碾压智能体。模型只有在「你不知道路」时才比流程图有用。

动手任务

  1. 把 A24 的导入流程列成步骤表,逐条标注「这步模型做了什么决策」——验证它其实一步都没有,是纯工作流。
  2. 观察站内助手:问两个不同类型的问题(一个查课程、一个查资料库),从服务端日志记录它分别调了哪些工具——验证「路径因问题而变」。
  3. 判断任务:给「自动给练习打分并写入库」选形态,用三个标准说明理由(提示:写库 = 错误代价高,路径可预列 = 工作流,模型只负责其中「判断对错」一步)。

常见错误

  • 什么都上智能体:能写成三行流程的事交给模型「自主规划」,成本翻倍、结果不可复现、出错没法审计。
  • 什么都写成流程:用户问题的多样性超出流程分支,最后 if-else 树比智能体还难维护。
  • 给智能体挂上写操作:自主决策 + 直接写库 = 错误直接落库。写操作必须先过 A29 的人工确认。
  • 受限形同虚设:白名单不校验、轮次没上限,「受限」只剩注释。约束要在代码里,不在文档里。

检查与复盘

自查清单:

  • 能用三个标准(步骤可预列、错误代价、可解释性)为任意新需求选形态并说理由
  • 能指出本站助手的三个「笼子」分别限制什么
  • 能说出混合形态为什么是常态

参考资料

检查题共 2 题,提交后立即显示解析
答案由服务端判定;答错的题会自动进入复习计划。
Q1单选中等

需求:「自动给练习打分并写入库,打分依据是评分规则文档」。按三个标准(步骤能否预列、单步错误代价、可解释性要求)选形态,正确的是?

Q2单选简单

本站学习助手被定义为「受限智能体」:形态上由模型决定下一步调什么工具,但自主性被收进三个笼子。这三个笼子是?

读完这一课了?

标记完成后,工作台会安排接下来的学习。

Command Palette

Search for a command to run...