Generative AI API Platform

Cline 接入 Dify:OpenAI 兼容接口配置与 404 排查

更新于 2026-11-02 · muapi.cyou

简答:Cline 不能直接把 Dify 原生应用 API 当作普通 OpenAI 模型接口使用;更稳妥的做法是在 Dify 中创建 OpenAI Compatible Dify App 端点,再把生成的完整 Chat Completions 地址、端点密钥填入 Cline 的 OpenAI Compatible Provider。先用 curl 验证接口,再在 Cline 中填写模型字段并测试连接。

定义:Cline 接入 Dify,指通过 Dify 的 OpenAI 兼容应用端点,让 Cline 以兼容 Chat Completions 的方式调用一个已发布的 Dify 应用。

先看结论:Cline 与 Dify 应该怎样连接

如果你的目标是让 Cline 调用 Dify 中已经配置好的聊天应用,优先选择 Dify OpenAI Compatible Dify App 插件,而不是把 Dify 原生应用 API 地址直接填进 Cline。Dify 官方插件说明,该兼容端点面向 Chat Completions,支持 Bearer API Key,以及流式和非流式请求;当前插件说明同时写明,/models 和 /embeddings 不在支持范围内,模型字段会被忽略,响应中的模型名也由插件固定处理。详情可查看 Dify OpenAI Compatible 插件说明。

连接方式适合做什么Cline 是否可直接使用需要核对的内容
Dify 原生 Chat 应用 API由脚本、后端或自定义客户端调用 Dify 应用不能直接按 OpenAI Compatible Provider 使用应用类型、原生 API 路径、应用密钥和请求字段
Dify 工作流 API调用工作流输入、输出和执行状态不能直接当作普通聊天模型端点工作流是否发布、输入变量、blocking 或 streaming 模式
Dify OpenAI Compatible Dify App让 OpenAI 兼容客户端调用一个已发布的 Dify 应用适合 Cline 的 OpenAI Compatible Provider插件端点、插件 API Key、应用类型和端点路径
MCP 服务器让 Cline 使用外部工具或数据源取决于你使用的 Dify MCP 服务实现服务端来源、权限、传输方式、工具列表和版本兼容性

最短配置路径:在 Dify 发布并确认应用可用 → 安装并配置 OpenAI Compatible Dify App 插件 → 创建端点并复制插件生成的完整地址 → 在 Cline 选择 OpenAI Compatible → 填写端点地址、端点密钥和任意符合界面要求的模型字段 → 先用最小请求验证。

准备条件与安全边界

  1. 准备一个可登录的 Dify 云端或自托管实例,并确认目标应用已经创建、发布且可以在 Dify 内部正常运行。
  2. 准备当前版本的 Cline。由于 Cline 的设置菜单和字段名称可能随安装端变化,本文只使用其官方 OpenAI Compatible 配置中的通用字段:Provider、Base URL、API Key 和 Model ID。具体界面以本机当前版本为准。
  3. 确认你要调用的是聊天应用,而不是只提供工作流输入输出的应用。Dify 官方 OpenAI 兼容插件说明中,聊天流、聊天机器人、Agent 和文本生成类应用属于可配置范围,但具体支持情况仍应以插件当前说明和你安装的版本为准。
  4. 不要把 Dify API Key 或兼容端点密钥提交到代码仓库、截图、公开日志或前端代码。测试时使用环境变量,日志只保留 HTTP 状态码、请求 ID 或脱敏后的端点名称。

这里要特别区分两类密钥:Dify 原生应用 API 使用的应用密钥,和 OpenAI Compatible Dify App 插件中为兼容端点设置的 API Key。两者不是同一个配置项。为了避免出现“密钥看起来正确但始终 401”的情况,先确认 Cline 使用的是插件端点对应的密钥。

Dify 端配置:创建 OpenAI 兼容应用端点

  1. 在 Dify 中打开目标应用,先确认应用已经发布。若应用仍处于草稿状态,先完成发布并在 Dify 内部测试一次。
  2. 进入 Dify 的插件管理位置,安装或启用 OpenAI Compatible Dify App。插件名称、入口位置和权限要求可能随 Dify 版本变化,找不到时以当前 Dify 控制台搜索结果和插件文档为准。
  3. 创建一个新的兼容端点,填写端点名称、API Key、目标 App 和 Memory Mode。官方插件说明列出的 Memory Mode 包括“Last User Message”和“All Messages”。如果你希望插件把之前的消息一并传给应用,才选择包含历史消息的模式;否则优先从最小上下文开始排查。
  4. 保存后复制插件生成的完整端点地址。不要自行猜测是否需要追加路径,也不要把 Dify 原生 API 的路径与这个兼容端点拼接在一起。插件会为每个应用生成独立的 Chat Completions 地址,实际路径可能包含应用端点标识。
  5. 记录三项信息:完整端点地址、该端点对应的 API Key、Dify 中绑定的应用名称。后续 Cline 配置和 404 排查都只围绕这三项展开。

官方插件 README 明确说明,该扩展只提供 Chat Completions 端点,不提供 /models 和 /embeddings。因此,Cline 如果在连接验证阶段自动请求模型列表,或者某个功能依赖 embeddings,应先确认当前 Cline 配置流程是否允许跳过模型列表探测;不要据此断定 Dify 应用本身不可用。

另外,Dify 的原生工作流接口是另一套调用方式。Dify 的服务 API 代码显示,工作流运行接口会根据 response_mode 返回阻塞结果或流式事件,并且要求应用类型与工作流路由匹配。它不等同于 OpenAI Compatible Dify App 的 Chat Completions 端点,因此不要把工作流接口路径直接填到 Cline 的模型提供商配置中。参考 Dify 工作流服务 API 实现。

Cline 中的最小配置方法

Cline 官方 OpenAI Compatible 配置要求重点核对 Base URL、API Key 和 Model ID,并提醒 Base URL 必须使用服务商提供的兼容接口地址,而不是默认套用其他平台的地址。参考 Cline OpenAI Compatible 配置说明。

  1. 打开 Cline 设置,找到模型提供商或 API Provider 设置。
  2. Provider 选择 OpenAI Compatible。不要选择官方 OpenAI、Anthropic 或其他协议类型。
  3. Base URL 填写 Dify 插件生成的完整端点地址,或者按照 Cline 当前字段说明填写它要求的基础地址。这里不能凭经验追加 /v1、/chat/completions 或其他路径;以插件复制出来的端点和 Cline 当前字段说明为准。
  4. API Key 填写 OpenAI Compatible Dify App 端点创建时设置的密钥,而不是随意替换成 Dify 控制台中的其他密钥。
  5. Model ID 填一个符合 Cline 当前表单校验要求的值。根据 Dify 官方插件说明,插件不会使用这个字段选择 Dify 内部模型,Dify 应用实际使用的模型由应用自身配置决定。若 Cline 对模型字段有格式校验,使用一个普通的非敏感标识即可;不要把它误认为 Dify 内部模型 ID。
  6. 保存后执行连接测试。若界面支持 Verify 或类似按钮,先使用它;若验证失败,立即查看响应体,不要连续更换模型名。

成功判定不应只看“保存成功”。更可靠的判断是:Cline 能发出一次最小文本请求,Dify 应用收到请求并返回文本,响应不是 401、403、404 或 429,并且没有因为流式格式无法解析而中断。如果 Cline 显示连接成功但发送任务时失败,继续检查实际请求路径和响应体。

先用 curl 验证端点,再进入 Cline

用命令行验证可以把 Cline 界面因素排除掉。下面的请求只发送一条无敏感信息的测试消息;将环境变量替换为你从 Dify 插件复制的真实值,不要把密钥直接写进 shell 历史或文章中。

export DIFY_OPENAI_ENDPOINT='从 Dify OpenAI 兼容插件复制的完整端点'
export DIFY_OPENAI_KEY='该兼容端点创建时设置的密钥'

curl -i "$DIFY_OPENAI_ENDPOINT" \
  -H "Authorization: Bearer $DIFY_OPENAI_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "dify-app-test",
    "messages": [
      {"role": "user", "content": "请只回复 OK"}
    ],
    "stream": false
  }'

这是一个接口连通性测试,不是 Dify 原生 API 的通用请求模板。若返回 200 并包含可读的助手内容,说明端点、鉴权和基本 Chat Completions 请求已经跑通。若响应是 JSON 错误,保留状态码和错误字段;不要只根据 Cline 的“请求失败”提示判断原因。

如果你想验证流式输出,再把 stream 改为 true,并确认终端能够看到持续返回的事件数据。流式测试应放在非流式请求成功之后,因为流式失败可能来自客户端解析、代理缓冲或服务端事件格式,而不一定是密钥错误。

404、401、403、无响应与工具调用失败排查表

现象优先检查处理方法
401 Unauthorized密钥类型、Bearer 头、密钥是否复制完整确认使用的是兼容端点的 API Key;重新复制并用 curl 最小请求验证,不要先更换模型。
403 Forbidden账号权限、工作区权限、应用发布状态确认当前账号有权使用插件、端点和目标应用;检查自托管实例的访问控制或反向代理规则。
404 Not Found最终 URL、端点路径、是否混用了原生 API 路径把 Cline 中的 Base URL 与 Dify 插件复制的完整端点逐字符对比;不要手动追加或删除 /v1 和 /chat/completions。
模型不存在或模型错误Cline 的 Model 字段与插件行为先确认 Dify 兼容插件说明中的模型字段处理方式。插件端点不以模型字段选择 Dify 内部模型,应回到 Dify 应用配置检查实际模型供应商和模型权限。
请求成功但 Cline 无输出响应体格式、流式开关、客户端协议解析先用 stream:false 的 curl 请求确认有文本,再在 Cline 中关闭或重新测试流式输出。
工具调用失败Dify 应用类型、工具权限、Cline 是否把请求当作普通聊天先验证纯文本对话。工具调用不是普通文本请求的必然能力,需分别确认 Dify 应用、模型和兼容层是否支持对应字段。
上下文过长Memory Mode、Cline 上下文窗口和历史消息数量先选择较小的历史范围或清空会话测试,再根据 Cline 当前模型配置和 Dify 应用上下文限制调整。

排查顺序建议固定为:凭据 → 最终 URL 和路径 → 模型字段 → 权限与应用状态 → curl 最小请求 → 响应体和日志。不要在同一次排查里同时更换端点、密钥、模型和流式设置,否则很难知道是哪项变化解决了问题。

OpenAI 兼容接口与 MCP:什么时候不要混用

Cline 官方文档将 MCP 定义为连接外部 API、工具和数据源的扩展方式,并支持本地服务器或远程服务器。MCP 的目标是让 Cline 获得工具能力,不是把一个普通聊天端点伪装成模型。具体可参考 Cline MCP 配置说明。

因此,若你只是想让 Cline 使用 Dify 应用进行文本对话,先使用 OpenAI 兼容端点,配置链路更短,也更容易用 curl 验证。若你需要让 Cline 调用 Dify 的工作流、知识库、应用管理或其他工具能力,才考虑 MCP;但这时必须单独核实 MCP 服务实现是否可信、支持哪些工具、使用什么认证方式、是否兼容你的 Dify 版本,以及是否会暴露高权限操作。

需求优先方案原因
让 Cline 发送普通聊天消息OpenAI 兼容端点配置字段直接对应 Base URL、API Key 和 Model。
调用一个已发布的 Dify 聊天应用OpenAI Compatible Dify App插件为应用提供 Chat Completions 兼容入口。
执行复杂工作流并读取结构化结果Dify 原生工作流 API 或经过核验的工具服务工作流有自己的输入、输出、运行状态和流式事件模型。
让 Cline 获得外部工具MCPMCP 面向工具和数据源,不等同于模型 API。

本文不把某个第三方 Dify MCP 项目当作官方方案,也不提供未经核验的第三方默认域名或固定版本配置。使用外部 MCP 服务前,应先阅读其源代码、权限说明、发布记录和 Dify 兼容性说明。

配置完成后的自查清单

如果以上项目都通过,Cline 仍然失败,下一步应记录脱敏后的最终请求路径、HTTP 状态码、响应错误字段、是否流式以及 Dify 应用日志中的请求时间。不要只记录“Cline 连接不上”,因为这个描述无法区分认证、路径、应用权限和响应解析问题。

常见问题

Cline 可以直接填写 Dify 的 API 地址吗?

通常不能直接把 Dify 原生应用 API 当作 Cline 的 OpenAI Compatible Provider。更稳妥的方式是使用 Dify 的 OpenAI Compatible Dify App 插件生成兼容端点,再填写该端点对应的地址和密钥。

Dify OpenAI 兼容端点的 Base URL 要不要加 /v1?

不要凭经验追加或删除 /v1。Dify 插件会生成应用专用的兼容端点,Cline 的字段也可能要求基础地址或完整端点。以插件复制出的地址和 Cline 当前界面说明为准,并用最终请求 URL 排查 404。

Cline 返回 404,优先改模型名还是改地址?

优先检查最终 URL 和路径。常见原因是把 Dify 原生 API 路径、工作流路径和 OpenAI 兼容端点混在一起,或手动追加了不适用的路径。模型字段应在确认端点可访问后再检查。

为什么 Cline 里的模型名和 Dify 中的模型名不一致?

OpenAI Compatible Dify App 插件说明中,模型字段不是用来选择 Dify 内部模型的,Dify 应用实际使用的模型由应用配置决定。因此 Cline 的 Model 字段主要用于满足兼容客户端的请求格式或界面校验,实际模型应回到 Dify 应用中核对。

Dify 工作流能不能直接接入 Cline?

不能把工作流 API 简单当作普通聊天模型接口。工作流接口有自己的输入变量、运行状态和 blocking 或 streaming 响应模式。如果目标是让 Cline 调用工作流工具,应单独评估经过核验的 MCP 或工具服务;如果只是文本聊天,优先使用 OpenAI 兼容应用端点。

Cline 能连接 Dify 后,为什么工具调用仍然失败?

接口连通只证明基本请求成功,不代表工具调用字段、Dify 应用工具权限、模型能力和兼容层都支持。先用纯文本请求验证,再分别检查 Dify 应用类型、工具启用状态、模型能力和 Cline 当前协议设置。

相关阅读

参考资料

  1. Cline OpenAI Compatible Provider 配置说明
  2. Dify OpenAI Compatible Dify App 插件说明
  3. Dify 工作流服务 API 实现
  4. Cline MCP 配置说明