九个 Agent 平台的流程能不能进 Git:Dify 给 YAML,n8n 给 JSON,Zapier 给的是快照(基础篇)

九个 Agent 平台的流程能不能进 Git:Dify 给 YAML,n8n 给 JSON,Zapier 给的是快照(基础篇)

拖出来的流程,第二个想改的人不敢碰。这是我这两年看 Agent 平台最实在的一条标准:它的流程能不能像代码一样进 Git。我把机器上装的九个平台挨个导出了一遍,答案差得挺远。

九个 Agent 平台的流程写入 Git 的三档分层图
三档分层:谁的文件本来就是流程,谁靠导出回灌,谁只能人工搬

第一档:流程本来就是文件

CrewAI、AutoGen、MetaGPT 这三个根本没有”导出”这个动作,因为流程就是仓库里的文件。CrewAI 60,591 星,1.15.37 版,一支队伍写在 agents.yaml 和 tasks.yaml 里,逻辑是 Python;AutoGen 61,736 星,最新 tag 还是 2025 年 9 月 30 日的 python-v0.7.5,官方已经把它归到维护模式;MetaGPT 71,205 星,最后一次发版是 2024 年 4 月的 v0.8.1,仓库 2026 年 1 月之后就没再推过代码。

这一档的好处是 PR、diff、回滚全都免费,改个分支就是改三行代码。坏处也直白:没有画布,运营想调一句提示词,得找工程师。

第二档:有画布,但导出能回灌

Dify 160,583 星,11 月 4 日发了 1.19.0。它的 DSL 就是一份 YAML,节点、提示词、变量全在里面。1.18 是个分水岭:从这版起导出的是 .ifpkg 应用包,里面除了 DSL 还有图标和 Agent 的 Skill 文件,再往前只有 .yml。它自带 difyctl,export studio-app 和 import studio-app 两条命令就能把应用拉进仓库再灌回实例,这才是能接 CI 的姿势。

n8n 209,723 星,最新 2.46.6。工作流本身就是 JSON,Server CLI 带 --separate 参数,一个流程一个文件,扔进 Git 刚好。但 Git 双向同步(source control 和 environments)是 Business 起步的功能,自托管也一样,社区版还得自己写定时脚本往外导。

Langflow 156,397 星,1.13.1,flow 也是 JSON,除了界面导出,还能打 /api/v1/flows/download 批量下 zip;它做应用容器化时干脆让你把 JSON 放进 /flows 目录。

Flowise 55,561 星,chatflow 同样是 JSON,但仓库 8 月 13 日转了只读,导出按钮还在,安全补丁不会再有。

第三档:能导出,但进不了流水线

Make 的 blueprint 是真能用的:右上角三个点,Export blueprint,得到一个 .json,也能再导回去,单个上限 2 MB。问题是它没有命令行,文件里全是模块 id 和画布坐标,git diff 出来两百行噪音,review 的人直接放弃。

Zapier 这两年补得挺全:账号级在 Settings → Security and data → Download my account data,任何套餐都能拿到一个 zip,里面的 zapfile.json 装着所有 Zap;单条 Zap 的 JSON 导出按钮只对 Team/Enterprise 的 owner 出现;导入就是上传文件,免费试用期还不行。这套东西够搬家,但接不进流水线——没有 CLI,没有 dry-run,也没有”仓库改了、实例跟着变”。

上手:一个目录,两条命令

workflows/
  dify/support-bot.ifpkg
  n8n/order-sync/*.json
scripts/pull.sh

pull.sh 里就两行:difyctl export studio-app <app-id> -o dify/support-bot.ifpkg,n8n export:workflow --all --separate --output=n8n/order-sync。挂个 cron 每周跑一次,git diff 有变化就让人看一眼。回灌倒过来跑 import 就行。

实话

能导出不等于能维护。 画布平台的 JSON 里塞满坐标和节点 id,挪三个节点就是两百行 diff,谁也 review 不动。真正能在 PR 里被看懂的,只有 Python 和 YAML 那一档。

凭据永远不进 Git。 Dify 导出明确不含第三方工具 API Key、知识库内容和日志;n8n 导 workflow 只带凭据 id 不带本体。换实例照样每个应用重连一遍,这一步省不掉。

.ifpkg 是个 zip,更不适合 diff。 想版本管理就导 .yml,想完整搬家再上包,两个用途别混。

别指望导出等于解锁。 Zapier 的连接(OAuth)根本不在导出文件里,Zapier 的 webhook 地址换平台也会变,每个发送方都得改一遍。

判断标准其实一句话:这份流程,第二个人能不能在 PR 里看懂并改一行。能,就进 Git;不能,它迟早变成只有一个人敢碰的黑盒。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注