文档

文档

n8n

n8n 通过 OpenAI 凭据中的 Base URL 字段访问自定义 OpenAI 兼容 API,而不是通过 HTTP Request 节点,也不是通过模型节点的选项。以下介绍适用于 Kunavo 的凭据设置、各个开关会发送什么内容,以及凭据测试中一个会让错误 URL 看似正确的陷阱。

OpenAI 凭据的 Base URL 字段填写 https://api.kunavo.com/v1,并保留 /v1,即可让 n8n 工作流中的所有 OpenAI Chat Model 使用 Kunavo;模型节点本身没有端点字段。

n8n 2.41.4 — OpenAI 凭据
Credentials  →  Create credential  →  OpenAI
  API Key                      sk-kn-...
  Organization ID (optional)   leave empty
  Base URL                     https://api.kunavo.com/v1     <- keep the /v1

Workflow  →  AI Agent or Basic LLM Chain  →  Chat Model: OpenAI Chat Model
  Credential to connect with   the OpenAI credential above
  Model                        ID mode:  claude-sonnet-5
  Use Responses API            on   → POST /v1/responses
                               off  → POST /v1/chat/completions
请在 Base URL 中保留 /v1。 n8n 使用 GET {Base URL}/models 测试凭据,并且只检查状态码。直到 2026 年 10 月 1 日,如果省略 /v1,该请求会落到 Kunavo 的公开模型目录页面,该页面返回 200,因此 n8n 会对任何密钥都报告“Connection successful!”(在 n8n 2.41.4 上复现)。此后,api.kunavo.com 会对不带 /v1 的端点路径返回 JSON 404,错误代码为 missing_v1_prefix,因此同样的错误现在会导致测试失败。使用 /v1 且密钥错误时,测试会显示“Unauthorized”。
默认启用 Use Responses API。 在当前版本的 OpenAI Chat Model(节点版本 1.3)中,新节点会发送 POST /v1/responses;关闭后则会发送 POST /v1/chat/completions。Kunavo 为每个聊天模型都提供这两种路由,因此任一设置都可使用;此开关会影响下文提到的内置工具,也会影响日志中显示的请求格式。
运行的测试。 使用 n8n 2.41.4 的官方 Docker 镜像,先连接到本地录制模拟服务(不是 Kunavo,也不是模型),以确认各项设置发送的路径;随后连接到真实的 api.kunavo.com,并故意使用无效密钥,以捕获设置错误时产生的报错。尚未使用有效密钥通过 Kunavo 运行补全、流式回复或 AI Agent 工具调用。
还没有密钥?创建 Kunavo 账户,创建一个密钥(以 sk-kn- 开头),并充值 $10 起——调用费用从该余额中扣除,失败的调用不会收费。随后,控制台会打开 n8n 设置页面。

分步操作

  1. 在 /app/keys 创建密钥并复制——它只会显示一次。
  2. 在 n8n 中创建一个类型为 OpenAI 的凭据。在 API Key 中填写密钥,将 Organization ID(可选) 留空,并将 Base URL 的默认值 https://api.openai.com/v1 替换为 https://api.kunavo.com/v1。保存。
  3. 添加一个 AI Agent 或 Basic LLM Chain 节点,并附加一个使用该凭据的 OpenAI Chat Model 子节点。将 Model 字段从 From List 切换为 ID,然后按 GET /v1/models 中显示的格式输入模型 ID,例如 claude-sonnet-5。列表也可以使用,但手动输入 ID 能让工作流更易读。
  4. 决定是否启用 Use Responses API:除非链中的工具需要 Chat Completions,或你希望 n8n 执行日志显示 chat completions 请求,否则请保持启用。
  5. 先用一行提示运行一次工作流,再将它连接到触发器。401 表示密钥有误;带有代码 missing_v1_prefix 的 404(或在较早的运行中,以 <!DOCTYPE html> 开头的消息)表示 Base URL 中遗漏了 /v1。

已于 2026年10月1日 对照 n8n 在 n8n@2.41.4 标签下的 OpenAI 凭据源代码 检查。第三方设置会发生变化;如果这里的字段名称不再与你看到的内容一致,应以该页面为准,而不是本页。

这是简要版本。完整教程——包括模型选择、真实会话成本和失败模式——见 n8n AI API 费用。

调试客户端前先验证

一个请求即可确定故障来自端点、密钥还是配置文件。如果返回 JSON,则相同的基础 URL 和密钥可以在 n8n 中使用。

# Settles whether a failure is the endpoint, the key, or the client.
curl -sS https://api.kunavo.com/v1/models \
  -H "Authorization: Bearer sk-kn-..."

字段中应填写哪个模型 ID

每个文本模型都可通过模型 ID 访问——实时列表见 GET /v1/models,包含价格的目录见模型页面。费率单位为每 1M token 的美元,格式为输入 / 输出。

模型 IDKunavo 输入 / 输出它在 n8n 中的位置
claude-sonnet-5$1.40 / $7.00需要调用工具并选择正确工具的 AI Agent 节点
claude-haiku-4-5$0.70 / $3.50循环中逐项进行分类、提取和路由——调用量决定账单金额
claude-opus-5$3.50 / $17.50单次规划或审核步骤;答案出错会导致整次运行付诸东流
计费方式是从预付余额中按 token 扣费,无月费——参见 计费。对于重复上下文——这正是编辑器或聊天客户端发送内容的大部分——提示缓存对账单的影响大于模型选择。

为什么 Base URL 位于凭据中

较早的教程会在模型节点内设置端点。在已发布的源代码中,从节点版本 1.1 起,节点内的 Base URL 选项已隐藏,因此你今天添加的节点没有此字段,实际生效的是凭据中的 Base URL。n8n 自己的 OpenAI Chat Model 文档及其凭据页面都没有介绍该字段;源代码中有说明:“覆盖 API 的默认 base URL”。HTTP Request 节点则是完全不同的方式——它可以使用,但你需要手动构建 AI Agent 节点会替你构建的请求。

启用或关闭 Responses API

  • 启用(节点 1.3 中的默认设置)——请求发送到 /v1/responses。只有此模式会显示节点的 内置工具:Web Search、File Search 和 Code Interpreter。这些工具由 OpenAI 托管;尚无人测试它们能否通过 Kunavo 使用,因此请先进行测试,再构建依赖这些工具的工作流。
  • 关闭——请求发送到 /v1/chat/completions。这是支持最广泛的格式;如果工具调用在另一种设置下表现异常,可切换到此设置。
  • 你附加到 AI Agent 的工具会以函数定义的形式发送给模型。这次检查未涵盖这一往返过程,因此在依赖它之前,请先在测试工作流中运行一次工具调用。

n8n 与 OpenRouter

n8n 提供单独的 OpenRouter Chat Model 节点,并配有独立的 OpenRouter 凭据。该凭据有一个 API Key 字段,以及一个隐藏且固定为 https://openrouter.ai/api/v1 的 Base URL;其测试会调用 OpenRouter 自己的 /key 路由,因此 OpenRouter 节点只能连接 OpenRouter。如果你想使用 OpenRouter,请使用该节点并填写 OpenRouter 密钥;无需使用本页中的任何内容。

包括 Kunavo 在内的其他任何兼容 OpenAI 的端点,都如上所述通过 OpenAI Chat Model 和 OpenAI 凭据的 Base URL 连接。应根据实际差异来选择——需要哪些模型、希望如何付费、是否希望 n8n 与其他工具共用一个余额——而不是根据节点来选择。关于 Kunavo 的对比,请参阅 Kunavo 与 OpenRouter。

控制无人值守工作流的账单上限

  • 节点的 Max Retries 默认为 2,Timeout 默认为 60000 ms。请求超时后会重试,而每次重试都会产生一笔新的计费请求。
  • 对于逐项运行的节点,请设置 Maximum Number of Tokens——遍历 1,000 行的循环会将单次调用的费用放大相应倍数。
  • 为每个生产工作流单独使用一个 Kunavo 密钥,这样使用情况页面就能显示各密钥的支出;需要撤销其中一个密钥时,也不会影响其他密钥。

错误信息的样子

  • “401 缺少或无效的 API 密钥” — Base URL 正确,但密钥不正确。在 2.41.4 上复现。
  • “404 <!DOCTYPE html>…”,LangChain 将其归类为 MODEL_NOT_FOUND——这具有误导性:模型没有问题,Base URL 缺少 /v1,请求落到了网站上。在 2.41.4 上复现。
  • JSON 中显示模型不可用的信息——模型 ID 与 GET /v1/models 不完全一致。

常见问题

如何在 n8n 中使用自定义的兼容 OpenAI API?

创建 OpenAI 凭据,并将其 Base URL 从 https://api.openai.com/v1 改为你的端点的兼容 OpenAI API 根地址,保留 /v1——Kunavo 的地址为 https://api.kunavo.com/v1——然后在 API Key 中填写密钥。接着,在 AI Agent 或 Basic LLM Chain 下使用 OpenAI Chat Model 子节点,选择该凭据,并按 ID 输入模型。n8n 已发布的源代码中有此字段(凭据 OpenAiApi,n8n@2.41.4),但 n8n 的凭据文档页面只列出了 API Key 和 Organization ID。

为什么 n8n 显示“连接成功”,但工作流却因 404 失败?

因为凭据测试只检查 GET {Base URL}/models 是否返回成功状态。如果 Base URL 中缺少 /v1,测试请求的就是裸主机上的 /models 路径。直到 2026 年 10 月 1 日,在 Kunavo 上,该路径会返回公开的模型目录网页,状态码为 200,因此无论密钥是什么,n8n 都会报告成功;但工作流随后会因 404 失败,错误消息是一张 HTML 页面(已在 n8n 2.41.4 上复现)。此后,Kunavo 会对这些路径返回 JSON 404,错误代码为 missing_v1_prefix,因此测试现在会失败。无论哪种情况,解决方法都相同:在 Base URL 中添加 /v1。其他在 /models 返回网页的兼容 OpenAI 服务提供商仍可能导致这种虚假的成功。

自定义端点的 Use Responses API 应该启用还是关闭?

如果端点和 Kunavo 一样,为每个聊天模型都提供两种路由,那么两种设置都可以使用。在节点版本 1.3 中,该选项默认启用,并发送 POST /v1/responses;关闭后则发送 POST /v1/chat/completions,这一点已通过在 n8n 2.41.4 上分别运行两种设置确认。如果工具调用或输出格式表现异常,请关闭该选项,因为 chat completions 是支持范围更广的格式。只有启用该选项时才会显示内置工具列表(web search、file search、code interpreter);这些工具由 OpenAI 托管,尚未测试能否通过 Kunavo 使用。

能否将 n8n 的 OpenRouter 节点指向其他端点?

不能。OpenRouter 凭据的 Base URL 是隐藏字段,固定为 https://openrouter.ai/api/v1;其测试会调用 OpenRouter 自己的 /key 路由,因此 OpenRouter Chat Model 节点只能连接 OpenRouter。要连接其他任何兼容 OpenAI 的端点,请使用 OpenAI Chat Model,并搭配 Base URL 已更改的 OpenAI 凭据。

Kunavo 测试过 n8n 吗?

部分测试过。2026 年 10 月 1 日,我们使用 n8n 2.41.4 的官方 Docker 镜像连接到本地模拟端点,以确认各项设置发送的路径;还连接到真实的 Kunavo API 并使用无效密钥,以确认本文所述的凭据测试错误和工作流错误。尚未使用有效密钥通过 Kunavo 成功运行补全、流式回复或 AI Agent 工具调用,因此你自己的首次运行应作为端到端检查。