从空画布到一条能跑的链,顺序是:先写六步表、再连、再校验、最后真跑。 六步表不是给别人看的,是给你自己看的——写不出来就别动鼠标。 这一节还看一件真机上看不清的事:分支跳步的时候,被跳过的节点在轨迹里还占一行。
前三节讲形状、价值、结构,这一节把三样合起来用一次。 这条链只有六个节点, 但它是第 8 章推文生成器的骨架——后面九个案例没有一个是全新的图,全是这张图加节点。 沙箱里没有画布,所以「连」这一步是用代码连的。 连的逻辑和拖鼠标完全一样:加节点、连边、校验、跑。
一、第一步:先在纸上写六行
打开画布之前,先写一张表:第几步、用什么节点、干什么。六行就够。 演示里那张表是:开始收文章、代码数字数、选择器判长短、大模型压三句、代码抽关键词定分类、 结束交出三样。 写这张表的好处是它逼你面对「这一步到底干什么」。 写不出「干什么」的那一行,就是多余的节点。
表写完再打开画布,顺序就不会乱。反过来先连后想,连到第五个节点就会发现要重来。
二、第二步:连
按表加节点,一个节点一个节点接。接的时候只做一件事:把上游的出参接到下游的入参上。 接不上就是「这一步要吃什么,上一步给不出」。回头改表,别硬接。 演示里那个选择器有两条出边,一条去大模型,一条直接去结束。两条出边都连上,不然平台报悬空出口。
这一处是新手最常漏的:只连了「长」那一条,忘了「短」那一条。运行时短文走不通。
三、第三步:校验,不是可选项
连完点校验。四道检查:有环、孤儿、悬空出口、结束节点个数。 演示里这条链是「校验:通过」。但通过不等于能用——校验只查结构,不查数据。 校验查不出来的三类问题: 引用写错(取到空值)、条件写反(走错分支)、 字段名对不上(下游拼出缺角的句子)。
这三类只能靠真跑发现。所以校验之后一定跟一次真跑,别直接发布。
四、第四步:真跑,看两遍
真跑要跑两遍:一遍走「长」那条分支,一遍走「短」那条。每条分支都要有人走过。 演示里长文那次六个节点全跑;短文那次大模型节点标着「跳过」。 两次的轨迹表一比,分支对不对一眼就看出来。 看轨迹表要盯三列:走了几步、哪一步跳了、每步吐了什么。第三列最有价值——吐出来是空的那一步, 就是引用写错了。
真机上被跳过的节点是变灰,不占一行。轨迹表把它留着,标「跳过」——因为「跳过」本身就是一个信息。
五、第五步:这条链能长成什么
六个节点的链很短,但它已经有了一条完整的骨架:输入、判断、处理、输出。 往里加东西,就是往这四段里塞。要事实,在判断后面塞知识库检索;要排版,在输出前塞卡片; 要抓数据,在输入后塞插件。 第 8 章的推文生成器是它加了热点抓取和配图;第 12 章的海报助手是它加了画板和图像生成。
骨架不变,长出来的都是枝。 这句话是这一章最该带走的一句——学会了画一条六节点的链, 剩下的九个案例都是同一件事。
六、调试的三个习惯
一、逐节点看输出。 别只看最后那句答复。哪一步开始不对,问题就在那一步的前一步。 二、先换成常量试。 某个节点老是取不到值,把它的入参直接写死一个常量,看下游对不对。 对,说明是上游的问题;不对,说明是这一步的问题。 三、一次只改一处。 同时改三处,跑通了也不知道是哪一处的功劳,跑不通也不知道是哪一处的错。
三个习惯都不需要工具,但能省掉一半的调试时间。
七、动手 Demo:从空画布连出一条能用的链
一条文章摘要链:收文章、数字数、判长短、长的摘要、抽关键词定分类、交出三样。 先看六步表,再连起来真跑一次长文,最后换一段短文看分支怎么跳。
f = Flow()
f.add(Node('start', 'start', '开始', lambda g: {'text': ART}, outs=('text',)),
Node('cnt', 'code', '代码节点', _count, ins=('text',), outs=('n',)),
Node('sel', 'select', '选择器', _pick, ins=('n',), outs=('long', 'short')),
Node('llm', 'llm', '大模型', _sum, ins=('text',), outs=('s',)),
Node('ext', 'code', '代码节点', _kw, ins=('text',), outs=('kw', 'cat')),
Node('end', 'end', '结束', _out, ins=('s', 'kw', 'cat'),
outs=('s', 'kw', 'cat')))
f.link('start', 'cnt'); f.link('cnt', 'sel')
f.link('sel', 'llm', when='long') # 长:走摘要
f.link('sel', 'ext', when='short') # 短:直接抽词
f.link('llm', 'ext'); f.link('ext', 'end')
print(f.check()) # 四道校验
rec = f.run({}) # 真跑一次
实跑输出:
--------------------------------------------------------------------
从空画布连出一条能用的链
--------------------------------------------------------------------
① 先想要几步
--------------------------------------------------------------------
| 步 | 节点 | 干什么 |
|---:|---|---|
| 1 | 开始 | 接收一段文章 |
| 2 | 代码节点 | 数字数,判断长不长 |
| 3 | 选择器 | 长的走摘要,短的直通 |
| 4 | 大模型 | 压成三句话 |
| 5 | 代码节点 | 抽关键词、定分类 |
| 6 | 结束 | 三样一起交出 |
② 连起来,真跑
--------------------------------------------------------------------
校验:通过
| 步 | 节点 | 类型 | 输出端口 | 毫秒 |
|---:|---|---|---|---:|
| 1 | 开始 | 开始 | text | 0.0 |
| 2 | 代码节点 | 代码 | n | 0.0 |
| 3 | 选择器 | 选择器 | (无输出) | 0.0 |
| 4 | 大模型 | 大模型 | s | 0.0 |
| 5 | 代码节点 | 代码 | cat、kw | 0.0 |
| 6 | 结束 | 结束 | cat、kw、s | 0.0 |
摘要:新版平台下月上线,支持工作流、知识库与多智能体;重点是不写代码也能搭。
关键词:平台/工作流/知识库;分类:产品发布
③ 换一段短文章,看分支怎么走
--------------------------------------------------------------------
| 步 | 节点 | 类型 | 输出端口 | 毫秒 |
|---:|---|---|---|---:|
| 1 | 开始(短文) | 开始 | text | 0.0 |
| 2 | 代码节点 | 代码 | n | 0.0 |
| 3 | 选择器 | 选择器 | (无输出) | 0.0 |
| 4 | 大模型 | 大模型 | 跳过 | — |
| 5 | 代码节点 | 代码 | cat、kw | 0.0 |
| 6 | 结束 | 结束 | cat、kw、s | 0.0 |
短文那一路跳过了大模型节点——因为选择器判成「短」,摘要那枝整枝被跳过。
跳过的节点在轨迹里还占一行,标着「跳过」。真机上你看到的是它变灰。
! 这条链五个节点、两条分支,就是第 8 章推文生成器的骨架。
后面九个案例没有一个是全新的图,全是这张图加节点。
①第一张表只有六行,六行里第三行是「选择器判长短」——整条链的唯一岔口。其余五行都是直线。 ②第二段连完立刻校验,输出「校验:通过」。注意选择器有两条出边,少连一条就报悬空出口。 ③长文那次的轨迹是六步全跑。结束节点吐了三个端口:s、kw、cat——三个端口说明它交出去三样东西。 ④短文那次第五行标着「跳过」。被跳过的节点在轨迹里还占一行,因为「跳过」本身就是信息。 真机上它是变灰。 ⑤最后一句:这条链五个节点、两条分支,就是第 8 章推文生成器的骨架。后面九个案例没有一个是全新的图。
30 秒实验
- 把这条六步链自己连一遍(真机或代码都行),然后故意漏一条出边,看校验报什么。
- 跑两遍:一遍长文,一遍短文。把两张轨迹表并排放,找出哪一步不同。
- 往里塞一个节点:要么在判断后加知识库检索,要么在输出前加卡片。塞完再跑两遍。
常见误区
- 「先连起来再说。」连到第五个节点就会发现要重来。先写六行表,两分钟的事。
- 「校验通过就能发布。」校验只查结构。引用错、条件反、字段名不对,它一个都查不出。
- 「跑通一次就行了。」至少跑两次——每条分支都要有人走过。只跑长文的,短文那路一直坏着。
自测三问(点开对答案)
1. 画图之前先做什么? —— 写一张六行表:第几步、用什么节点、干什么。写不出「干什么」的那行就是多余节点。 2. 校验查不出哪三类问题? —— 引用写错取到空值、条件写反走错分支、字段名对不上。这三类只能靠真跑发现。 3. 为什么要跑两遍? —— 每条分支都要有人走过。只跑一条,另一条可能一直是坏的,而你不知道。图会画了,下一个问题是:模型凭什么回答关于你公司的问题。 下一章讲知识库——先把「为什么不能只靠模型记忆」这件事算清楚。
- ☐ (本篇完,下一篇 5.1 为什么需要企业知识库)
相关笔记
- 扣子工作流的常见节点:十五个节点归四类
- 扣子工作流的逻辑结构:四道校验
- 18 Agent+RPA实战 · 索引
- 🐦 扣子开发 AI Agent · 索引