通过本教程,你将学会如何创建能思考的自动化工作流,这些工作流不仅能执行预定义的步骤,还能像真正的助手一样做出决策、使用工具、记住对话历史。
什么是链?
链是AI工作流中最简单的形式,就像一条装配线。它按照预先设定的顺序依次调用AI模型和其他组件,每一步的输出成为下一步的输入。
链的特点:
链的局限:
**生活中的类比:**如果chain是一台自动贩卖机,你投入钱,它按照程序出货。每次都是相同的流程,不会根据你的需求调整。
什么是代理?
代理是链的智能升级版。它像一个真正的智能助手,能够理解你的需求,自主做出决策,选择合适的工具来完成任务。代理会不断思考:"我现在需要什么工具?"、"这个结果有意义吗?"、"我需要采取什么下一步行动?"
代理的关键特征:
与链的根本区别:
| 维度 | 链 | 代理 |
|---|---|---|
| 决策能力 | 无 | 有 |
| 工具使用 | 不支持 | 完全支持 |
| 记忆能力 | ❌ 无 | ✅ 有 |
| 适用场景 | 简单、流程化任务 | 复杂、动态、需要思考的任务 |
| 用户交互 | 每次都从零开始 | 持续、自然的对话 |
**生活中的类比:**代理就像一个聪明的私人助手。你告诉她目标,她会思考该用什么资源、该问谁、该做什么。如果结果不对,她还会自动调整。
什么是记忆?
记忆是AI保存对话历史的机制,让AI能够理解对话的上下文,进行自然的多轮对话。没有记忆,每次AI都像是第一次见到你。
n8n提供的记忆类型:
为什么记忆很重要:
❌ 没有记忆的对话:
用户:"我叫张三"
AI:"很高兴认识你,张三"
用户:"我叫什么名字?"
AI:"I'm sorry, I don't know your name." ← 它忘记了!
✅ 有记忆的对话:
用户:"我叫张三"
AI:"很高兴认识你,张三"
用户:"我叫什么名字?"
AI:"你叫张三" ← 它记住了!在AI中,工具是AI可以使用的接口或函数,用来与世界交互、访问外部数据和资源。就像医生需要听诊器和X光机一样,AI代理需要各种工具来完成复杂任务。
n8n提供的强大工具:
| 工具 | 用途 | 示例 |
|---|---|---|
| Call n8n Workflow Tool | 调用任何n8n工作流作为工具 | 从Google Sheets查询数据、调用API |
| HTTP Request Tool | 直接调用任何API | 调用天气API、获取新闻 |
| Custom Code Tool | 编写自定义代码执行复杂逻辑 | 数据处理、计算 |
| 预置工具 | Wikipedia、SerpAPI等 | 网络搜索、知识查询 |
实际应用场景:
向量数据库将文本、图像等信息转换成数学向量(一串数字)存储,使AI能够进行语义搜索。这是实现RAG(检索增强生成)的基础。
简化理解:
传统数据库:存储具体的文字信息
"n8n是一个开源自动化工具"
向量数据库:存储这句话的"含义"
[0.1, 0.2, 0.3, ..., 0.9] ← 一个有数百或数千维度的向量
搜索时,不是精确匹配文字,而是找"意思最接近"的内容
搜索:"自动化平台" → 可以找到"n8n是一个开源自动化工具"为什么这很强大:
n8n支持的向量数据库:
在AI代理中,有些工具参数可以由AI模型自动推断和填充。使用 $fromAI() 函数,你可以让AI根据对话内容动态生成所需的参数。
基本语法:
$fromAI('parameter_name', 'description', 'type')实际例子:
// 让AI自动决定搜索的城市
$fromAI('city', 'The city to get weather for', 'string')
// 让AI自动决定数量
$fromAI('count', 'How many items to return', 'number')这样,AI会根据用户的自然语言请求自动推断正确的参数值。
不是所有问题AI都能完美解决。设置人工回退机制,当AI无法回答时,自动通知人类团队。
工作流逻辑:
用户问题
↓
AI尝试回答
↓
能回答? → 是 → 返回给用户
↓
否
↓
发送Slack/邮件给人类代理
↓
人类处理 → 返回答案场景1:Chat with Google Sheets - AI数据助手
用户:「给我看过去30天销售超过10000的客户」
AI的工作流程:
场景2:Populate Pinecone Vector Database - AI知识库
在n8n中,点击"新建工作流"开始你的第一个项目。
这是用户与AI互动的入口。
配置说明:
这是AI工作流的心脏。
基本配置:
AI代理需要连接到一个语言模型来处理对话。
支持的模型:
添加模型步骤:
默认提示是"You are a helpful assistant"。你可以定制AI的个性。
添加自定义提示:
你是一个专业的中文AI助手。你需要:
- 始终用简体中文回答
- 对用户友好、耐心
- 当不确定时要说"我不确定"
- 提供清晰、有条理的回答这样AI才能记住对话历史。
添加记忆:
下面是一个完整的初学者友好的n8n AI工作流JSON代码。你可以复制这段代码到你的n8n实例中。
{
"name": "AI Smart Assistant - 智能助手",
"nodes": [
{
"parameters": {
"accessibility": "public"
},
"id": "chat-trigger",
"name": "Chat Trigger",
"type": "n8n-nodes-langchain.chatTrigger",
"typeVersion": 1,
"position": [
-20,
300
]
},
{
"parameters": {
"model": "gpt-4o-mini",
"options": {
"systemMessage": "你是一个非常有帮助的AI助手。你的目标是:\n1. 用简体中文回答所有问题\n2. 提供清晰、有条理的回答\n3. 当你不确定时,诚实地说'我不太确定'\n4. 友好、耐心地对待每个用户\n5. 根据需要提供详细的解释或简明扼要的答案\n\n记住:你是在帮助一个用户完成任务,所以要尽你所能提供最好的帮助。"
}
},
"id": "ai-agent",
"name": "AI Agent",
"type": "n8n-nodes-langchain.agent",
"typeVersion": 1,
"position": [
260,
300
],
"credentials": {
"openAiApi": "your-openai-credentials-id"
}
},
{
"parameters": {
"sessionIdType": "fromInput",
"sessionIdValue": "chat_session",
"order": "oldestFirst"
},
"id": "memory",
"name": "Simple Memory",
"type": "n8n-nodes-langchain.memorySimple",
"typeVersion": 1,
"position": [
540,
450
]
}
],
"connections": {
"Chat Trigger": {
"main": [
[
{
"node": "AI Agent",
"branch": 0,
"index": 0,
"type": "main"
}
]
]
},
"AI Agent": {
"ai_memory": [
[
{
"node": "Simple Memory",
"branch": 0,
"index": 0,
"type": "ai_memory"
}
]
]
}
},
"active": false,
"settings": {
"executionOrder": "v1"
},
"id": "ai-smart-assistant",
"meta": {
"templateId": "n8n-ai-smart-assistant"
},
"versionId": "123abc"
}这个工作流包含三个核心节点:
数据流向:
用户输入 → Chat Trigger
↓
AI Agent 读取消息并思考
↓
AI Agent 查询Simple Memory("用户之前说了什么?")
↓
AI Agent 调用OpenAI模型生成回答
↓
Simple Memory 存储这次对话
↓
回答返回给用户激活后,你可以这样与AI互动:
👤 你:你好,我是李明
🤖 AI:你好,李明!很高兴认识你。有什么我可以帮助你的吗?
👤 你:我叫什么名字?
🤖 AI:你叫李明。我们刚才才认识呢!
👤 你:用中文解释什么是机器学习
🤖 AI:机器学习是一种让计算机从数据中学习的技术...Q1: Chain和Agent到底应该怎么选择?
Q2: 我的AI总是给出不好的答案,怎么办?
Q3: 如何处理敏感数据?
Q4: AI工作流会用完我的API配额吗?
Q5: 我可以让多个代理一起工作吗?
AI自动化不再是少数人的特权。通过n8n,任何人都可以构建智能、高效的自动化工作流。
你现在已经掌握了:
[1] 官方文档: https://docs.n8n.io/advanced-ai/examples/introduction/
[2] n8n系列教程: https://www.undsky.com/blog/?category=n8n%E6%95%99%E7%A8%8B#