news 2026/10/20 6:00:32

【打造能干活的Agent】判断资料任务该用工作流还是 Agent

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【打造能干活的Agent】判断资料任务该用工作流还是 Agent

判断资料任务该用工作流还是 Agent:用一套验收标准做架构选择

课程归属:打造能干活的 Agent|第 2 节

处理资料时,很多需求看起来都像“让 AI 帮我分析”:有的只需按固定步骤读取文件、提取字段并生成报告;有的却需要根据资料内容决定下一步查什么、调用哪个工具,甚至在发现信息不足时换一种办法。本文用同一个“资料分析任务助手”案例,给出一套可执行的判断方法,最后形成明确的架构选择和验收清单。

一、先把问题说清楚:任务步骤是否能提前确定?

这里的“工作流”指由程序预先规定主要执行路径的流程,例如读取文件、提取要点、校验字段、生成报告;“Agent”指模型在执行过程中,根据目标和当前观察结果决定下一步行动,并可调用受限工具的系统。

两者不是“有没有大模型”的区别。工作流同样可以在某些节点调用大模型;Agent 也通常需要程序提供工具、状态管理和安全边界。真正的区别是:谁决定运行时的下一步?如果主要由预先写好的代码决定,是工作流;如果模型会根据中间结果动态选择行动,则更接近 Agent。这个区分与 LangChain/LangGraph 和 Anthropic 对两类模式的公开说明一致,参考文末资料。

二、用同一份资料需求比较两种方案

假设我们要处理data/input/中的教学资料,可能包含一份说明文本和一份 CSV。任务目标是生成report.md,其中包含资料摘要、关键数字、异常提醒和来源记录。

图 1:谁决定下一步?

是

否

接收资料任务

执行路径是否可预先确定?

工作流:按代码定义的步骤执行

Agent:模型根据观察选择下一步

校验输出与来源

检查工具结果并决定继续或调整

步数、权限与停止条件

交付报告或返回失败原因

观察重点不是流程里是否出现 LLM,而是分支由谁控制。工作流可以包含“让模型总结文本”这样的节点;Agent 则可能在读取文本后决定继续分析 CSV、搜索某个关键词,或者因证据不足而请求补充资料。

表 1:用任务特征做初筛

判断维度更适合工作流更适合 Agent
步骤顺序稳定,能事先列出取决于中间结果
分支规则可用明确条件表达需要结合上下文判断
工具选择每一步工具已确定运行时可能选择不同工具
失败处理重试、跳过、终止规则明确需要根据错误尝试其他路径
可审计性希望每次执行路径高度一致接受路径不同,但要求记录决策
风险边界自动化动作固定、容易限定需要严格限制可用工具和行动范围

这张表用于初筛,不是打分竞赛。只要某个关键动作涉及付款、删除、对外发送或修改业务数据,即使采用 Agent,也应把授权与确认放在程序控制层,不能把“模型说可以”当成权限。

三、把需求拆成可观察的步骤

架构选择前,先把一句模糊需求改写成输入、动作、结果和验收条件。否则很容易把“分析资料”误判成必须使用 Agent 的复杂任务。

表 2:本案例的任务契约

项目教学案例定义
输入data/input/brief.txt与data/input/metrics.csv
目标输出一份可核对的资料分析报告
必须动作读取文本、统计 CSV、汇总发现、校验报告
输出output/<task_id>/report.md、summary.json、run.log
来源证据报告中的文件名、CSV 使用的列名及统计口径
成功条件必需文件存在、字段完整、数字可由输入重算
失败条件输入缺失、列不存在、数据无法解析或报告校验失败

注意,以上是教学任务契约,不代表已经运行过某个项目。后续章节会逐步实现公共接口;本节的目标是先确定架构,不提前引入 LangGraph、SQLite 或模型 SDK。

图 2:固定路径的工作流

否

是

否

是

是

否

检查任务输入

文件齐全?

返回输入错误

读取文本资料

分析 CSV 数据

统计结果有效?

记录失败原因

整理摘要与证据

生成报告文件

输出校验通过?

状态:completed

这个流程的路径基本稳定,失败分支也可以提前定义。即便“整理摘要”使用大模型,整体仍可作为工作流实现,因为模型没有负责决定系统下一步调用什么工具。

四、什么时候值得引入 Agent?

现在把任务稍微改一下:用户只说“帮我分析这批资料,找出最值得关注的问题”。资料可能有文本、CSV,也可能有多份文件;异常出现在哪里并不确定。助手需要先读资料,再根据发现决定进一步计算、检查相关字段、回看原文,最后判断证据是否足够。

图 3:动态决策的 Agent 闭环

否

否

是

是

接收目标与可用资料

模型判断当前需要什么信息

选择一个允许的工具

程序校验参数并执行工具

观察工具结果

目标已满足且证据足够?

是否达到步数或权限边界?

停止并说明未完成原因

生成报告并执行验收

Agent 的关键不是“让模型自由发挥”,而是形成受约束的观察—行动—反馈循环。模型可以提出下一步,程序必须校验工具名称、参数、文件范围、调用次数和停止条件;工具结果也必须被检查,不能只凭模型的自然语言断言任务已完成。

表 3:把同一需求改成 Agent 后,契约哪里变化?

项目固定工作流Agent 方案
任务输入指定文件和固定分析目标目标可以较开放,但仍需明确范围
下一步决策程序按既定顺序执行模型结合工具结果选择允许的下一步
工具调用固定调用集合和顺序可从白名单中动态选择
停止条件到达流程末端或明确错误分支目标满足、步数耗尽、超时或需要人工介入
验收方式检查固定步骤及输出除输出外,还检查调用轨迹、证据和停止原因

动态决策并不意味着 Agent 一定更准确。它带来的是处理路径的灵活性,同时增加了模型调用、错误分支、测试覆盖和调试的复杂度。

五、做出选择:一套可以落地的决策流程

可以按以下顺序判断,不必先比较框架或模型品牌。

  1. 列出必须完成的动作。如果能稳定写成“读取—计算—生成—校验”,先从工作流开始。
  2. 找出真正不确定的环节。输入内容不同,不等于流程必须动态;如果差异能用字段检查和条件分支表达,仍然可以是工作流。
  3. 确认动态选择是否有价值。只有当模型选择下一步工具或策略,能解决固定分支难以覆盖的问题时,Agent 才值得考虑。
  4. 计算错误成本。如果误操作代价高,优先让程序控制关键路径;需要 Agent 时,把高风险动作设计为只读、草稿或人工确认。
  5. 设计可验收的停止条件。无论哪种架构,都要定义最大执行步数、超时、输入边界、输出校验和失败状态。

表 4:决策记录模板

问题本案例的判断设计结论
资料格式是否明确?文本和 CSV 已知可以固定读取入口
分析步骤是否稳定?摘要、统计、报告、校验顺序固定主线采用工作流
是否需要动态挑选工具?基础任务不需要暂不引入 Agent 循环
是否存在探索性问题?用户可能要求追查异常原因可作为后续 Agent 扩展点
如何控制风险?只读教学文件,输出写入指定目录限定路径并校验输出

因此,本课程的第一版“资料分析任务助手”应从普通 Python 函数和固定执行流程开始。先确保输入可读、统计正确、报告可验收,再在确有动态决策需求时引入 Agent 循环。后续学习顺序也会沿着这个原则推进:先定义工具契约,再接入模型,最后才讨论循环、图编排和持久化。

六、如何验证选择不是拍脑袋?

架构选择需要用任务样例验证,而不是只凭“Agent 更智能”这样的印象。建议先准备一组小型测试:正常资料、缺失文件、CSV 缺列、空数据,以及一个需要进一步追查的开放问题。

表 5:最小验收集

用例输入变化预期判定
正常用例文本和 CSV 都有效报告存在,统计可复算,来源清楚
缺文件删除或改名一个输入文件明确失败,不生成伪成功状态
缺列CSV 缺少约定字段指出缺失列,停止相关统计
空数据CSV 只有表头输出明确的空数据说明,不除以零
开放追查要求解释异常,原因未知若需动态选择多种工具,可评估 Agent 是否有实际价值

验收时,状态completed只能在必需输出通过检查后设置。工具函数返回ok只表示单次工具操作成功,并不等于整个任务完成。这个区分能避免出现“文件读取成功,但报告没生成,任务却显示成功”的问题。

图 4:失败也必须有明确出口

"输出校验""资料工具""任务运行器""用户""输出校验""资料工具""任务运行器""用户"alt["校验通过"]["校验不通过"]alt["工具失败"]["工具成功"]"提交资料任务""读取文本或分析 CSV""返回数据或错误""返回失败状态与原因""检查报告与摘要""通过""返回报告路径""缺少文件或字段""返回失败状态"

图中的运行器是程序控制层,负责协调工具、记录结果和判定状态;工具只报告自己的执行结果;校验器根据真实文件和字段做验收。即使以后把固定流程升级为 Agent,这几项职责也不应该交给模型的口头承诺。

七、常见误区与边界

误区 1:只要使用大模型就是 Agent

不是。固定流程中用模型提取摘要或分类,仍然可以是工作流。判断依据是模型是否掌握运行时的行动选择权,而不是系统里是否调用了 LLM。

误区 2:步骤多就必须用 Agent

步骤多可能只说明流程复杂。只要顺序稳定、分支可描述、失败策略可预先定义,普通函数或工作流通常更容易测试和排错。复杂度本身不是引入自主决策的理由。

误区 3:Agent 可以自己判断任务是否成功

模型可以提出“看起来已完成”,但成功状态必须由程序根据客观条件判定,例如文件存在、JSON 可解析、必要字段齐全、数字能由原始数据复算。涉及外部写入时,还应单独验证授权与实际执行结果。

误区 4:选择了 Agent 就不用设计工作流

实际系统经常是混合结构:外层工作流负责输入检查、权限、超时、日志和交付;其中一个受限 Agent 负责处理开放式分析。这样既保留动态处理能力,也不把所有控制权交给模型。

八、本节交付结论

对“读取固定文本和 CSV,生成可验证报告”的第一版任务助手,选择工作流优先。原因是输入类型、核心步骤和验收规则都可以事先确定。只有当需求扩展到“根据未知发现动态选择调查路径”时,再通过测试证明 Agent 的灵活性值得额外成本。

本节的验收产物不是一段看似聪明的回答,而是一份架构决策记录:明确输入、步骤、输出、失败条件和升级触发点。后续实现时,所有工具都应返回结构化结果,任务状态由程序维护,报告必须经过实际检查后才标记完成。

参考资料

  1. LangChain 文档,Workflows and agents:https://github.com/langchain-ai/docs/blob/main/src/oss/langgraph/workflows-agents.mdx
  2. Anthropic,Building effective agents:https://www.anthropic.com/engineering/building-effective-agents
  3. OpenAI,A practical guide to building AI agents:https://openai.com/business/guides-and-resources/a-practical-guide-to-building-ai-agents/
  4. OpenAI Developers,Building agents:https://developers.openai.com/tracks/building-agents
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/20 6:00:11

AI产品经理能力跃迁:从会用AI到能落AI的实战拆解

最近后台收到好多类似的留言&#xff1a;我也天天用AI&#xff0c;写提示词也算熟练&#xff0c;为什么一到项目里就做不出来&#xff1f;“AI产品经理岗位到底在要求什么样的人&#xff1f;”恰好我关注到一个信息&#xff0c;某头部知识问答社区把内部沉淀的AI训练营推上了公…

作者头像 李华
网站建设 2026/10/20 6:00:10

符号接地:具身智能泛化失败的核心症结

近两年“具身智能”这个词频繁出现在各种技术讨论里&#xff0c;大家一边惊叹于机器人能在模拟环境里翻跟头、抓取物体&#xff0c;一边又发现这些能力一旦放到真实世界就变得极其脆弱。我自己的感受特别深&#xff1a;模型在训练集里明明已经“认识”了杯子&#xff0c;换个灯…

作者头像 李华
网站建设 2026/10/20 6:00:01

从零搭建企业级实时数据中台:架构选型与实战避坑指南

做企业级实时数据中台这件事&#xff0c;我前后折腾了快一年。从最初只有几张离线T1报表&#xff0c;到后来能支撑业务方实时看数、实时风控、实时大屏&#xff0c;中间踩过的坑、推倒重来的架构&#xff0c;足够写成一本书。今天这篇就把我从零搭建实时数据中台的完整路径拆给…

作者头像 李华
网站建设 2026/10/20 5:59:39

大白话模型.1.1人工智能与机器学习

文章目录1. 人工智能2. 机器学习2.1 机器学习举例&#xff1a;预测房价举例&#xff1a;区分车还是人2.2 按反馈信号分类2.2.1 监督学习2.2.2 无监督学习2.2.3 半监督学习2.2.4 自监督学习2.2.5 强化学习2.3 按任务类型分类2.3.1 分类2.3.2 回归2.3.3 聚类2.3.4 关联规则2.3.5 …

作者头像 李华
网站建设 2026/10/20 5:59:36

NPS权限改造实战:5步落地RBAC权限模型

NPS 用久了&#xff0c;你会发现一个特别尴尬的事实&#xff1a;Web 管理后台里基本只有两种人——管理员和普通用户。管理员拥有一切权限&#xff0c;普通用户只能看自己名下的客户端。这种“全有或全无”的权限模型&#xff0c;在小团队里尚可忍受&#xff0c;一旦客户端数量…

作者头像 李华