Claude 接入 n8n:VPS 上构建 AI 工作流
学习在自托管 VPS 的 n8n 中接入 Claude,配置 Anthropic 凭据、按节点选择模型,并构建 3 个 AI 工作流,同时核算 token 成本与排查常见错误。
构建内容
在您现有的 n8n 实例上运行 3 个 AI 工作流:一个用于总结任意输入内容的 webhook;一个按计划读取信息源,并将文章转换为结构化的电子表格行;以及一个会自行调用 HTTP API 来回答问题的 AI Agent。这相当于 在 VPS 上通过 Python 调用 Claude API 的无代码实现:使用相同的 API、相同的令牌和相同的费用,但由 n8n 节点负责编排,而不是由脚本完成。
以下内容假设您已按照 使用 Docker 自托管 n8n 指南,在 HTTPS 后运行 n8n。如果尚未完成,请先完成该配置。webhook 需要真实的 TLS 端点;此外,您即将用于存储 API 密钥的凭据存储,还需要该指南反复强调的加密密钥备份。
这里真正需要解决的问题不是拖放节点,而是为每个节点选择合适的模型、会静默插入 undefined 的提示词字段,以及自动化任务会在无人值守的情况下运行。每次运行成本半美分的工作流看似便宜,但如果重试循环在一夜之间运行 4000 次,费用就会迅速增加。本指南的大部分内容都将讨论这些问题。
一个凭据,用您备份的密钥加密
在 Anthropic Console 的 platform.claude.com 中依次打开 Settings、API Keys,然后创建一个名称类似 n8n-vps 的 API key。该密钥只显示一次。为账户充值或设置计费方式;API 使用按 token 计费,与任何 Claude.ai 订阅完全分开。如果您原本希望完全免费构建这三个工作流,这里没有免费层级,只有少量注册赠金,以及少数完全免费的端点。
在 n8n 中依次选择 Credentials、Create credential,选择 Anthropic,将密钥粘贴到 API Key 字段,然后保存。每个工作流中的 Claude 节点都引用这一个已存储的凭据;不要将密钥粘贴到节点中。
有两点运行注意事项。首先,n8n 使用 N8N_ENCRYPTION_KEY 加密已存储的凭据。如果您按照 n8n 指南在 compose 文件中显式设置该环境变量,凭据在重建容器后仍会保留;如果让 n8n 自动生成该变量,之后又丢失了 volume,所有已存储的凭据(包括此密钥)都会变成无法恢复的密文。如果之前跳过了备份,请立即备份该密钥。其次,应将 n8n 凭据存储视为影响范围:任何能够编辑您实例上工作流的人,都可以使用您的 Anthropic 密钥发起请求。Community edition 不提供凭据的按用户权限控制,因此如果还有其他人登录此实例,在分发账户前,请阅读付费 n8n 许可证提供哪些访问控制。在 Console 的 Settings 中设置支出上限,以便在实例遭到入侵或失控运行时限制费用。
模型选择应按节点决定
n8n 的 Claude 节点会实时从 API 获取模型下拉列表,因此列表显示的是您的密钥可以访问的模型。截至 2026 年 7 月,各模型及其每百万输入/输出 token 的 API 价格如下:Claude Haiku 4.5(claude-haiku-4-5)为 $1/$5,具有 200K 上下文窗口;Claude Sonnet 5(claude-sonnet-5)为 $3/$15,且在 2026 年 8 月 31 日前提供 $2/$10 的 introductory 价格;Claude Opus 4.8(claude-opus-4-8)为 $5/$25,具有 1M token 上下文窗口。另有 Claude Fable 5(claude-fable-5),价格为 $10/$50,适用于最复杂的推理任务;本指南中的任何任务都不需要它。请使用这些确切的 ID。不要使用您从旧教程中记住的带日期后缀的变体,否则请求会返回 404。价格也会变动,因此在参考任何来源中的价格前,包括本指南中的价格,请先查看 platform.claude.com。
应养成这样的习惯:按节点选择模型,而不是按平台选择模型。分类、提取、摘要和路由是自动化中最常见的任务,使用 Haiku 即可获得很好的效果,其标价只有 Sonnet 的三分之一、Opus 的五分之一。将 Sonnet 留给 agent 和多步骤推理,将 Opus 留给极少数错误答案成本高于 token 成本的工作流。包含 5 个 Claude 节点的工作流可以并且应该混用不同模型。
两个 Claude 节点,以及各自的适用场景
n8n 提供两种不同的 Anthropic 集成,选错节点是初学者最常见的绕路原因。
Anthropic 节点是常规应用节点:输入一个请求,输出一个响应。它的 Text 资源提供 Message a Model 操作,还提供用于分析图像和文档的操作。当工作流逻辑由 n8n 负责串联时,请使用此节点:触发器、Claude 调用、下一个节点。下面的工作流 1 和 2 会使用此节点或其链式等效节点。
Anthropic Chat Model 节点是一个子节点,用于将模型附加到 AI Agent 或 Basic LLM Chain 等根节点。它没有触发器,也不会自行输出数据;它提供模型选择器,以及 Maximum Number of Tokens、Sampling Temperature 等采样选项。n8n 文档中有一个值得记住的注意事项:子节点中的表达式始终根据第一个输入项解析,而不是根据每个输入项解析。与每个输入项相关的表达式应放在根节点的提示字段中,而不要放在子节点中。
工作流 1:接收 webhook,输出摘要
这是 AI 自动化的入门示例:将 POST 到某个 URL 的内容进行摘要,然后发送到 Slack 或您的收件箱。
- Webhook 节点,HTTP Method 设置为 POST,路径为
summarize。n8n 会提供测试 URL 和生产 URL;只有工作流处于激活状态时,生产 URL 才会监听请求。 - Anthropic 节点,选择 Message a Model,模型为
claude-haiku-4-5,Max Tokens 设置为约 300。 - Slack 节点(或 Send Email),将响应文本发送到频道。
提示词是 n8n 表达式与 Claude 的交汇点。POST 请求体位于 $json.body 下,因此用户消息字段如下:
Summarize the following feedback in three bullets, then one line:
verdict: praise | complaint | churn-risk. No preamble.
{{ $json.body.text }}将角色和格式要求放在节点的系统提示词字段中,不要放在用户消息中。系统提示词保持不变,而请求负载会变化。这样可以保持行为稳定,也便于您在六个月后理解提示词。请直接在 VPS 上进行测试:
curl -X POST https://n8n.example.com/webhook/summarize \
-H 'Content-Type: application/json' \
-d '{"text": "Third support ticket this month about slow disk IO..."}'使用 Haiku 时,每次运行的成本为:包含提示词在内的 1,200 个输入 token 约为 $0.0012,输出 300 个 token 约为 $0.0015,合计约为四分之一美分。每月运行 1,000 次,成本低于 $3。将同一节点改为使用 Opus 4.8,成本约为其五倍。这个比例会乘以您构建的每个工作流,因此按节点选择模型的习惯非常重要。
工作流 2:定时将 RSS 转换为结构化行
现在处理按时间运行并生成结构化输出的场景:每小时读取一次 RSS feed,对每个条目进行分类,然后将结果追加到表格中。
- Schedule Trigger,每小时运行一次。
- RSS Read,读取 feed URL。每篇文章输出一个条目。
- Basic LLM Chain,添加一个 Anthropic Chat Model 子节点,将其设置为
claude-haiku-4-5;再添加一个 Structured Output Parser 子节点,并在其中保存 JSON schema。 - Google Sheets(或 Postgres),每个条目追加一行。
Structured Output Parser 会将“Claude,请返回 JSON”这类请求从期望变成契约:它会根据 schema 验证模型的回复。如果验证失败,会明确报错,而不是写入错误数据。schema 示例:
{
"type": "object",
"properties": {
"category": { "type": "string", "enum": ["release", "security", "tutorial", "other"] },
"relevance": { "type": "number" },
"one_line_summary": { "type": "string" }
},
"required": ["category", "relevance", "one_line_summary"]
}链的提示词需要引用 feed 条目:
Classify this article for a VPS hosting audience.
Title: {{ $json.title }}
Content: {{ $json.contentSnippet }}这里的成本计算方式不同:成本按条目计算,而不是按运行次数计算。每小时 50 篇文章、每天 24 小时,相当于每月调用 Claude 36,000 次。使用 Haiku 时,根据文章长度,费用可能为 $40–90;使用 Opus 时,费用约为其 5 倍。在 LLM 节点之前去重(可以使用针对已处理链接的简单 IF,或 n8n 的 Remove Duplicates 节点),调用次数会大幅减少,因为大多数每小时轮询并没有发现新内容。最便宜的 token 是无需发起的调用。
工作流 3:使用工具的 AI Agent
前两个工作流是流水线,步骤由您决定。AI Agent 节点则相反:您向 Claude 提供目标和工具,由它决定调用哪些工具、按什么顺序调用,直到任务完成。n8n 要求附加一个聊天模型子节点,以及至少一个工具子节点。
下面是一个具体示例:构建一个运维助手,从监控系统回答“哪些服务宕机了,原因是什么”。
- Chat Trigger(或 webhook)接收问题。
- AI Agent,附加一个 Anthropic Chat Model 子节点,并将其设置为
claude-sonnet-5。Agent 会规划并串联工具调用;Haiku 可以驱动简单的单工具 Agent,但工具数量增加后,Sonnet 才是合理的最低配置。 - 将 HTTP Request 节点作为工具附加到 Agent,指向您的 Uptime Kuma 状态 API 或 Zabbix 端点。第二个 HTTP 工具可以访问任何提供 REST API 的服务。
两个设置最关键。Agent 的 System Message 定义任务,例如:“您是运维助手。回答前,使用状态工具检查当前监控状态。只报告已宕机的监控项,并提供持续时间。”每个工具的描述不是供人阅读的文档,而是 Claude 判断何时调用该工具的依据。“以 JSON 返回所有受监控服务当前的正常/宕机状态”会在正确的时机触发调用;“状态 API”则可能被忽略或误用。将 HTTP Request 节点作为工具附加后,启用 Optimize Response 选项,并选择需要的 JSON 字段。否则,每次冗长的 API 响应都会作为输入 token 写入模型上下文,而这些 token 需要计费。
在 Agent 上设置 Max Iterations(默认值为 10)时,应使用能正常工作的最小值。它决定了 Agent 是“调用 4 次工具后放弃”,还是进行十几轮模型往返。还要了解计费方式:每次迭代都会重新发送截至当前的完整对话,包括系统消息、问题以及之前每次工具调用的结果,全部计为输入 token。一次包含 6 次迭代的 Agent 运行,很容易累计 20,000 个输入 token 和 2,000 个输出 token:按 Sonnet 5 的 introductory pricing 约为 $0.06,按标准的 $3/$15 价格约为 $0.09;简单的摘要任务可能因此增加约 20 倍成本。如果您发现需要向一个 Agent 附加大量工具,那么这就是在 VPS 上 运行 MCP 服务器会更清晰的架构边界。
成本控制,因为没人监控
无人值守的工作流需要具备人工操作时自然会提供的控制措施。分为四层,按成本从低到高排列。
为每个 Claude 节点设置 Max Tokens。 这是硬性输出上限。摘要器需要 300,分类器需要 100。这样可以限制成本中较高的部分(每百万输出 token 为 $5–$25,而输入 token 为 $1–$5),同时也能防止工作流失控:导致 Claude 反复输出的提示词错误,最多只会产生 300 个 token 的成本,而不是 8,000 个。
为每个节点选择模型。 上文已经介绍过。这是当前模型系列中可将价格降低或提高五到十倍的设置,配置只需十秒。
限制循环次数。 为代理设置 Max Iterations。在工作流设置中配置工作流超时,使卡住的执行自动终止,而不是持续运行。还要谨慎使用每个节点的 Retry On Fail:它适合处理临时错误,但重试会增加成本。将 Max Tries 设为 3、Wait Between Tries 设为 5000 ms 时,如果某个项目持续失败,系统在最终放弃前最多会向你收取三次费用。不要在已经成功完成高成本操作的节点外再包裹重试机制。
使用错误工作流作为最后一道防线。 创建一个以 Error Trigger 节点开头的工作流,将失败工作流的名称和错误发送到 Slack,然后在每个 AI 工作流的设置中将其设为 Error Workflow。它可以捕获一种严重的失败情况:由计划任务触发的工作流每小时运行一次,并且每次都报错,持续一周;每次运行都会在终止前消耗 token。将其与 Anthropic Console 中的每月支出上限配合使用,并在启用任何计划任务后的最初几天检查 Console 的使用情况页面。如果你想准确了解费用的构成,请参阅token 使用指南。
故障模式及其对应的错误信息
节点立即失败,并显示“Authorization failed - please check your credentials.” API 返回了 401。响应正文如下:
{"type": "error", "error": {"type": "authentication_error", "message": "invalid x-api-key"}}可能是密钥粘贴错误、密钥被截断、末尾包含空格,或误用了教程中的占位符。重新创建 n8n 凭据并再次粘贴密钥。如果昨天还能使用,请检查 Console 中的密钥是否已撤销,或者卷恢复是否将凭据回滚到了使用不同 N8N_ENCRYPTION_KEY 加密的版本。
执行成批失败,并返回 429 rate_limit_error, 消息类似于“Number of request tokens has exceeded your per-minute rate limit.” 速率限制按分钟分桶,而 n8n 很容易同时触发 50 个 webhook 或 RSS 执行。应从结构上解决:使用 Loop Over Items 依次处理项目,而不是并行处理;并启用 Retry On Fail,将 Max Tries 设为 3,将 Wait Between Tries 设为其最大值 5000 ms。n8n 会将此字段限制为 5000 ms。如果需要更长的退避时间,使重试进入下一分钟的时间窗口,请在错误路径中放置 Wait 节点,或一次只处理一个项目。响应中包含 retry-after 标头,其中明确说明需要等待多长时间。n8n 的固定等待时间无法读取该标头,因此需要自行构建更长的暂停。
命名模型时返回 404 not_found_error。 响应正文会回显拼写错误:
{"type": "error", "error": {"type": "not_found_error", "message": "model: claude-haiku-4.5"}}常见原因包括使用点号而不是连字符(4.5 对应 4-5)、使用过时博客文章中的日期后缀,或使用了已下线的模型。请根据当前模型列表修正 ID。直接在模型字段中输入表达式,而不是从下拉列表中选择模型时,很容易出现此问题。
Claude 回答了您没有提出的问题。 整个流程没有任何错误,执行状态也是绿色。n8n 表达式引用了不存在的字段,例如负载使用 message,但表达式引用了 {{ $json.body.text }},此时表达式会将字面字符串 undefined 插入提示词。Claude 仍会正常回答一个没有实际内容的问题。如果被引用的节点根本没有执行,会显示“Referenced node is unavailable”;但缺失的字段不会报错。激活流程前,始终使用真实数据运行一次,并在节点的输入面板中查看实际渲染后的提示词。表达式编辑器会预览解析后的值;如果仔细查看,undefined 就在那里。
FAQ
如何将 Claude 连接到 n8n?
在 platform.claude.com 的 Anthropic Console 中创建 API key,然后在 n8n 中添加 Anthropic 类型的凭据,并将其粘贴到 API Key 字段。每个 Claude 节点、Anthropic app 节点和 Anthropic Chat Model 子节点都会引用该凭据。n8n 使用 N8N_ENCRYPTION_KEY 对其加密,因此请备份该密钥,否则凭据会随卷一起丢失。
AI 工作流每次运行的成本是多少?
先估算每次运行所用的 token 数量,再乘以模型每百万 token 的价格。截至 July 2026,Haiku 4.5 的输入/输出 token 价格为每百万 $1/$5,Sonnet 5 为 $3/$15(截至 August 2026 的介绍价为 $2/$10)。使用 Haiku 处理 webhook 摘要的单次运行成本约为四分之一美分;使用 Sonnet 运行包含多次工具调用的 agent,成本通常接近 $0.06–$0.10,因为每次迭代都会重新发送完整对话作为输入。请在 Console 的 usage 页面中核对实际运行数据,不要仅依赖估算值。
n8n 自动化应使用哪个 Claude 模型?
分类、提取、摘要和路由,以及速度和价格优先的高吞吐量任务,使用 Haiku 4.5。AI Agent 节点和多步骤推理使用 Sonnet 5。只有在错误答案的代价足以证明其 $5/$25 标准价格合理时,才使用 Opus 4.8;其价格是 Haiku 的五倍,略低于 Sonnet 的两倍。按节点设置模型,而不是按工作流设置;一个工作流可以混用这三个模型。
如何防止 n8n 工作流在 Claude API 上超支?
分层设置限制:为每个 Claude 节点设置较低的 Max Tokens,为 agent 设置 Max Iterations,设置工作流超时,并使用保守的 Retry On Fail 设置,避免失败导致 token 消耗倍增。然后添加一个 Error Trigger 工作流,在任何 AI 工作流失败时通过 Slack 告警;同时在 Anthropic Console 中设置每月支出上限,作为 VPS 上任何配置都无法突破的硬上限。
AI Agent 的工具调用是否会产生额外费用?
没有单独的工具费用,但工具并非免费:每个工具结果都会作为输入 token 返回给模型,而且每次 agent 迭代都会重新发送截至当前的完整对话。未经筛选的冗长 API 响应可能远超实际 prompt 的规模。请在 HTTP Request 工具中启用 Optimize Response,只返回 agent 所需的字段。