项目开源地址:https://github.com/GuoBug/PatchCat
在线体验:https://guobug.github.io/PatchCat/
往期回顾:
📖 《从 0 到 1 打造 AI 提示流编排器:即时对话调试抽屉、节点级耗时追踪与一键发布生产 API 实战(开源系列 07)》
📖 《从 0 到 1 打造 AI 提示流编排器:IndexedDB 工业级会话存储、动态 Token 修剪与变量注入实战(开源系列 08)》
📖 《从 0 到 1 打造 AI 提示流编排器:给大模型装上手和脚!Agent 节点与 Tools 工具调用体系设计与实战(开源系列 09)》
一、 酒香也怕巷子深,做出来之后怎么让人愿意用?
在之前的系列文章中,我们陆续死磕了 Kahn 拓扑排序调度、多模型流式直连、RAG 私有知识库检索、条件分支动态剪枝,以及上一篇刚落地的 Agent 节点与 Tools 工具调用体系。
折腾到这个阶段,整个系统才刚刚达到了 MVP。
在很多以技术为主导的项目里,大家往往习惯把全部心思倾注在底层算法怎么写、架构怎么搭上,不知不觉就容易陷入“重功能、轻上手”的局面。
常言道,“酒香也怕巷子深”。现在的开源和大模型生态里优秀的工具层出不穷,光把底层逻辑跑通远远不够,做出来之后,更关键的是怎么让用户真正愿意用、能用得顺手。
大模型工作流本身就带有天然的认知门槛:有向无环图、输入输出句柄(Handle)、变量引用注入、提示词工程……如果新来的朋友点进网页,迎面而来的是一片空荡荡的画布网格,不知道第一步该往哪点,十有八九关掉标签页就再也不会回来了。
在这个注意力极其碎片化的时代,用户能抽空点进你的页面,本身就是极难得的缘分。如果做得不好,这就是用户与产品最后一次接触;好不容易产品才与用户相遇,就得加倍珍惜每一次机会。
因此,怎样让用户一上来就能看懂、能用顺手(Onboarding 体验),在某种程度上和底层的核心架构完全同等重要。

二、 换位思考:常见的蒙版式引导与用户的真实心理
1. 常见蒙版式引导的局限
很多软件在做新手引导时,习惯采用常见的蒙版式引导:把整张屏幕遮灰,留一个小圈高亮某个按钮,“请点击这里添加节点,再点击这里连线,点下一步继续……”。
设身处地站在真实使用的感受来看:新来的朋友通常更想自己先看一眼产品大概长什么样。被强行蒙版遮挡视线和操作,容易让人产生一种被操控的压迫感,大多数人甚至连上面的说明文字都没看,本能地就想找右上角的叉号关掉。而关掉之后,又再次陷入了对着空白画布发呆的窘境。
2. 心理洞察:人对什么接受度最高?
我们设身处地地想一想:自己平时对什么东西的接受度最高?答案往往是——对自己创造的、由自己主动选择的东西,接受度最高。
如果一上来就被外界强塞一套死板的既定步骤,人本能就会产生抗拒;但如果我们把选择权交还给用户,让用户自己来定路线——不管是选择先逛逛成熟的案例,还是选择亲手搭一条链路——由用户自主决定的过程,往往能获得更好的接受度和好感度。
所以,我们选择不在界面上加任何打断式的遮罩蒙版,而是在画布正中央放一张随取随用、安安静静的自适应引导卡片,把主动权完全留给大家。

三、 关键决策与双向共创:自适应引导设计 (Milestone Co-Discovery)
在确立了“不搞强制蒙版、把选择权还给用户”的原则后,我和 AI 搭档展开了一轮推演。这套自适应引导卡片的核心在于:体贴地照顾两类不同的朋友。
关键点 1:新朋友重在“降心智”,老朋友重在“省力气”
- 我提出的产品定位与交互设想:
- 面对新来的朋友:核心是“降低心智负担,看个明白”。文案要平实、真诚一些,主标题引导大家“从成熟业务场景起手,快速探索大模型工作流编排”。卡片上直接给出醒目的
[ 📚 浏览场景模板画廊 ]入口;如果想自己动手摸索,点击[ ⚡ 空白画布自主搭建 ],卡片就自然淡出,绝不挡路、不碍视线。 - 面对熟悉编排的老朋友:老手不需要看新手指南,给他们省心省力最要紧。直接提供一个顺手的起步脚手架:
[ ⚡ 一键装配基础链路 ]:点一下,画布上瞬间生成并连好线的输入 ➔ 提示词 ➔ 大模型标配基础链路并自动居中,把每次都得重复拖拽三遍基础节点的机械劳作直接省下来;[ 📁 导入已有工作流 JSON ]:老手直接继续上次的项目;[ 📚 场景模板画廊 ]:留作灵感参考。
- 面对新来的朋友:核心是“降低心智负担,看个明白”。文案要平实、真诚一些,主标题引导大家“从成熟业务场景起手,快速探索大模型工作流编排”。卡片上直接给出醒目的
以成熟场景为切入点,提供画廊入口与自主探索选项,拒绝任何侵入式蒙版遮挡。
一键自动铺设「输入 ➔ Prompt ➔ LLM」基础链路并连线,免去枯燥的重复劳动。
关键点 2:AI 搭档指出的前端交互细节与穿透防线
在动手实现 EmptyCanvasHero.tsx 时,AI 搭档提醒了一个非常关键的细节隐患:
“如果引导卡片只是在状态上隐藏或者做了透明度淡出,但在 DOM 树上依然占据着中心图层,那么用户后续在画布中心拖拽节点、划线框选时,事件很可能会被这个不可见的透明容器拦截,导致‘明明看到了节点却怎么也点不中’。”
为此,我们专门制定了严格的状态退场机制:
- 当用户点击关闭或添加了第一个节点后,卡片触发
300ms的平滑过渡动画(transition-all duration-300 opacity-0 scale-95); - 动画触发的同时,立即追加
pointer-events-none样式,保证鼠标点击与画布平移(Pan/Zoom)能够穿透到底层; - 一旦工作流中包含任何有效节点,卡片彻底卸载,绝不给后续的高频操作带来任何性能负担。
四、 8 大场景模板与“拓扑小胶囊”:让人一眼就能看懂
1. 拒绝只有大段文字的干瘪模板
许多工具里的模板中心,点进去往往只有一段空泛的英文名字和一段长篇大论的说明,用户要是不真正点“使用”,根本不知道里面到底串联了什么逻辑、有几道步骤。
为了让大家看得明明白白,我们做了一个创新尝试:拓扑小胶囊(Pipeline Capsules)。
在每一个模板卡片上,我们把整个工作流的数据流动链路,像项链一样一条一条地直观呈现在卡片表面。用户根本不需要点进画布,只看卡片上的胶囊标签和链路流转,一眼就能看清整个链路上下游的数据依赖:输入给谁、从哪检索、谁在负责质检。

2. 精选 8 大成熟生产场景
我们在 preset-meta.ts 中精心打磨了 8 个涵盖主流 AI 落地痛点的生产级预设模板:
| 场景模板名称 | 核心类型 | 拓扑流转链条 | 业务落地价值 |
|---|---|---|---|
| 知识库增强与合规质检 | 知识库 RAG | 入参 ➔ RAG检索 ➔ LLM初稿 ➔ 规则质检 ➔ 聚合 |
两阶段事实核对,解决企业知识问答幻觉 |
| 智能工单分流与自动化路由 | 逻辑路由 | 入参 ➔ 意图识别 ➔ Condition分支 (紧急/常规) ➔ 响应 |
动态情感与紧急度分流,降低人工坐席成本 |
| 多模型盲测竞技场 | 对比评测 | 入参 ➔ Prompt ➔ (GPT / Gemini / DeepSeek 并行) ➔ 聚合 |
多家模型同题同台竞技,直观对比输出质量与耗时 |
| 智能客服意图识别问答 | 混合应用 | 客户提问 ➔ 意图分流 ➔ 知识检索 / 转人工 ➔ 话术生成 |
典型 B 端客服场景最小完备闭环 |
| 外部天气 API 动态调用 | REST API | 城市入参 ➔ HTTP获取实时天气 ➔ 穿衣建议Prompt ➔ LLM |
大模型与外部实时系统数据打通范例 |
| 自主工具调用 Agent | 智能体 | 用户目标 ➔ Agent ReAct自主思考 ➔ (Code/API) ➔ 终答 |
单节点内聚 ReAct 闭环与工具动态调度 |
3. 一键平滑装配(fitView 居中动画)
点选心仪的模板后,系统不仅把节点和连线写进当前工作流,还会调用 React Flow 的视口自适应机制:
// 模板注入后平滑居中适配视口
fitView({
padding: 0.2,
duration: 400,
});
无论用户使用的是小屏笔记本还是 4K 带宽屏,导入后的工作流都会在 400ms 内平滑缩放到最佳居中视野,绝不会出现“导入后找不到节点在哪里”的尴尬局面。
五、 边写边学与严谨落地:不给用户添堵 (Learning Workflow)
在这一特性的打磨中,我们依然严格贯彻了“先权衡、逐段推导、亲自写单测验证”的工作流。
1. 架构解耦:别让模板拖慢首屏
如果把 8 套完整工作流的所有节点配置、系统提示词全文硬编码在前端主入口,会导致首屏 Bundle 体积瞬间膨胀几十 KB。
我们把模板体系拆分为两层:
- 静态轻量元数据层(
preset-meta.ts):仅包含分类标签、中英文标题、简短摘要与拓扑胶囊,打在主包里极小; - 真实工作流工厂层:当且仅当用户点击“使用此模板”时,才按需加载并实例化完整的节点与连线数据。
2. 自动化单测:杜绝“兴冲冲一点却报错”的糟糕体验
好不容易新朋友对某个场景感兴趣,点了一下导入,如果控制台报了个 undefined 红色弹窗,对产品的信任感瞬间就会化为乌有。
为此,我编写了严格的针对性单测(tests/canvas-ergonomics.node.test.ts),对 8 套模板在中英文环境下的数据完整性做地毯式扫描:
- 校验每个节点的
label、description均有合法人性化展示,无空字符串; - 校验所有连线的源句柄与目标句柄 ID 严格存在,杜绝悬空连线;
- 校验 Condition 分支 Handle 与 Aggregator 聚合字段一一对应。
自动化回归跑完,245 项单测全部绿灯,心里才踏实下来。
六、 总结与交流:做产品的一点真情实感
回过头来看这次对空白画布引导和场景模板的打磨,心里最大的感触是:
以前总觉得把底层的 Kahn 拓扑调度写得天衣无缝、流式协议抹平得丝滑流畅才是“硬功夫”。但现在越来越真切地体会到,如果大家第一步根本迈不进来,再漂亮的引擎也只能安静地躺在自己的本地硬盘里。
把门槛放得低一点,把交互做得体贴一点,设身处地多为真实用户着想:
- 让新来的朋友在 10 秒钟内就能看明白这个工具到底能帮他干什么;
- 让熟悉编排的老朋友在 1 秒钟内就能痛痛快快开始干活。
珍惜每一个愿意打开页面的用户,这就是一个做产品的人最朴素的敬畏心。
当然,自己也是边写边学、边做边优化,无论是卡片的视觉细节,还是模板的丰富程度,都还有很多可以持续打磨的地方。非常欢迎社区的朋友们上手体验、多提意见,咱们一起交流,共同把这个工具打磨得更好用!
项目开源地址:https://github.com/GuoBug/PatchCat
在线体验地址:https://guobug.github.io/PatchCat/
如果文章对你有所启发,欢迎在 GitHub 上点个 Star 🌟,更欢迎资深工程师与产品同行提出你的宝贵指教!