很多人在 n8n 画布里拖了一个 AI Agent 节点,接上 LLM 的 API Key 就以为搭好了 agent,结果一跑全是坑:模型下一轮就忘了上一轮说什么(Memory 没接),工具死活调不动(HTTP Request 参数格式没对),System Prompt 写得太宽导致 agent 上下文漂移、把"总结 RSS"跑成"写小说"。n8n 的 AI Agent 节点不是"接上 API 就能用",它是一个需要你理解 Language Model、Memory、Tools、System Prompt 四件套如何协同的工程组件。
这篇 SOP 把在 n8n 画布里搭一个能自主调用工具的 AI agent 工作流拆成五步:Docker 自托管部署、AI Agent 节点四件套解剖、分步搭建、调试避坑、FAQ。节点参数以 n8n 官方文档为准,本文给的是配置逻辑和简化结构,不伪造完整工作流 JSON。
一句话定位:n8n 的 AI Agent 节点是把 LLM 从"会聊天的 API"变成"会干活的工作流组件"的壳子,真正决定 agent 好不好用的是你接的 Memory、Tools 和 System Prompt,不是模型本身。
一、n8n 是什么:开源工作流自动化 + 原生 AI 节点
n8n 是一个开源的工作流自动化平台(n8n-io/n8n,TypeScript,fair-code 许可,2019 年开源,GitHub 近 20 万 star),内置 400+ 集成节点,近两年加了原生的 AI Agent 节点族。和 Zapier、Make 这类纯 SaaS 不同,n8n 可以 Docker 自托管,数据不出门,免费;云端版(n8n.io)有免费额度。
它的 AI 能力不是外挂,而是把 LangChain 风格的 agent 架构做成了画布节点:你拖一个 AI Agent 节点进来,往上面挂 Language Model(大脑)、Memory(记忆)、Tools(工具),再写一段 System Prompt(行为定义),就是一个能自主决策、调用工具、保留上下文的 agent。触发它可以是定时、Webhook、内置聊天界面。
为什么不用纯代码(LangChain/LlamaIndex)搭 agent?因为 n8n 把"接 API、配凭证、串节点、看日志"可视化了,调试时每个节点的输入输出一眼可见,改连接线比改代码快。代价是灵活性低于代码,但对 80% 的"接几个工具 + LLM + 触发器"场景,n8n 够用且快得多。
二、部署 n8n:Docker 自托管一条命令
最快的自托管方式是 Docker:
# 拉取并启动 n8n,端口 5678,数据持久化到 ~/.n8n
docker run -d --name n8n -p 5678:5678 -v ~/.n8n:/home/node/.n8n n8nio/n8n启动后浏览器打开 http://localhost:5678,走完初始账号注册就能进画布。-v ~/.n8n:/home/node/.n8n 这步不能省,否则容器重启后工作流和凭证全丢。
不想装 Docker 就用云端:n8n.io 注册即用,免费额度覆盖个人测试。自托管的好处是数据完全在自己机器上、接内网 API 没有跨网问题、不占云端执行额度;云端的好处是零运维、外网 Webhook 直接可用。本文后续以自托管为例,操作一致。
生产部署(公网暴露)务必加反向代理 + HTTPS + 强密码,并启用 n8n 内置的凭证加密(环境变量
N8N_ENCRYPTION_KEY),别把裸 5678 端口直接挂公网。
三、AI Agent 节点解剖:四件套各自干什么
n8n 画布里拖一个 AI Agent 节点,你会看到它需要四个输入,缺一不可:
| 组件 | 作用 | 常用选项 |
|---|---|---|
| Language Model | agent 的大脑,负责推理和决定调哪个工具 | OpenAI、Anthropic,或任何 OpenAI-compatible API(DeepSeek、通义等) |
| Memory | 对话记忆,决定 agent 记多久 | Window Buffer Memory(留最近 N 条)、Postgres Chat Memory(持久化) |
| Tools | agent 可调用的工具,挂多个 | HTTP Request、Code、自定义工具函数 |
| System Prompt | 定义 agent 的角色、目标、工具使用规则 | 纯文本,写在节点配置里 |
四件套的逻辑:Language Model 提供推理能力,Tools 提供"动手"能力,Memory 提供"记住上下文"能力,System Prompt 提供"行为边界"。很多人卡住是因为只接了 Language Model,没接 Memory(agent 失忆)或没接 Tools(agent 只会说话不会干活)。
接国产模型走 OpenAI-compatible 路径:在 Language Model 子节点里选 OpenAI 兼容类型,Base URL 填对应服务的 OpenAI 兼容端点,API Key 用 n8n 凭证管理存,模型名按服务商文档填。DeepSeek、通义千问、智谱都有 OpenAI 兼容端点。
四、分步搭建第一个 AI agent 工作流
以"定时抓 RSS → AI 总结 → 推送 Telegram"为例,五步搭通。
步骤 1:选触发器
n8n 常用触发器四种:
| 触发器 | 何时用 |
|---|---|
| Schedule Trigger | 定时跑,如每天 8 点 |
| Webhook | 外部系统调用,如表单提交 |
| Chat Trigger | n8n 内置聊天界面,调试和对话型 agent |
| Manual Trigger | 手动点一下跑,调试用 |
本例选 Schedule Trigger,设每天 8:00。拖进来不用配置复杂参数,选 cron 表达式或自然语言时间即可。
步骤 2:配 AI Agent 节点
拖一个 AI Agent 节点,把 Schedule Trigger 的输出连到它。然后挂四件套:
- Language Model:选 OpenAI-compatible,Base URL 填你的模型服务端点,API Key 用凭证引用(别硬编码),模型按服务商文档填。
- Memory:选 Window Buffer Memory,session key 设一个固定值(定时任务单会话,够用)。
- Tools:先留空,下一步加。
- System Prompt:写清楚 agent 要干什么、能干什么。示例:
你是一个资讯总结助手。每次会收到若干条 RSS 条目(标题+链接+正文摘要)。
请按以下规则工作:
1. 过滤掉与 AI 工具无关的条目;
2. 对剩下的每条生成一句话中文摘要,保留原文链接;
3. 输出 Markdown 列表,不要编造链接。
不确定就不写,宁可少不可错。步骤 3:加工具
AI agent 的价值在于能调用工具。本例至少加两个:
- HTTP Request 工具:让 agent 能主动抓取某个 URL 的内容(比如遇到摘要不够时自己去取正文)。在 HTTP Request 节点里配 method、URL、headers,作为工具挂到 AI Agent 上。
- Code 工具:写一段 JS 做数据清洗或格式转换,当工具挂上去。
工具挂上后,agent 会在推理时自己决定要不要调、调哪个。这就是 agent 和"线性流水线"的区别:线性流水线是你定死步骤,agent 是模型根据 System Prompt 和当前输入自己选工具。
从最小可行产品开始:先 1 个触发器 + AI Agent(含 LLM+Memory)+ 1 个输出节点,3 个节点跑通"收到数据 → AI 处理 → 输出"闭环,再加工具。一上来就堆十几个节点,调试会崩。
步骤 4:输出
AI Agent 节点处理完,输出连到下游节点:Telegram(推送到频道)、Email、Google Sheets(存档)。本例接 Telegram 节点,用 @BotFather 申请的 Bot Token 做凭证,把 agent 输出的 Markdown 发到频道。
步骤 5:测试与发布
点画布上的"Execute Workflow"手动跑一次,看每个节点的输出。n8n 会高亮每个节点的执行结果,数据格式不对会直接报红。调通后切换到 Active 状态,定时任务就生效了。
测试时用 Manual Trigger 而非 Schedule Trigger,方便随时点跑;调通再换回 Schedule Trigger 并激活。
五、五个避坑
坑一:Memory 忘加,agent 每轮失忆。 AI Agent 节点不接 Memory 子节点时,模型每轮都是无状态调用,上一轮说过什么全忘。对话型 agent 必须接 Memory;即使是定时任务单次执行,若 agent 内部要多轮调用工具,Memory 也影响一致性。
坑二:API Key 硬编码在节点里。 直接把 Key 粘到节点配置字段里,导出工作流 JSON 时会泄露。务必用 n8n 的凭证管理(Credentials)存 Key,节点里引用凭证名,导出 JSON 时凭证不会带出来。
坑三:过度设计,一上来堆节点。 新手最容易把工作流画成蜘蛛网,十几个节点交叉连线,一个报错全链路崩。从 3 节点 MVP 起步:触发器 → AI Agent → 输出。跑通再加工具、加分支、加错误处理。
坑四:System Prompt 太宽,上下文漂移。 "你是一个有用的助手"这种 prompt,agent 跑几轮就漂移,把"总结 RSS"跑成"评论 RSS"。拆角色、定规则:明确说"你能用哪些工具、什么情况下用什么、输出什么格式"。复杂场景拆成多个 AI Agent 节点各管一摊,比一个 agent 包打天下稳。
坑五:节点连接数据格式不匹配。 上游节点输出数组,下游节点期待对象,n8n 会报错或静默跑空。调试时点开每个节点看它的输出 JSON 结构,用 Code 节点或 Set 节点做格式转换。n8n 的 $json、$items() 表达式是处理数据格式的关键,官方文档有完整说明。
FAQ
Q1:n8n 自托管要什么配置? A:个人测试 2 核 4G 的 VPS 或本地 Docker 够用。工作流多了、AI 调用频繁了,升到 4 核 8G。n8n 本身不吃资源,吃资源的是你接的模型 API 调用频率和数据量。
Q2:能接 DeepSeek 等国产模型吗? A:能。n8n 的 Language Model 节点支持 OpenAI-compatible API,DeepSeek、通义千问、智谱都提供 OpenAI 兼容端点。在节点里选 OpenAI 兼容类型,填 Base URL 和 API Key 即可。具体端点和模型名以各服务商文档为准。
Q3:n8n 和 Coze 怎么选? A:Coze(字节)是托管 SaaS,上手更快、内置国内生态,但数据在云端、灵活性低、复杂逻辑不好搭。n8n 可自托管、数据自主、节点自由度高、能接任意 API,但学习曲线更陡。要快速搭个国内场景的 bot 选 Coze;要自主可控、接私有系统、做复杂工作流选 n8n。
Q4:要写代码吗? A:基础工作流不用,拖节点配凭证就行。但要让 agent 干非标准的事(自定义数据清洗、调内部 API、特殊格式转换),Code 节点要写 JS。复杂 agent 通常躲不开少量代码,但比纯 LangChain 写代码量少一个数量级。
Q5:免费额度够用吗? A:自托管完全免费,不卡额度,只卡你机器性能。云端 n8n.io 免费额度覆盖个人测试和小规模定时任务,工作流激活数和执行次数有限制,具体以官网定价页为准。生产用建议自托管或付费档。
看法
n8n 搭 AI agent 的真相是:难点不在 n8n 这个工具,而在你有没有想清楚 agent 的四件套怎么配。Language Model 决定智商上限,Memory 决定记忆深度,Tools 决定动手范围,System Prompt 决定行为边界--四件套里任何一件拉胯,agent 都跑歪。n8n 的价值是把这四件套的可视化配置和调试做到了最低门槛,让你不用写 LangChain 代码也能搭出能用的 agent。
但别神化它。n8n 搭出来的是"工具增强型 agent",不是 AGI。它能稳定地按规则调几个工具、串几步流程,已经超过 90% 的手动搬运。想让它自主决策复杂任务,还得靠你把 System Prompt 和工具边界设计清楚。工具是壳,设计是魂。
参考来源
- n8n 官网与文档:https://docs.n8n.io
- n8n GitHub(n8n-io/n8n):https://github.com/n8n-io/n8n
- 用 n8n 和 PPIO 构建 AI Agent(掘金):https://juejin.cn/post/7502246437372608553
- n8n 快速上手构建 AI Agent(CSDN):https://blog.csdn.net/weixin_45565886/article/details/147932682
- How to Build an AI Agent With n8n in 2026(robizsolutions):https://robizsolutions.com/how-to-build-an-ai-agent-with-n8n-in-2026-a-step-by-step-guide
- 本文素材由 gongzuoliu 工作流产出初稿,经人工重构角度(聚焦 n8n 画布内搭建而非 AI 生成 JSON)、删除夸大表述、核实节点与命令后定稿;n8n 节点参数以官方文档为准