使用 n8n 构建 AI Agent:由简入繁实战指南

使用 n8n 构建 AI Agent:由简入繁实战指南

在 n8n 1.0 版本及其后续更新中,最引人注目的特性无疑是官方深度集成了 LangChain。这不只是加了一个简单的 “Ask ChatGPT” 节点,而是直接把 n8n 变成了一个可视化的、低代码的 Agent 编排平台。

如果你对着 LangChain 的 Python 代码(Chain, Agent, Tool, Memory)感到头大,那么 n8n 的节点式表达会让你豁然开朗。

今天我们不讲理论,直接通过一个实战案例——“智能竞品分析 Agent”,来演示如何构建一个具备 自主决策能力 的 Agent。

目标定义

我们需要构建一个 Agent,给它一个公司名(比如 “Anthropic”),它能够:

  1. Plan:思考需要哪些信息(新闻、产品、融资)。
  2. Connect:自动去 Google 搜索最新资料。
  3. Read:抓取关键页面的 HTML 并提取核心内容。
  4. Calculate:如果发现财务数字,计算增长率。
  5. Output:生成一份结构化的 SWOT 分析报告 PDF。

架构设计:ReAct 模式

我们将使用经典的 ReAct (Reason + Act) 模式。 在 n8n 中,核心架构由三部分组成:

  1. AI Agent Node:这是大脑 (Brain/Controller)。
  2. Tools Nodes:这是手脚 (Sensors & Actuators)。
  3. 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

你是一名专业的商业分析师。你的目标是根据用户输入的公司名,生成深度的竞品分析报告。 你拥有搜索互联网和阅读网页的能力。 不要直接回答。请按步骤拆解任务:

  1. 先搜索该公司的最新新闻和官网。
  2. 挑选 2-3 个最有价值的 URL 进行详细阅读。
  3. 如果遇到具体的财务数字,使用计算器工具进行校验。
  4. 最后用英文总结 SWOT(优势/劣势/机会/威胁)。

2. 赋予工具 (Connect Tools)

这是最精彩的部分。AI Agent 节点有一个 Tools 输入端,你可以挂载各种 Tool 节点。

Tool A: 联网搜索 (SerpAPI)

n8n 内置了 SerpAPIBing 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 无限的扩展性。

  1. 创建 Sub-workflow
    • Execute Workflow Trigger:定义输入参数 { "url": "string" }
    • HTTP Request Node:GET 请求该 URL。
    • HTML to Markdown Node:把杂乱的 HTML 转成对 LLM 友好的 Markdown,去掉广告和导航栏,节省 Token。
    • Text Processing (Truncate):截断超长文本(防止 Token 爆炸)。
  2. 在主 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” 时,后台发生了什么?

  1. Thought:Agent 收到指令,分析 System Prompt。它决定:“我需要先搜索 Anthropic 是什么。”
  2. Action:Agent 输出 JSON 指令,调用 SerpAPI 工具,参数 query="Anthropic latest news products"
  3. Observation:SerpAPI 返回一堆搜索结果摘要和链接。
  4. Thought:Agent 阅读摘要,发现官网 anthropic.com 和一篇 TechCrunch 的融资新闻。它决定:“我需要详细阅读官网和那篇新闻。”
  5. Action
    • 调用 scrape_webpage,参数 url="https://www.anthropic.com"
    • 调用 scrape_webpage,参数 url="https://techcrunch.com/..."
  6. Observation:子工作流返回两篇文章的 Markdown 正文。
  7. Final Answer:Agent 综合所有信息,按照 System Prompt 的要求生成 SWOT 报告文本。

进阶:输出结构化 PDF

Agent 的输出通常是 Markdown 文本。我们可以把它接入 n8n 的传统节点:

  1. Markdown to HTML:把 Agent 的回答渲染成漂亮的 HTML(带 CSS 样式)。
  2. HTML to PDF:生成 PDF 文件。
  3. Google Drive:上传文件。
  4. Slack:发送消息:“报告已生成,点击下载:[链接]”。

这正是 n8n 相比 Dify 或 Flowise 的优势所在:它完美融合了这一代的概率性 AI (Agent) 和上一代的确定性自动化 (Workflow)。

总结

未来的自动化,不仅仅是死板的 If This Then That。 未来的自动化是:给我一个模糊的 Goal,你自己 Plan 路径,遇到问题 Self-correct,最后把 Result 给我。

使用 n8n + LangChain,我们现在就可以构建这样的未来。