# n8n AI 智能体：用 AI Agent 节点、记忆和工具搭一个

> n8n 的 AI 智能体，就是接上聊天模型、并且至少带一个工具的 AI Agent 节点。它读到一条消息，自己决定调用哪个工具，然后回答。再接上 Simple Memory 子节点，它就能记住对话。本课用 Chat Trigger、OpenAI 聊天模型、记忆、Calculator 和 Wikipedia 搭出一个。

Mindket 编辑部 · 发布于 2026-11-04 · 更新于 2026-11-05 · https://mindket.com/cn/learn/n8n/n8n-ai-agent

## 要点

- 把聊天模型、记忆和工具接进同一个 AI Agent 节点。
- 和智能体聊天，看它怎样挑选工具。
- 看懂为什么一次执行里，智能体节点会运行好几遍。
- 分清 AI Agent 节点、Basic LLM Chain，以及 n8n 单独的 Agents 功能。

## 开始之前

你需要一个 n8n 实例，以及某个聊天模型服务商的 API 密钥。本课用 OpenAI。[Tools Agent 页面](https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/tools-agent)列出的支持模型有 OpenAI、Groq、Mistral Cloud、Anthropic 和 Microsoft Foundry，所以可以换别家。在 n8n Cloud 上，OpenAI 的凭据字段还有 **Use Gateway credits** 选项，不用自己的 OpenAI 账号也能运行这个节点。

你发的每条消息都是一次模型调用，模型用 token 计量工作量，[token 是什么](https://mindket.com/cn/blog/what-are-tokens-in-ai)那篇有详细解释。

## 搭一个会查资料、会算数的智能体

下面这个智能体有用来查事实的 Wikipedia 工具、用来算数的 Calculator，还有记住对话的记忆。第 6 步要把这段文字粘贴到它的 **System Message** 选项里。这段话是我们自己写的示例，可以随意修改：

````text
You are a helpful assistant. Use the Wikipedia tool for facts about people, places and topics, and the Calculator tool for arithmetic. If a tool returns nothing useful, say so.
````

1. 新建一个工作流，添加 **Chat Trigger** 节点。搭建期间，按 n8n 的建议让 **Make Chat Publicly Available** 保持关闭。这样聊天只能通过手动聊天界面使用。
2. 在它后面添加 **AI Agent** 节点。智能体默认从上一个节点读取用户的消息，Chat Trigger 给它的正是这个。[Tools Agent 页面](https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/tools-agent)把它期望的字段叫作 `chatInput`。
3. 点智能体下面的 **+ Chat Model**，选 **OpenAI Chat Model**。用你的 API 密钥创建凭据，再选一个 **Model**。n8n 会[加载](https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatopenai)你的 OpenAI 账号能用的模型。
4. 接上一个记忆子节点，选 **Simple Memory**。它的 **Context Window Length** 决定智能体参考多少次之前的互动，[Simple Memory 页面](https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.memorybufferwindow)里有说明。
5. 接上两个工具子节点：**Calculator** 和 **Wikipedia**。n8n 要求智能体至少有一个工具，文档里这两个工具都没有列出参数。
6. 打开智能体的选项，添加 **System Message**，把上面代码里的文字粘贴进去。
7. 打开手动聊天界面，发送 "Please show me a Wikipedia article about cats"，再发送 "What was my last question?"。这是 n8n 自己那个智能体与链的示例里用的两条测试消息。第一条用到 Wikipedia 工具，第二条靠的是记忆。
8. 打开这次执行，看智能体节点。一条消息可能让它运行不止一遍，下一节解释原因。

## 智能体的每个部分各做什么

AI Agent 节点是根节点，其余的都作为子节点挂在它下面。所以画布上，聊天模型、记忆和工具画在智能体下方，不在主线上。[什么是 n8n](https://mindket.com/cn/blog/what-is-n8n)那篇在一个完整的工作流里展示过同样的结构。

Agent 节点只有一个。从 n8n 1.82.0 起，它一律按 Tools Agent 工作，agent type 这个设置已被[弃用](https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent)。教程里要你选 agent type 的，是这次改动之前写的。

| 子节点 | 它给智能体提供什么 | 是否必需 |
| --- | --- | --- |
| 聊天模型，例如 OpenAI Chat Model | 读取消息、决定下一步做什么的语言模型 | 必需 |
| 工具，例如 Calculator 或 Wikipedia | 智能体可以调用的附加资源，用来获取信息或执行操作 | 至少一个 |
| 记忆，例如 Simple Memory | 聊天记录，让后续的提问有上下文 | 可选 |
| 输出解析器 | 打开 Require Specific Output Format 后使用的固定输出格式 | 可选 |

## 为什么一条消息会让智能体运行三遍

n8n 在[智能体是做什么的](https://docs.n8n.io/build/integrate-ai/understand-ai-components/what-agents-do)一页里说，运行带智能体的工作流时，智能体会运行多次。它举的例子是三遍，见下图。在执行记录里，一条消息对应智能体节点的好几次运行，是正常的。

**Max Iterations** 选项限制模型为生成一个答案最多运行几次，默认是 10。记忆也有自己的限制。Tools Agent 页面说，记忆不会在不同会话之间保留。[Simple Memory 页面](https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.memorybufferwindow)补充说，它不能用在队列模式实例上处于启用状态的生产工作流里，因为 n8n 无法保证每次调用都落到同一个 worker 上。

**n8n 示例里的三遍运行**

1. 第一遍。智能体做初始准备。
2. 第二遍。智能体再次运行，去调用一个工具。
3. 第三遍。智能体评估工具返回的结果，然后回复用户。

## 智能体、链，还是别的

链按预先定好的顺序依次调用，智能体则让语言模型来决定下一步做什么。n8n 的[智能体与链对比页面](https://docs.n8n.io/build/integrate-ai/understand-ai-components/agents-vs-chains)说，链没有持久记忆，所以无法引用之前的上下文，AI Agent 节点则可以接上记忆。

> **n8n 里有两样东西都叫智能体**
>
> n8n 还有一个单独的 Agents 功能，文档里仍标注为 Preview（预览）。它有自己的构建器，实例所有者或管理员可以在 Settings 的 Agents 里把它关掉。这个设置不影响本课用的 AI Agent 节点。工作流可以用 Message an Agent 节点去调用其中一个智能体。

**AI Agent 节点还是 Basic LLM Chain**

| | AI Agent 节点 | Basic LLM Chain |
| --- | --- | --- |
| 使用记忆 | ✓ 是 | ✗ 否 |
| 使用工具 | ✓ 是 | ✗ 否 |
| 自己选择调用哪个工具 | ✓ 是 | ✗ 否 |
| 按固定顺序依次调用 | ✗ 否 | ✓ 是 |

来源：[n8n 文档：智能体与链](https://docs.n8n.io/build/integrate-ai/understand-ai-components/agents-vs-chains) (2026-11-04 查阅)；[n8n 文档：智能体是做什么的](https://docs.n8n.io/build/integrate-ai/understand-ai-components/what-agents-do) (2026-11-04 查阅)

## n8n 团队怎么说智能体的记忆和新的 Agents

2026 年 9 月 1 日，n8n 团队[在 X 上说](https://x.com/n8n_io/status/2094757236811636762)，LLM 默认是无状态的，每次调用都从零开始。第 4 步的 Simple Memory 节点就是为这个准备的。没有它，智能体答不出“What was my last question?”。

n8n 博客上那篇[智能体记忆指南](https://blog.n8n.io/ai-agent-memory/)由 Yulia Dmitrievna 和 n8n 团队撰写。它说，带会话 ID 的 Simple Memory 在单实例部署上开箱即用。到了队列模式，它建议换成 Postgres 或 Redis Chat Memory，让各个 worker 之间的会话彼此隔开。把这个智能体搬到队列模式的实例之前，先换掉记忆子节点。

更早一点，2026 年 8 月 24 日，团队[在 X 上说](https://x.com/n8n_io/status/2091838324163940766)，智能体不必再活在工作流里面。帖子说，现在每个智能体都是独立的对象，通过原生聊天在整个实例或组织里共用。这就是上面提示框里那个单独的 Agents 功能，不是你搭的 AI Agent 节点。n8n 文档建议，工作太开放、固定工作流装不下时，再用它。

> LLM 默认是无状态的。每次调用都从零开始，这对跑多步工作流的智能体是个实实在在的问题。
>
> n8n.io, n8n 的官方账号，引文为译文, [X](https://x.com/n8n_io/status/2094757236811636762) (2026-11-05 查阅)

[![n8n.io（@n8n_io）2026 年 9 月 1 日在 X 上的帖子：LLM 默认是无状态的，每次调用都从零开始，这对跑多步工作流的智能体是个实实在在的问题。新指南讲智能体记忆的类型、存储、检索，以及怎样在 n8n 里实现。](https://mindket.com/blog/shots/x-n8n-io-llms-stateless.webp?v=6a80fb1ffe4e)](https://x.com/n8n_io/status/2094757236811636762)

n8n.io 在 X 上，2026 年 9 月 1 日

[![n8n.io（@n8n_io）2026 年 8 月 24 日在 X 上讲 n8n 新智能体的帖子：它不是用来搭工作流的，而是直接当你的智能体。智能体过去活在工作流里面，现在成了独立的对象：一个智能体，一套能力，通过原生聊天在你的实例或组织里共用。](https://mindket.com/blog/shots/x-n8n-io-agent-harness.webp?v=124784c38ad1)](https://x.com/n8n_io/status/2091838324163940766)

n8n.io 在 X 上，2026 年 8 月 24 日

> X 官方嵌入卡片的截图，拍摄于 2026 年 11 月 5 日，时间为 UTC。点击截图可到 X 上打开原帖。

## 常见错误

- 智能体没有接聊天模型，或者没有接工具。没接模型时，节点会报 "A Chat Model sub-node must be connected"，点 **+ Chat Model** 选一个就行，[常见问题页面](https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/common-issues)是这么说的。工具子节点同样不能少。
- 从一个不给智能体提供提示词的触发器开始。报错 "No prompt specified" 表示智能体期望从上一个节点拿到提示词。把 **Prompt** 设为 **Define below**，用固定文字或表达式来写。
- 提示词是 null。报错 "400 Invalid value for 'content': expected a string, got null" 表示提示词里的某个表达式解析成了空，检查它读取的每个字段。
- 照搬旧模板时，Simple Memory 节点报错。把它删掉再重新添加。模板里可能是旧版本，它以前叫 Window Buffer Memory。
- 在队列模式的实例上，生产环境里依赖 Simple Memory。n8n 还列出了 Redis Chat Memory 和 Postgres Chat Memory 等其他记忆选项。
- 把没有认证的聊天公开出去。**Make Chat Publicly Available** 打开、认证又设为 None 时，任何人都能使用这个聊天。

## 自己试一试

- 在智能体的选项里打开 **Return Intermediate Steps**，看看多出来的输出。
- 把 **Context Window Length** 设成一个很小的数，聊过这个数之后，再问你的第一个问题。
- 把 OpenAI Chat Model 换成 Tools Agent 支持的另一个模型，其余保持不变。
- 添加一个 **HTTP Request Tool**，让智能体能调用 API，或者添加 **Call n8n Workflow Tool**，让它能运行你的另一个工作流。

## 接下来学什么

智能体在哪里运行 n8n，就在哪里运行，[第 4 课](https://mindket.com/cn/learn/n8n/self-host-n8n-docker)用 Docker 把 n8n 装到你自己的机器上。想让智能体对接外部工具，可以用 MCP Client Tool 节点连接 MCP 服务器，[什么是 MCP](https://mindket.com/cn/blog/what-is-mcp)讲了这个协议。想先看一个完整工作流里的智能体，再自己动手，[Mindket 的 n8n 工作流](https://mindket.com/cn/automations/n8n)页面会把每个节点，包括子节点，都画出来。

## 自测一下

1. 哪个子节点能给智能体提供聊天记录，让后续的提问有上下文？

   A. Calculator
   B. OpenAI Chat Model
   C. Simple Memory
   D. 输出解析器

   答案：C。 记忆子节点负责保留聊天记录，没有它，智能体就答不出 "What was my last question?"。

2. 一条聊天消息让智能体节点在执行记录里运行了三遍。为什么？

   A. 工作流坏了，需要修
   B. 一条消息会让智能体运行多次：做准备、调用工具、回复
   C. 消息里每个词都会启动一次运行
   D. 记忆把消息复制了两份

   答案：B。 n8n 说智能体会运行多次，它的例子是三遍：初始准备、调用工具，然后评估结果并回复。

3. 智能体节点报错 "A Chat Model sub-node must be connected"。该怎么做？

   A. 点智能体下面的 + Chat Model，选一个模型
   B. 打开 Return Intermediate Steps
   C. 把 Max Iterations 设成 10
   D. 加一个 Wikipedia 工具

   答案：A。 这个报错表示智能体没有接聊天模型，常见问题页面说，点 + Chat Model 选一个就行。

4. 什么时候用 AI Agent 节点，比用 Basic LLM Chain 更合适？

   A. 任务只是单个固定的步骤时
   B. 想要一个不带聊天模型的链时
   C. 调用顺序必须永远不变时
   D. 任务需要工具或对话历史时

   答案：D。 链按预先定好的顺序调用，不支持记忆和工具，智能体则让模型自己决定下一步做什么。

## 常见问题

### 能不能用 Anthropic 的 Claude，而不是 OpenAI？

能，n8n 有 Anthropic Chat Model 节点。把 OpenAI 那个删掉，点智能体上的 **+ Chat Model**，改选 Anthropic 节点。记忆和工具保持连着。n8n 的 [AI 概览页](https://docs.n8n.io/build/integrate-ai)还提到了 Google 这家服务商。

### n8n 的 AI 智能体会记住之前的消息吗？

只有接了记忆子节点才会。Simple Memory 为当前会话保留你设定数量的之前互动，[记忆页面](https://docs.n8n.io/build/integrate-ai/understand-ai-components/how-memory-works)还说，AI 链完全不能使用记忆。

### 该用 AI Agent 节点，还是 Basic LLM Chain？

任务需要工具或对话历史时，用智能体。链支持和接入的模型聊天，但不支持记忆和工具，适合单个固定的步骤。

### 智能体能返回结构化数据，而不只是文字吗？

能。打开 **Require Specific Output Format**，再接上 Auto-fixing Output Parser、Item List Output Parser 或 Structured Output Parser。Tools Agent 会把解析器作为格式化工具交给模型。

### n8n 的智能体能用 MCP 服务器吗？

能。AI Agent 页面把 MCP 服务器列为给智能体提供工具的一种方式，注册表里的服务器一键就能接上。讲什么是 n8n 的那篇里，更详细地说了 MCP Client Tool 和 MCP Server Trigger。

### 能让智能体在运行某个工具之前先问一下真人吗？

能。n8n 允许你要求在指定工具运行之前先获得批准，请求会通过 Chat、Slack 或 Telegram 这类渠道发出。它的文档里有工具的人工介入（human-in-the-loop）示例。

### 每条聊天消息都算一次执行吗？

算。[Chat Trigger 页面](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-langchain.chattrigger)说，每条消息都会运行一次你的工作流，所以一段十条消息的对话，会用掉十次 n8n 执行。

## 资料来源

- [n8n Docs: AI Agent node](https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent) (2026-11-04 查阅)
- [n8n Docs: Tools Agent](https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/tools-agent) (2026-11-04 查阅)
- [n8n Docs: AI Agent common issues](https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/common-issues) (2026-11-04 查阅)
- [n8n Docs: What agents do](https://docs.n8n.io/build/integrate-ai/understand-ai-components/what-agents-do) (2026-11-04 查阅)
- [n8n Docs: Agents vs chains](https://docs.n8n.io/build/integrate-ai/understand-ai-components/agents-vs-chains) (2026-11-04 查阅)
- [n8n Docs: How memory works](https://docs.n8n.io/build/integrate-ai/understand-ai-components/how-memory-works) (2026-11-04 查阅)
- [n8n Docs: How tools work](https://docs.n8n.io/build/integrate-ai/understand-ai-components/how-tools-work) (2026-11-04 查阅)
- [n8n Docs: Chat Trigger node](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-langchain.chattrigger) (2026-11-04 查阅)
- [n8n Docs: Simple Memory node](https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.memorybufferwindow) (2026-11-04 查阅)
- [n8n Docs: OpenAI Chat Model node](https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatopenai) (2026-11-04 查阅)
- [n8n Docs: Calculator node](https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolcalculator) (2026-11-04 查阅)
- [n8n Docs: Wikipedia node](https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolwikipedia) (2026-11-04 查阅)
- [n8n Docs: Build and manage agents](https://docs.n8n.io/build/build-and-manage-agents) (2026-11-05 查阅)
- [n8n Docs: Integrate AI](https://docs.n8n.io/build/integrate-ai) (2026-11-04 查阅)
- [n8n Blog: AI agent memory, types, storage and how to implement it](https://blog.n8n.io/ai-agent-memory/) (2026-11-05 查阅)
- [n8n.io on X: LLMs are stateless by default, 1 September 2026](https://x.com/n8n_io/status/2094757236811636762) (2026-11-05 查阅)
- [n8n.io on X: n8n is now an agent harness, 24 August 2026](https://x.com/n8n_io/status/2091838324163940766) (2026-11-05 查阅)

[浏览 n8n 工作流](https://mindket.com/cn/automations/n8n)
