【n8n教程】:AI Agent节点,构建你的智能自动化机器人
什么是 AI Agent?
AI Agent(人工智能代理) 是一种能够理解任务、做出决策并自动执行操作的智能系统。与传统的自动化工作流不同,AI Agent 拥有推理能力,可以根据不同的场景灵活地选择合适的工具来完成任务。
简单来说,如果说传统的自动化是按照既定的规则走流程,那么 AI Agent 就像一个聪明的员工,能够理解你的需求,主动判断需要使用哪些工具,然后完成工作。
AI Agent 的核心组成部分
| 组件 | 功能 |
|---|---|
| LLM(大语言模型) | Agent 的"大脑",提供理解和决策能力 |
| Tools(工具) | Agent 可以使用的外部服务和 API |
| Memory(记忆) | 保存对话历史,维护上下文理解 |
| Prompt/System Message | 指导 Agent 行为和决策的指令 |
n8n 中 AI Agent 的类型
n8n 提供了多种 Agent 类型,每种都有不同的特点和应用场景:
1. Tools Agent(工具代理)- 推荐新手使用
特点:
- 最灵活且功能最强大的 Agent 类型
- 能够理解工具的能力和参数
- 支持最多的大语言模型(OpenAI、Groq、Mistral、Anthropic 等)
- 具有改进的输出解析能力
适用场景:
- 需要与多个第三方服务集成
- 处理复杂的自然语言理解任务
- 需要与 100+ 种预建工具集成
支持的工具范围: 从 Google Sheets、Slack、GitHub,到 Airtable、Salesforce、MySQL 等,Tools Agent 支持 n8n 生态中的所有集成工具。
2. OpenAI Functions Agent(OpenAI 函数代理)
特点:
- 专门针对 OpenAI 的函数调用能力优化
- 必须使用 OpenAI Chat Model
- 更精准的函数调用
适用场景:
- 仅使用 OpenAI 模型
- 需要最高精准度的函数调用
3. Plan and Execute Agent(计划与执行代理)
特点:
- 首先制定高层计划,然后逐步执行
- 适合需要结构化方法的任务
- 更有条理的决策过程
适用场景:
- 复杂的多步任务
- 需要明确的执行计划
- 事项分解(如项目规划、流程设计)
已弃用的 Agent 类型
以下 Agent 类型已在 2025 年 2 月被 n8n 移除:
- Conversational Agent(对话代理)
- ReAct Agent(推理与行动代理)
- SQL Agent(SQL 代理)
快速开始:构建你的第一个 AI Agent
前置条件
在开始之前,你需要准备:
第一步:创建基础工作流结构
工作流需要的基本节点:
-
Chat Trigger(聊天触发器) - 工作流的入口
- 提供用户交互界面
- 捕获用户输入
-
AI Agent(AI 代理) - 工作流的核心
- 处理用户输入
- 决定使用哪些工具
- 返回结果
-
Chat Model(聊天模型) - Agent 的"大脑"
- 提供 LLM 支持
- 必须连接到 AI Agent
-
Memory(记忆) - 对话历史管理
- 保留历史信息
- 维护上下文
第二步:配置 AI Agent 节点
基本参数配置
Prompt 参数:
- "Take from previous node automatically":自动从 Chat Trigger 获取输入
- "Define below":手动定义 prompt,可以使用表达式
Agent Options(代理选项):
| 参数 | 说明 | 默认值 |
|---|---|---|
| System Message | Agent 的系统指令,指导其行为 | 可选 |
| Max Iterations | Agent 最多尝试次数 | 10 |
| Return Intermediate Steps | 是否返回中间步骤 | Off |
| Enable Streaming | 实时流式返回结果 | On |
最佳实践:编写有效的 System Message
你是一个有帮助的 AI 助手。你的职责是:
1. 仔细理解用户的问题
2. 判断是否需要使用工具
3. 使用适当的工具获取信息
4. 以简洁、友好的方式回答
请注意:
- 如果用户问题不清楚,询问澄清
- 总是验证数据的准确性
- 保持专业和礼貌的态度
第三步:连接 Chat Model
- 点击 AI Agent 节点下方的 "+ Chat Model" 按钮
- 选择你的 LLM 提供商(如 OpenAI)
- 输入 API 密钥或选择已保存的凭证
- 配置参数:
- Model:选择模型版本(推荐 gpt-4o)
- Temperature:设置为 0.7(平衡创意和一致性)
- Frequency Penalty:设置为 0.2(避免重复)
第四步:添加记忆功能
- 搜索并添加 Simple Memory 节点
- 配置记忆参数:
- Session Key:用唯一标识区分不同用户
示例表达式(用于 Telegram 机器人):
chat_with_{{ $('Chat Trigger').first().json.message.chat.id }}
这样每个用户的对话历史都会被单独保存。
第五步:添加 Tools(工具)
Tools 是 Agent 执行实际操作的方式。你可以添加:
API 调用工具:
- HTTP Request - 调用任何 REST API
- Code - 执行自定义代码
集成工具:
- Gmail - 发送和读取邮件
- Google Sheets - 读写电子表格
- Slack - 发送消息、管理频道
- 等 100+ 其他工具
如何添加工具:
- 在 AI Agent 节点下方,找到 "+ Tool" 按钮
- 选择你想使用的工具
- 配置工具的参数和凭证
- 为工具编写清晰的描述(Agent 会根据这个判断是否使用)
常见错误排查
错误 1: "A Chat Model sub-node must be connected"
原因: AI Agent 没有连接到任何聊天模型。
解决方案:
- 打开 AI Agent 节点
- 点击底部的 "+ Chat Model" 按钮
- 选择并配置一个 LLM 模型
错误 2: "No prompt specified"
原因: Prompt 参数配置不当。
解决方案:
- 检查 Prompt 下拉菜单
- 如果选择了 "Connected Chat Trigger Node",但没有连接触发器,改为 "Define below"
- 确保输入的表达式返回有效值(不是 null)
错误 3: "Internal error: 400 Invalid value for 'content'"
原因: Prompt 输入包含 null 值。
解决方案:
- 检查所有表达式是否引用了有效字段
- 确保来自上一节点的
chatInput不包含 null 值 - 在测试前验证数据
错误 4: "Error in sub-node Simple Memory"
原因: 使用了旧版本的 Simple Memory 节点。
解决方案:
- 删除当前的 Simple Memory 节点
- 重新添加一个新的 Simple Memory 节点
- 重新配置参数
实战案例:构建一个天气查询 AI 助手
这个案例演示如何构建一个能够:
- 与用户对话
- 查询天气信息
- 记住对话历史
工作流代码
{
"name": "Simple Weather AI Agent",
"nodes": [
{
"parameters": {},
"name": "Chat Trigger",
"type": "n8n-nodes-base.chatTrigger",
"typeVersion": 1,
"position": [250, 300]
},
{
"parameters": {
"agentType": "toolsAgent",
"prompt": "Take from previous node automatically",
"systemMessage": "你是一个有帮助的天气助手。用户询问任何城市的天气时,请帮助他们查询。保持回答简洁友好。始终使用用户提到的城市名称。",
"maxIterations": 10
},
"name": "AI Agent",
"type": "n8n-nodes-langchain.agent",
"typeVersion": 1,
"position": [500, 300]
},
{
"parameters": {
"model": "gpt-4o",
"temperature": 0.7,
"frequencyPenalty": 0.2
},
"name": "OpenAI Chat Model",
"type": "n8n-nodes-langchain.lmChatOpenAi",
"typeVersion": 1,
"position": [750, 300]
},
{
"parameters": {
"description": "获取指定城市的实时天气信息,包括温度和天气状况。",
"url": "https://api.open-meteo.com/v1/forecast?latitude={{ $json.latitude }}&longitude={{ $json.longitude }}¤t=temperature_2m,weather_code,wind_speed_10m&timezone=auto",
"method": "GET"
},
"name": "Weather Tool",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 3,
"position": [500, 450]
},
{
"parameters": {
"sessionIdType": "fromInput",
"sessionIdValue": "user_session"
},
"name": "Memory",
"type": "n8n-nodes-langchain.simpleMemory",
"typeVersion": 1,
"position": [750, 150]
}
],
"connections": {
"Chat Trigger": {
"main": [[{"node": "AI Agent", "branch": 0, "key": "main", "type": "main"}]]
},
"AI Agent": {
"main": [[{"node": "Chat Trigger", "branch": 0, "key": "main", "type": "main"}]]
}
}
}
如何使用这个工作流
- 复制上面的 JSON 代码
- 导入到 n8n:
- 在 n8n 中创建新工作流
- 点击菜单 → "导入从 URL" 或 "导入从文件"
- 粘贴或上传 JSON 代码
- 配置凭证:
- 打开 OpenAI Chat Model 节点
- 输入你的 OpenAI API 密钥
- 激活工作流:
- 点击右上角的 "激活" 按钮
- 测试聊天:
- 点击 Chat Trigger 节点的 "打开聊天" 按钮
- 尝试询问:"巴黎现在的天气怎么样?"
工作流流程说明
用户输入 → Chat Trigger
↓
AI Agent(分析用户问题)
↓
如果需要天气信息 → 调用 Weather Tool
↓
获得天气数据 → Agent 处理和格式化
↓
返回给用户 → 显示在聊天界面
扩展这个工作流
添加更多功能的想法:
- 添加 Google Calendar 工具 - 查询日程安排
- 添加 Gmail 工具 - 发送天气提醒邮件
- 添加 Slack 工具 - 在 Slack 中发布天气更新
- 添加代码节点 - 自定义数据处理逻辑
AI Agent 的高级用法
使用 Streaming(流式传输)
启用 Streaming 可以让 AI Agent 实时返回结果,而不是等待完整回复:
工作流要求:
- 必须使用支持 Streaming 的触发器(如 Chat Trigger)
- 在 Tools Agent 中启用 "Enable Streaming" 选项
好处:
- 提供实时反馈
- 改善用户体验
- 减少等待时间
返回中间步骤
启用 "Return Intermediate Steps" 可以看到 Agent 的思考过程:
输出示例:
{
"final_answer": "巴黎现在 15°C,多云",
"intermediate_steps": [
"思考用户要查询巴黎的天气",
"调用 Weather Tool 获取数据",
"解析结果并格式化"
]
}
这对于调试和优化很有帮助。
最佳实践总结
| 项目 | 建议 |
|---|---|
| System Message | 清晰、具体、包含行为指导 |
| Max Iterations | 默认 10 次通常足够 |
| Temperature | 0.7(平衡)或 0.3(更一致) |
| 工具描述 | 详细说明工具功能和参数 |
| 记忆配置 | 使用唯一的 Session Key 区分用户 |
| 错误处理 | 在关键工具上添加错误捕获 |
常见问题解答
Q: AI Agent 和普通工作流有什么区别? A: AI Agent 拥有推理和决策能力,可以根据输入灵活选择工具;普通工作流是固定的流程。
Q: 为什么我的 Agent 没有使用我添加的工具? A: 检查工具描述是否清晰;System Message 中是否指导了工具使用;Prompt 中是否包含使用工具的指示。
Q: 如何降低 AI Agent 的成本? A: 使用开源模型(如 Ollama);降低 Max Iterations;优化 Prompt 以减少 Token 使用。
Q: Agent 可以访问机密数据吗? A: n8n 支持加密凭证存储;确保不要在 Prompt 或工具描述中暴露敏感信息。