Solo Unicorn Club logoSolo Unicorn
2,650

用 Claude + n8n 搭建你的第一个 AI Agent 团队

AI AgentClauden8n工作流自动化多Agent系统实战
用 Claude + n8n 搭建你的第一个 AI Agent 团队

用 Claude + n8n 搭建你的第一个 AI Agent 团队

开场

上个月我用 Claude API + n8n 搭了一个 5 人 Agent 团队,替我完成了一个原本需要 3 天的内容生产任务——调研、写稿、审稿、排版,全流程自动化,总 API 成本不到 $8。这篇文章把整个搭建过程拆解给你看,包括踩过的坑和最终跑通的架构。

问题背景

很多人听过 multi-agent 的概念,但真正动手搭建时会遇到几个问题:

第一,Agent 之间怎么通信? 你让一个 Agent 做调研,另一个 Agent 写文章,中间的数据怎么传?格式怎么统一?

第二,错误怎么处理? 如果调研 Agent 返回了垃圾数据,下游的写作 Agent 会写出更大的垃圾。没有质量门控的 multi-agent 系统,比单 Agent 还不如。

第三,怎么 debug? 5 个 Agent 串联,最终输出不对,你怎么定位是哪一步出了问题?

n8n 解决了这三个问题。它是一个开源的工作流自动化平台,原本用于 API 编排,但它的可视化节点 + webhook + 错误处理机制,天然适合做 Agent 编排层。

核心架构

设计原则

  1. Agent 无状态:每个 Agent 只关心自己的输入和输出,不需要知道上下游是谁
  2. n8n 做编排:所有 Agent 的调用顺序、条件分支、重试逻辑都在 n8n 里配置
  3. 质量门控:关键节点设置评分机制,低于阈值自动触发修改流程

架构概览

触发器 (Webhook/定时)
    ↓
n8n 主工作流
    ├── 节点 1: 调研 Agent (Claude Sonnet)
    │       ↓ 输出: 结构化调研数据 (JSON)
    ├── 节点 2: 写作 Agent (Claude Sonnet)
    │       ↓ 输出: 文章草稿 (Markdown)
    ├── 节点 3: 审核 Agent (Claude Haiku)
    │       ↓ 输出: 评分 + 修改意见
    ├── 条件分支: 评分 >= 75?
    │       ├── 是 → 节点 4: 格式化 Agent
    │       └── 否 → 节点 5: 修改 Agent → 回到审核
    └── 输出: 最终文件写入存储

关键组件

调研 Agent:接收主题关键词,通过 Claude API 生成搜索策略,调用外部 API 获取数据,输出结构化 JSON。

写作 Agent:接收调研数据和写作规则(语气、字数、结构模板),输出 Markdown 格式的文章。

审核 Agent:用 Claude Haiku(成本低、速度快),按照预设评分标准给文章打分,输出分数和具体修改建议。

实现细节

Step 1: 配置 n8n 环境

n8n 支持 Docker 部署或云托管(Pro 版 $60/月,含 10,000 次执行)。自建的话,成本更低:

# Docker 部署 n8n
docker run -it --rm \
  --name n8n \
  -p 5678:5678 \
  -v n8n_data:/home/node/.n8n \
  -e N8N_AI_ENABLED=true \
  docker.n8n.io/n8nio/n8n

关键配置:开启 N8N_AI_ENABLED 环境变量,这会激活 n8n 的 AI 节点面板,包括 Agent 节点、Tool 节点和 Memory 节点。

Step 2: 创建调研 Agent 节点

在 n8n 里,每个 Agent 实际上是一个 HTTP Request 节点,调用 Claude API:

// n8n Code 节点中的 Claude API 调用
const response = await $http.request({
  method: 'POST',
  url: 'https://api.anthropic.com/v1/messages',
  headers: {
    'x-api-key': $env.ANTHROPIC_API_KEY,
    'anthropic-version': '2023-06-01',
    'content-type': 'application/json',
  },
  body: {
    model: 'claude-sonnet-4-5-20250514',
    max_tokens: 4096,
    system: `你是一个专业调研员。根据给定主题,输出结构化调研数据。
    输出格式必须是 JSON:
    {
      "key_facts": [...],      // 核心事实,附数据来源
      "market_data": {...},     // 市场数据
      "competitor_analysis": [] // 竞品分析
    }`,
    messages: [
      {
        role: 'user',
        content: `调研主题: ${$input.item.json.topic}`,
      },
    ],
  },
});

// 解析并传递给下一个节点
return { json: JSON.parse(response.content[0].text) };

这里有个坑:Claude 返回的 JSON 有时候会被 Markdown 代码块包裹(```json ... ```)。处理方法是在解析前做一次清洗:

// 清洗 Claude 返回的 JSON
function cleanJsonResponse(text: string): string {
  // 去掉 Markdown 代码块标记
  const cleaned = text.replace(/```json\n?/g, '').replace(/```\n?/g, '');
  return cleaned.trim();
}

Step 3: 写作 Agent 节点

写作 Agent 的核心在于 system prompt 的设计。我把品牌语气规则、文章结构模板、禁用词列表全部塞进 system prompt:

# 写作 Agent 的 system prompt 结构(简化版)
WRITING_SYSTEM_PROMPT = """
你是一位技术内容写作专家。

## 写作规则
- 语气:专业但亲和,第一人称
- 字数:2000-3000 字
- 结构:开场 hook → 问题 → 解决方案 → 代码示例 → 实战经验 → 总结
- 禁用词列表:{banned_words}

## 输入
你会收到一份 JSON 格式的调研数据,基于它写作。

## 输出
Markdown 格式的文章,包含 YAML frontmatter。
"""

Step 4: 审核 Agent + 条件分支

这是整个系统最关键的部分。审核 Agent 用 Claude Haiku($1/M input, $5/M output),成本极低:

// 审核 Agent 的评分逻辑
const reviewPrompt = `
评估这篇文章的质量,按以下 5 个维度打分(每项 20 分,总分 100):

1. 内容深度:是否有具体数据和案例
2. 结构清晰度:逻辑是否通顺
3. 语气一致性:是否符合品牌调性
4. 技术准确性:代码和技术描述是否正确
5. 原创性:是否有独特视角

输出 JSON:
{
  "total_score": 82,
  "dimensions": { ... },
  "issues": ["具体问题1", "具体问题2"],
  "suggestions": ["修改建议1", "修改建议2"]
}

文章内容:
${$input.item.json.article}
`;

n8n 的 Switch 节点可以根据评分做条件路由:

  • total_score >= 75 → 进入格式化节点
  • total_score < 75 → 进入修改节点,然后回到审核(最多循环 2 次)

Step 5: 错误处理和重试

n8n 内置了 Error Trigger 节点。我为每个 Agent 节点配置了:

  • 超时:30 秒无响应则重试(Claude API 偶尔会慢)
  • 格式错误:JSON 解析失败则重新请求,prompt 里加上 "严格输出 JSON,不要附加解释"
  • API 限流:429 错误触发指数退避重试(1s, 2s, 4s)
// n8n 重试配置(在节点 Settings 里)
{
  "retryOnFail": true,
  "maxTries": 3,
  "waitBetweenTries": 2000  // 毫秒
}

实战经验

生产数据

这套系统我跑了 50 篇文章的批量生产,数据如下:

指标 数值
单篇平均耗时 4 分 12 秒
调研 Agent token 消耗 ~2,800 input / ~1,500 output
写作 Agent token 消耗 ~4,200 input / ~3,800 output
审核 Agent token 消耗 ~5,000 input / ~800 output
单篇平均 API 成本 $0.15 (Sonnet) + $0.03 (Haiku) = $0.18
一次通过率(≥75 分) 72%
修改一次后通过率 94%

踩过的坑

坑 1:Agent 角色混淆。 最初我给写作 Agent 的 prompt 太简单,它有时候会"自作主张"做调研,输出的内容和调研 Agent 的数据不一致。解决方案:在 system prompt 里明确声明 "你只能使用提供的调研数据,不要补充额外信息"。

坑 2:n8n 的 AI Agent 节点和自定义 HTTP 节点选哪个? n8n 内置了 AI Agent 节点,支持直接连接 Anthropic。但我发现自定义 HTTP Request 更灵活——可以精确控制 prompt、temperature 和输出格式。内置节点适合快速原型,生产环境推荐自定义。

坑 3:并行执行的内存问题。 n8n 默认会将所有节点数据保存在内存中。5 个 Agent 同时处理长文章时,单个工作流的内存占用可以超过 500MB。解决方案:把批量任务拆成多个子工作流,每个子工作流处理一篇文章。

适用范围

适合的场景:

  • 内容生产流水线(调研 → 写作 → 审核)
  • 数据处理管道(提取 → 清洗 → 分析 → 报告)
  • 客户工单自动分类和初步回复

不适合的场景:

  • 需要 Agent 之间实时对话的场景(n8n 是顺序执行,不支持多轮对话编排)
  • 需要复杂状态管理的场景(Agent 需要记住跨任务的上下文)
  • 低延迟要求(< 1 秒响应)

对比选型

维度 n8n + Claude API LangChain/LangGraph CrewAI
学习曲线 低(可视化拖拽) 中(需要写代码) 中(角色抽象直观)
灵活性 中(受限于节点类型) 高(完全可编程) 中(框架约束)
Debug 体验 优秀(可视化执行日志) 一般(日志文本) 一般
生产运维 内置监控和重试 需要自建 需要自建
自托管成本 Docker 即可 自定义部署 自定义部署
适合团队 运营/产品团队 工程团队 工程团队

总结

三条核心 takeaway:

  1. n8n 是 multi-agent 编排的最佳入门工具——可视化节点让你能直观看到数据流,内置的错误处理和重试机制省去大量基础设施代码。

  2. 质量门控是 multi-agent 系统的命脉——没有审核节点的 Agent 链就是一条没有刹车的流水线。用 Claude Haiku 做审核,成本低到可以忽略(每篇 $0.03)。

  3. 先跑通单条流水线,再考虑并行扩展——别一上来就搞 10 个 Agent 并行。先用一个简单的三节点流程(调研 → 写作 → 审核)验证逻辑,跑通之后再加节点、加并行。

如果你准备开始搭建自己的 Agent 团队,我建议从一个最简单的两节点工作流开始:一个 Agent 生成内容,一个 Agent 审核内容。两天之内你就能跑通,然后再迭代扩展。

你在搭 multi-agent 系统的时候遇到过什么问题?欢迎在评论区聊聊。