OpenClaw + n8n 工作流编排

2025-01-15
6 min read
Anonymous
OpenClaw + n8n 工作流编排

让 AI 智能体直接管理 API 密钥和调用外部服务是安全事件的温床。每次新的集成意味着 .env.local 中又多了一个凭据,又多了一个智能体意外泄露或滥用的面。

这个用例描述了一种模式:OpenClaw 通过 webhook 将所有外部 API 交互委托给 n8n 工作流——智能体从不接触凭据,每个集成都可直观检查和锁定。

痛点

当 OpenClaw 直接处理所有事情时,你会遇到三个叠加的问题:

  • 缺乏可见性:当智能体构建的内容隐藏在 JavaScript 技能文件或 shell 脚本中时,很难检查它实际做了什么
  • 凭据泛滥:每个 API 密钥都存在于智能体的环境中,一次糟糕的提交就可能暴露
  • 浪费 Token:确定性的子任务(发送邮件、更新电子表格)本可以作为简单工作流运行,却消耗了 LLM 推理 token

功能

  • 代理模式:OpenClaw 编写带有传入 webhook 的 n8n 工作流,然后调用这些 webhook 处理所有未来的 API 交互
  • 凭据隔离:API 密钥存储在 n8n 的凭据存储中——智能体只知道 webhook URL
  • 可视化调试:每个工作流都可在 n8n 的拖拽式 UI 中检查
  • 可锁定工作流:工作流构建并测试后,你可以锁定它,使智能体无法修改它与 API 的交互方式
  • 安全防护步骤:在任何外部调用执行之前,你可以在 n8n 中添加验证、速率限制和审批关卡

工作原理

  1. 智能体设计工作流:告诉 OpenClaw 你需要什么(例如"创建一个当新的 GitHub Issue 标记为 urgent 时发送 Slack 消息的工作流")
  2. 智能体在 n8n 中构建:OpenClaw 通过 n8n 的 API 创建工作流,包括一个传入的 webhook 触发器
  3. 你添加凭据:将相关 API 密钥添加到 n8n 的凭据存储中——智能体从不会接触到它们
  4. 智能体测试并调用:OpenClaw 调用 webhook,n8n 执行 API 交互并返回结果给智能体
  5. 可选锁定:一旦工作流稳定,锁定它,使智能体无法修改其逻辑

所需技能

  • 运行中的 n8n 实例(Docker 或 n8n 云)
  • OpenClaw 的 n8n 技能(或通过 n8n REST API 的基本 HTTP 访问)
  • 你要集成的服务的 API 凭据

设置方法

  1. 搭建 n8n(Docker Compose 是最简单的方式)。

  2. 提示 OpenClaw:

我希望使用 n8n 处理所有外部 API 交互。构建这个工作流:
当我在 Telegram 中说"发送邮件给 [收件人] 关于 [主题]",创建一个带有传入 webhook 的 n8n 工作流。

使用以下 webhook URL 格式:https://your-n8n-instance/webhook/[workflow-name]
完成后告诉我 webhook URL,这样我就可以通过你调用它了。
  1. 对于每次新的集成,使用相同模式:
创建一个新的 n8n 工作流,当 webhook 触发时:
1. 从 webhook 负载中获取数据
2. 通过 Gmail API 发送邮件
3. 返回成功/失败响应
将 API 凭据保存在 n8n 中,不要暴露给我。
  1. 锁定生产工作流:
锁定 [workflow-id] 工作流,使其无法被修改。
创建一个测试副本,我可以在锁定版本旁边使用。

何时使用 vs 何时不使用

场景方法
发送邮件✅ n8n webhook
更新电子表格✅ n8n webhook
读取数据库✅ n8n webhook
复杂数据分析❌ 让 LLM 处理——n8n 不擅长这个
创造性写作/头脑风暴❌ 为 LLM 保留
文件系统操作❌ 让 OpenClaw 直接处理——它更快

小贴士

  • 从一个小型、高风险的工作流开始(如发送带公司凭据的生产邮件)。验证模式,然后扩展。
  • n8n 工作流中的错误处理是你的朋友——添加重试逻辑,使工作流在被速率限制时优雅重试。
  • 保持 webhook 无状态——n8n 工作流应通过返回成功或失败响应来响应每个请求。OpenClaw 负责状态。
  • 你可以使用 n8n 的"响应"节点向 OpenClaw 返回结构化数据。JSON 效果最好。
  • 通过测试 webhook 端点独立调试问题——在涉及 OpeClaw 之前,先在 curl 中测试。

灵感来源

此模式由 Simon Høiberg 描述,他概述了这种方法优于让 OpenClaw 直接处理 API 交互的三个原因:通过 n8n 的可视化 UI 实现可观测性,通过凭据隔离实现安全性,以及通过将确定性子任务作为工作流而非 LLM 调用来运行提升性能。openclaw-n8n-stack 仓库提供了一个可立即运行的 Docker Compose 设置,实现了此模式。

相关链接