# n8n 接入 OpenAI 兼容 API：配置与工作流排障

> 从一个可检查的分类工作流开始，配置 n8n 的 OpenAI 兼容 API，区分端点、凭证和多条数据映射问题，再决定是否启用 Agent 工具。

_发布 2026-09-29 · 更新 2026-09-29 · [KeepRouter Editorial](https://keeprouter.com/editorial-policy#editorial-team) · 5 分钟阅读_

![应用、AI Gateway 与模型供应商之间的分层责任图](https://keeprouter.com/editorial/blog/ai-gateway-guide.png)

_应用通过明确的请求边界连接模型 API。概念示意图。_

在 n8n 中接入 OpenAI 兼容服务，需要填写该服务的基础地址、API Key 和准确模型 ID。先跑通一条 Chat Completions 文本请求，再验证完整工作流；只有模型与线路支持相应工具协议时，才把它接到 AI Agent。凭证验证成功并不代表 Agent、记忆或批量处理都正常。

以客服工单分类为例，最先要确认的是“正确标签对应正确工单”。不用一开始就接上发送邮件、改数据库等动作。

## 先选择能看清问题的节点

[n8n 模型节点文档](https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatopenai)区分 Chat Completions 与 Responses API。针对只支持前者的线路，关闭 Use Responses API；更换基础地址不会自动提供 OpenAI 的全部托管工具。

| 节点 | 适合的起点 | 检查重点 |
| --- | --- | --- |
| HTTP Request | 观察准确的请求与响应 | 状态码、返回体、数据映射 |
| Basic LLM Chain + Chat Model | 根据提示词转换文本 | 模型、变量和最终输出 |
| AI Agent + Chat Model | 选择并调用业务工具 | 工具参数、结果与停止条件 |

HTTP Request 适合先排除隐藏的提示词拼接。密钥放进 n8n 的凭证管理，按[官方凭证说明](https://docs.n8n.io/integrations/builtin/credentials/openai)管理，不写进导出的工作流 JSON。

## 先发一条能解释的请求

使用 HTTP Request 时，方法为 POST，完整地址为 `https://keeprouter.com/v1/chat/completions`。选择 JSON 请求体，并通过保存的 Header Auth 凭证设置 Authorization bearer 值。以下内容不含密钥，`free` 仅用于连接检查。

```json
{
  "model": "free",
  "messages": [
    {"role": "system", "content": "把工单归类为 billing、access 或 other，只返回一个标签。"},
    {"role": "user", "content": "重置密码后仍然无法登录。"}
  ],
  "stream": false
}
```

根据实际返回结构读取内容，该线路通常是 `choices[0].message.content`。应用只接受约定的三个标签，其他输出进入人工检查。多个标签都适用时，应先定义业务优先级。

换成模型节点时，基础地址填写 `https://keeprouter.com/v1`，不要再附加 `/chat/completions`。使用所安装版本提供的自定义基础地址设置；该版本没有此项时，保留 HTTP Request 方案。模型 ID 从[实时目录](/models)复制，不沿用其他 Router 的前缀。

## 两条工单比两百条更适合发现映射错误

准备包含 `ticket_id` 和 `text` 的两条不同数据。工单 ID 由程序保存，模型只输出标签，之后由程序关联。不要依靠模型重新生成 ID。

n8n 有一个容易忽略的细节：模型子节点中的表达式可能始终读取第一条输入。两条工单得到相同结果时，先查看实际进入提示词的文本，再判断模型质量。需要时用逐项循环，并把与当前条目相关的提示词映射放在合适的主节点。

可用 12 条合成工单做起步样本：账单、访问、模糊问题各四条。这只是测试设计，不是准确率证明。检查关联关系、模糊工单是否进入人工审核，以及再次执行会不会重复创建下游任务。

## 沿着失败边界排查

| 现象 | 先检查 |
| --- | --- |
| 401 | 该节点使用的凭证是否属于目标服务 |
| 404 | 完整 URL 与基础地址是否混用，是否重复 `/v1` |
| 找不到模型 | 目录 ID、账户权限与模型线路 |
| 每条数据输入相同 | 表达式引用、循环范围和子节点行为 |
| 文本正常、Agent 失败 | 原生工具调用及工具结果是否完整 |
| 费用异常 | 一个工作流实际发出了多少次模型调用 |

调试时限制重试。节点重试、工作流重试与队列重新投递可能叠加；工单状态和下游动作去重仍需应用处理。

## 用工单完成情况决定是否迁移

确认付费候选型号的价格后，使用同一组样本比较合格分类数、人工复核数、总费用与完成时间。便宜的 token 单价不能抵消大量人工返工。

在[费用计算器](/tools/api-cost-calculator)中计入每次执行的全部模型调用，按[快速开始](/docs/quickstart)建立隔离测试。只有工单关联和下游动作都正确，才扩大流量。

## 常见问题

### n8n 要打开 Responses API 吗？

只有目标线路支持工作流需要的 Responses 功能时才打开。本文 Chat Completions 示例保持关闭，并核对实际请求地址。

### 为什么每条数据的模型输入相同？

检查子节点表达式和循环范围。n8n 文档说明子节点可能始终读取第一条输入，模型本身正常也会重复处理相同内容。

### 免费调用成功就能用 Agent 吗？

不能。它只验证本次文本请求。工具调用、具体付费模型、多条数据和工作流总费用都需要分别验证。

## 参考的一手资料

_本文最近复核 2026-09-29_

1. [n8n OpenAI Chat Model](https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.lmchatopenai)
2. [n8n OpenAI credentials](https://docs.n8n.io/integrations/builtin/credentials/openai)

## 继续阅读

- [OpenAI 兼容 API 迁移清单](https://keeprouter.com/zh/blog/openai-compatible-api-migration-checklist.md)
- [LLM 工具调用：实现完整的请求与结果循环](https://keeprouter.com/zh/blog/llm-tool-calling-loop.md)
- [quickstart](https://keeprouter.com/docs/quickstart.md)
- [Dify 自定义模型：接入 OpenAI 兼容 API](https://keeprouter.com/zh/blog/dify-openai-compatible-model.md)

## 用一条小请求试用接入配置

按步骤设置，把密钥保留在服务端，并检查返回的答案与用量。

[打开接入指南](https://keeprouter.com/docs/quickstart)

[创建 Key，测试免费模型](https://keeprouter.com/login?returnTo=%2Fconsole%2Fkeys%3Fmodel%3Dfree)

免费测试使用 free 模型；其他付费型号需要足够预付额度。

[全部文章](https://keeprouter.com/zh/blog.md) · [模型与价格](https://keeprouter.com/models.md)
