n8n 接入 OpenAI 兼容 API:配置与工作流排障
从一个可检查的分类工作流开始,配置 n8n 的 OpenAI 兼容 API,区分端点、凭证和多条数据映射问题,再决定是否启用 Agent 工具。
发布 2026-09-29 · 更新 2026-09-29 · KeepRouter Editorial · 5 分钟阅读

在 n8n 中接入 OpenAI 兼容服务,需要填写该服务的基础地址、API Key 和准确模型 ID。先跑通一条 Chat Completions 文本请求,再验证完整工作流;只有模型与线路支持相应工具协议时,才把它接到 AI Agent。凭证验证成功并不代表 Agent、记忆或批量处理都正常。
以客服工单分类为例,最先要确认的是“正确标签对应正确工单”。不用一开始就接上发送邮件、改数据库等动作。
先选择能看清问题的节点
n8n 模型节点文档区分 Chat Completions 与 Responses API。针对只支持前者的线路,关闭 Use Responses API;更换基础地址不会自动提供 OpenAI 的全部托管工具。
| 节点 | 适合的起点 | 检查重点 |
|---|---|---|
| HTTP Request | 观察准确的请求与响应 | 状态码、返回体、数据映射 |
| Basic LLM Chain + Chat Model | 根据提示词转换文本 | 模型、变量和最终输出 |
| AI Agent + Chat Model | 选择并调用业务工具 | 工具参数、结果与停止条件 |
HTTP Request 适合先排除隐藏的提示词拼接。密钥放进 n8n 的凭证管理,按官方凭证说明管理,不写进导出的工作流 JSON。
先发一条能解释的请求
使用 HTTP Request 时,方法为 POST,完整地址为 https://keeprouter.com/v1/chat/completions。选择 JSON 请求体,并通过保存的 Header Auth 凭证设置 Authorization bearer 值。以下内容不含密钥,free 仅用于连接检查。
{
"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 从实时目录复制,不沿用其他 Router 的前缀。
两条工单比两百条更适合发现映射错误
准备包含 ticket_id 和 text 的两条不同数据。工单 ID 由程序保存,模型只输出标签,之后由程序关联。不要依靠模型重新生成 ID。
n8n 有一个容易忽略的细节:模型子节点中的表达式可能始终读取第一条输入。两条工单得到相同结果时,先查看实际进入提示词的文本,再判断模型质量。需要时用逐项循环,并把与当前条目相关的提示词映射放在合适的主节点。
可用 12 条合成工单做起步样本:账单、访问、模糊问题各四条。这只是测试设计,不是准确率证明。检查关联关系、模糊工单是否进入人工审核,以及再次执行会不会重复创建下游任务。
沿着失败边界排查
| 现象 | 先检查 |
|---|---|
| 401 | 该节点使用的凭证是否属于目标服务 |
| 404 | 完整 URL 与基础地址是否混用,是否重复 /v1 |
| 找不到模型 | 目录 ID、账户权限与模型线路 |
| 每条数据输入相同 | 表达式引用、循环范围和子节点行为 |
| 文本正常、Agent 失败 | 原生工具调用及工具结果是否完整 |
| 费用异常 | 一个工作流实际发出了多少次模型调用 |
调试时限制重试。节点重试、工作流重试与队列重新投递可能叠加;工单状态和下游动作去重仍需应用处理。
用工单完成情况决定是否迁移
确认付费候选型号的价格后,使用同一组样本比较合格分类数、人工复核数、总费用与完成时间。便宜的 token 单价不能抵消大量人工返工。
在费用计算器中计入每次执行的全部模型调用,按快速开始建立隔离测试。只有工单关联和下游动作都正确,才扩大流量。
常见问题
n8n 要打开 Responses API 吗?
只有目标线路支持工作流需要的 Responses 功能时才打开。本文 Chat Completions 示例保持关闭,并核对实际请求地址。
为什么每条数据的模型输入相同?
检查子节点表达式和循环范围。n8n 文档说明子节点可能始终读取第一条输入,模型本身正常也会重复处理相同内容。
免费调用成功就能用 Agent 吗?
不能。它只验证本次文本请求。工具调用、具体付费模型、多条数据和工作流总费用都需要分别验证。
参考的一手资料
本文最近复核 2026-09-29