工作流

Workflow 是一张可视化有向图:每个节点做一件事(调模型、检索、分支、跑代码),边决定顺序。适合步骤稳定、要可测、不希望模型自己改流程的任务。官方还提供 Chatflow:同一套节点,但每一轮用户消息都会跑一遍图,并带会话变量与流式回答。

对照 LangGraph 工作流:那里用 StateGraph 写节点;这里用画布连线。心智模型相同——图比「自由 Agent」更可预测

flowchart LR
  S[Start / User Input] --> K[Knowledge Retrieval]
  K --> L[LLM]
  L --> O[Output / Answer]

何时用工作流,何时用 Agent

用 Workflow / Chatflow用 Agent
先分类再走固定科室事先说不清要调几次工具
合规:每步可审计探索性任务、工具集合会变
批处理、定时、Webhook主要是开放域多轮对话
要稳定复现同一条路径接受模型「自己规划」的方差

也可以折中:大图仍是 Workflow,中间插一个 Agent 节点 只负责「这一步去查资料/调用工具」。官方当前更推荐新项目直接用 Workflow / Chatflow,Chatbot / Agent 基础应用是更薄的外壳。


头和尾

WorkflowChatflow
开始User Input(人/API 触发)或 Trigger(定时、Webhook、集成事件)必须是 User Input(一轮对话)
结束Output(可选,把字段回给调用方)Answer(对话回复,通常必填)

User Input 上定义的字段变成变量,供后续节点引用(画布里常以 / 插入变量)。系统还会注入 sys.user_idsys.app_idsys.workflow_run_id 等;Chatflow 另有 sys.conversation_idsys.dialogue_count


常用节点(先记这些)

节点做什么
LLM调已配置的语言模型;可打开记忆(Chatflow)
Knowledge Retrieval按 query 查知识库,输出给下游当上下文
Question Classifier用模型把输入分到若干类别,从而走不同边
If-Else按变量做确定性分支
Agent图中的一小段自主工具循环
Code短 Python / JS 变换数据
HTTP Request调外部 API
TemplateJinja2 拼装文本
Iteration / Loop对数组或重复步骤
Parameter Extractor从自然语言抽出结构化字段
Tool接到已安装的工具插件

还有文档抽取、列表运算、变量赋值/聚合、人工输入(暂停等人)等。先画通「输入 → LLM → 输出」,再加检索与分类,避免一上来三十个节点。

调试时用单节点运行、变量检查器和运行历史(名称以当前 Studio 为准)。失败先看是模型 Key、知识库为空,还是变量没传到下一节点。


最小可讲清的图:分类再回答

目标:用户问题先分成 faq / other,FAQ 走知识库 + LLM,其它走「礼貌拒答」LLM。

  1. Start / User Input:字段 query(或默认用户消息变量)
  2. Question Classifier:类别 faqother
  3. faq 边 → Knowledge Retrieval(query = 用户问题)→ LLM(提示词:仅依据检索结果)
  4. other 边 → LLM(提示词:说明本助手只答知识库范围)
  5. 两路汇到 Output / Answer

这比「一个 Agent 自己决定」更容易写测试:准备 10 条应进 faq、10 条应进 other,看分类节点是否稳定。完整操作见 实战案例


与 Chatbot 的关系

Chatbot 适合「提示词 + 可选知识库」的线性对话。一旦你需要显式分支、循环、HTTP、人工确认,就升级到 Chatflow / Workflow,而不是把全部逻辑塞进一段超长提示词。导出 DSL(YAML) 可在实例间迁移应用;密钥应放在环境变量里,避免 DSL 泄漏。


下一步

评论