为什么 AI 工作流一定要“填字段”?

我用了 Dify、n8n 一段时间之后,终于忍不住自己做了一个。

不是因为它们不好。

恰恰相反,它们都很强。

但我一直有一个特别难受的感觉:

做个工作流,为什么我要一直找字段?

这个节点要填什么?

这个参数在哪?

这个函数叫什么?

这里为什么还要再配置一层?

尤其是 n8n,对英文不太好的我来说,有时候真的像在做阅读理解😂

插件很多、生态很大,但很多节点、文档和服务本身就是围绕海外生态来的。

后来我突然想到:

为什么不能像 ComfyUI 一样?

不要让我找字段。

直接把所有输入输出变成端口。

需要什么,就连什么。

网页
 │
 ▼
内容提取 ───→ AI总结 ───→ 邮件
                 │
                 ▼
              保存文件

我想要的工作流就应该这么简单。

所以我开始做 ChengOS。


但 ComfyUI 也不是答案

ComfyUI 给我的最大启发,就是:

“端口 + 连线”真的很适合表达复杂工作流。

但它的整体体量对我来说又太重了。

我想做的是一个更通用的版本:

不只做图片,也不需要为了跑一个简单自动化就背着一整套庞大的系统。

所以 ChengOS 从第一天开始就有一个很朴素的目标:

轻。

不是“轻量级”三个字写在 README 上。

而是真的尽可能轻。

现在它已经可以跑在:

1 核 CPU / 512MB 内存的 VPS上。

对于我来说,这比堆几十个功能更有成就感。


ChengOS 到底想做什么?

一句话:

一个像 ComfyUI 一样,通过端口和连线搭建 AI 工作流的轻量工作流引擎。

我希望你看到一个节点的时候,不需要先研究:

“这个字段叫什么?”

而是直接看到:

        ┌────────────┐
输入 ──→│ AI 总结     │──→ 输出
        └────────────┘

然后:

连线。

就这么简单。


MCP 也不是为了“蹭热点”

ChengOS 会支持 MCP。

但我更希望 MCP 在这里扮演的是:

把外部能力接进工作流。

一个 MCP 能力可以变成一个节点。

一个工作流也可以被复用、组合,甚至分享给别人。

所以以后你可能看到的是:

一个人做一个工作流 → 分享这个工作流 → 别人直接拿来组合自己的工作流。

而不是每个人都重新从零搭一遍。


为什么用 Rust?

因为我不想做一个“能跑就行”的网页应用。

我希望它最终可以非常小、非常快,而且真正适合:

AI 已经够重了。

工作流引擎就别再跟着一起变重。


所以 ChengOS 并不是:

“我要做一个比 Dify 更强的平台。”

也不是:

“我要重新造一个 ComfyUI。”

更准确地说:

我只是一直没找到一个自己真正喜欢的 AI 工作流交互方式。

于是决定:

那我自己做一个。

如果你也讨厌“找字段、填字段、看参数”,

可能你也会喜欢这种方式。

接下来我会持续把 ChengOS 的开发过程、工作流案例和各种踩坑记录发出来。