替代n8n,用TypeScript写工作流

开发与运维数据库

用过n8n或Zapier的都知道,拖拖拽拽看起来简单,真要调试起来就头疼了。JSON配置文件看不懂,出了问题只能瞎猜,想加点自定义逻辑?对不起,框架不支持。

但问题是,这些节点本质上都是JSON配置,一旦出错就很难排查。想要自定义功能?只能在他们预设的框架里折腾。大部分的开发者肯定都有想法把它变成可调试的程序就好了。

今天介绍一个名叫Bubble Lab的工具,它的实现是标准的TypeScript代码。可以直接把生成的代码拷到自己项目里,想怎么改就怎么改。

picture.image

比如这个Reddit抓取的例子,就是普通的TypeScript类:

  
export class RedditNewsFlow extends BubbleFlow<'webhook/http'> {  
  async handle(payload: RedditNewsPayload) {  
    const subreddit = payload.subreddit || 'worldnews';  
  
    // 抓取Reddit帖子  
    const scrapeResult = await new RedditScrapeTool({  
      subreddit: subreddit,  
      sort: 'hot',  
      limit: 10,  
    }).action();  
  
    // AI分析并总结  
    const summaryResult = await new AIAgentBubble({  
      message: `分析这些帖子...`,  
      model: { model: 'google/gemini-2.5-flash' },  
    }).action();  
  
    return {  
      subreddit,  
      postsScraped: scrapeResult.data.posts.length,  
      summary: summaryResult.data?.response,  
      status: 'success',  
    };  
  }  
}

执行时会显示详细信息:耗时13.8秒,用了1524个token,内存峰值139.8MB。这种透明度是n8n给不了的。

它也支持自然语言生成工作流,不过这个功能现在还比较基础,复杂逻辑还是得手写。

picture.image

最大的亮点在于,它支持将n8n这样的工作流文件导入进而再开发调试。

技术细节

项目是纯用TypeScript写的,monorepo架构,核心组件:

  • 工作流引擎(bubble-core)
  • 运行时环境(bubble-runtime)
  • 可视化编辑器(React + Vite)
  • 后端API(Bun + Hono)

开发模式下用SQLite,不需要认证,pnpm install && pnpm run dev两条命令就能跑起来。

相比之下,简单工作流用n8n可能更省事,但如果需要更的复杂逻辑,或者团队本来就用TypeScript,这个工具就有了优势。

项目地址:https://github.com/bubblelabai/BubbleLab

关注公众号回复“进群”入群讨论。

0
0
0
0
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论