在 n8n 1.0 版本及其后续更新中,最引人注目的特性无疑是官方深度集成了 LangChain。这不只是加了一个简单的 “Ask ChatGPT” 节点,而是直接把 n8n 变成了一个可视化的、低代码的 Agent 编排平台。
如果你对着 LangChain 的 Python 代码(Chain, Agent, Tool, Memory)感到头大,那么 n8n 的节点式表达会让你豁然开朗。
今天我们不讲理论,直接通过一个实战案例——“智能竞品分析 Agent”,来演示如何构建一个具备 自主决策能力 的 Agent。
目标定义
我们需要构建一个 Agent,给它一个公司名(比如 “Anthropic”),它能够:
- Plan:思考需要哪些信息(新闻、产品、融资)。
- Connect:自动去 Google 搜索最新资料。
- Read:抓取关键页面的 HTML 并提取核心内容。
- Calculate:如果发现财务数字,计算增长率。
- Output:生成一份结构化的 SWOT 分析报告 PDF。
架构设计:ReAct 模式
我们将使用经典的 ReAct (Reason + Act) 模式。 在 n8n 中,核心架构由三部分组成:
- AI Agent Node:这是大脑 (Brain/Controller)。
- Tools Nodes:这是手脚 (Sensors & Actuators)。
- Memory Node:这是海马体 (Context)。
1. 配置大脑 (OpenAI Chat Model)
拖入 AI Agent 节点。它是整个流程的中心。
给它的 Model 输入端连上一个 OpenAI Chat Model。
模型选择建议:
- GPT-4o / GPT-4-Turbo:强烈建议。Agent 需要极强的指令遵循 (Instruction Following) 能力来决定何时调工具、调什么工具、填什么参数。GPT-3.5 经常会产生幻觉或参数格式错误,导致工具调用失败。
- Temperature:设为
0。Agent 的行为需要确定性,不需要太多的发散创造力。
System Prompt:
你是一名专业的商业分析师。你的目标是根据用户输入的公司名,生成深度的竞品分析报告。 你拥有搜索互联网和阅读网页的能力。 不要直接回答。请按步骤拆解任务:
- 先搜索该公司的最新新闻和官网。
- 挑选 2-3 个最有价值的 URL 进行详细阅读。
- 如果遇到具体的财务数字,使用计算器工具进行校验。
- 最后用英文总结 SWOT(优势/劣势/机会/威胁)。
2. 赋予工具 (Connect Tools)
这是最精彩的部分。AI Agent 节点有一个 Tools 输入端,你可以挂载各种 Tool 节点。
Tool A: 联网搜索 (SerpAPI)
n8n 内置了 SerpAPI 或 Bing Search 工具。配置好 API Key 即可。
- Description:这一项必须写清楚。比如 “Use this tool to search for latest news, stock prices, and general information about a company.” LLM 会根据这段描述来决定是否调用它。
Tool B: 网页抓取 (Custom Tool using Workflow)
n8n 允许你把 任何 Sub-workflow 封装成一个 Tool!这给了 Agent 无限的扩展性。
- 创建 Sub-workflow:
- Execute Workflow Trigger:定义输入参数
{ "url": "string" }。 - HTTP Request Node:GET 请求该 URL。
- HTML to Markdown Node:把杂乱的 HTML 转成对 LLM 友好的 Markdown,去掉广告和导航栏,节省 Token。
- Text Processing (Truncate):截断超长文本(防止 Token 爆炸)。
- Execute Workflow Trigger:定义输入参数
- 在主 Agent 中引用:
- 使用
Call Workflow as Tool节点。 - 选择刚才创建的子工作流。
- Tool Name:
scrape_webpage - Tool Description: “Useful for reading the detailed content of a specific URL found in search results. Input should be a valid URL string.”
- 使用
Tool C: 精确计算 (Calculator)
LLM 的数学很差,简单的加减法都可能算错。
n8n 内置了 Calculator 工具。
- Description: “Useful for performing mathematical calculations. Use this when you need to calculate growth rates, profit margins, or distinct percentages.”
3. 短期记忆 (Window Buffer Memory)
为了支持多轮对话(比如读完报告用户追问:“他们的 CEO 是谁?”),我们需要挂载 Memory。
推荐使用 Window Buffer Memory。
- Context Window:设置为 10-20 条。
- Session ID:绑定到触发器的
chatId,保证不同用户的对话互不串线。
运行流程模拟
当我们在 Chat 窗口输入 “Analyze Anthropic” 时,后台发生了什么?
- Thought:Agent 收到指令,分析 System Prompt。它决定:“我需要先搜索 Anthropic 是什么。”
- Action:Agent 输出 JSON 指令,调用
SerpAPI工具,参数query="Anthropic latest news products"。 - Observation:SerpAPI 返回一堆搜索结果摘要和链接。
- Thought:Agent 阅读摘要,发现官网
anthropic.com和一篇 TechCrunch 的融资新闻。它决定:“我需要详细阅读官网和那篇新闻。” - Action:
- 调用
scrape_webpage,参数url="https://www.anthropic.com"。 - 调用
scrape_webpage,参数url="https://techcrunch.com/..."。
- 调用
- Observation:子工作流返回两篇文章的 Markdown 正文。
- Final Answer:Agent 综合所有信息,按照 System Prompt 的要求生成 SWOT 报告文本。
进阶:输出结构化 PDF
Agent 的输出通常是 Markdown 文本。我们可以把它接入 n8n 的传统节点:
- Markdown to HTML:把 Agent 的回答渲染成漂亮的 HTML(带 CSS 样式)。
- HTML to PDF:生成 PDF 文件。
- Google Drive:上传文件。
- Slack:发送消息:“报告已生成,点击下载:[链接]”。
这正是 n8n 相比 Dify 或 Flowise 的优势所在:它完美融合了这一代的概率性 AI (Agent) 和上一代的确定性自动化 (Workflow)。
总结
未来的自动化,不仅仅是死板的 If This Then That。
未来的自动化是:给我一个模糊的 Goal,你自己 Plan 路径,遇到问题 Self-correct,最后把 Result 给我。
使用 n8n + LangChain,我们现在就可以构建这样的未来。