{
  "version": 1,
  "updated_at": "2026-10-11",
  "scope": "Documentation configuration recipes; not an authenticated compatibility certification",
  "base_origin": "https://xcmapi.org",
  "secrets": "Always use the user own private credential store or environment variables",
  "clients": [
    {
      "id": "codex",
      "name": "Codex",
      "kind": "OpenAI 编程助手",
      "protocol": "OpenAI Responses",
      "base": "https://xcmapi.org/v1",
      "entry": "CC Switch → 左侧 Codex → 添加供应商 → 自定义",
      "steps": [
        "找到 Codex 的配置入口：先安装并打开 Codex 与 CC Switch。在 CC Switch 左侧选 Codex，再点右上角「添加供应商」。不要在 Claude Code 页填 Codex 配置。",
        "按对照填写 3 项：供应商名称可写「鸡出没API」。基础地址填写下面的地址，Key 填你在本站创建的私有 Key。模型填写当前 Key 支持 Responses 和工具调用的完整 ID。",
        "启用后重新打开 Codex：保存供应商并启用。彻底退出旧 Codex 窗口或终端，再从相同环境重新打开。在一个空的测试文件夹里开始对话。",
        "发第一条消息：发送「只回复 OK，不修改文件，不运行命令」。收到文字后，再单独测试读取测试文件。只显示模型名称不算成功。"
      ],
      "limits": "本页配置面向 Codex CLI 及读取该配置的客户端。桌面产品与组织策略会随版本变化，以安装版本的自定义服务商入口为准。；官方当前配置参考仅列出 wire_api=responses；聊天接口能用不能证明 Codex 可用。；截图是官方软件界面参考；本轮未用真实 Key 完成 Codex 调用。",
      "sourceUrl": "https://learn.chatgpt.com/docs/config-file/config-reference",
      "verification": "官方配置资料与真实界面参考已核对；本轮未逐客户端实机验收",
      "visual_guide": true,
      "details": {
        "id": "codex",
        "name": "Codex",
        "kind": "OpenAI 编程助手",
        "protocol": "OpenAI Responses",
        "base_url": "https://xcmapi.org/v1",
        "official_url": "https://developers.openai.com/codex",
        "docs_url": "https://learn.chatgpt.com/docs/config-file/config-reference",
        "entry": "CC Switch → 左侧 Codex → 添加供应商 → 自定义",
        "short": "先用 CC Switch 配置，再打开 Codex。",
        "steps": [
          {
            "title": "找到 Codex 的配置入口",
            "body": "先安装并打开 Codex 与 CC Switch。在 CC Switch 左侧选 Codex，再点右上角「添加供应商」。不要在 Claude Code 页填 Codex 配置。"
          },
          {
            "title": "按对照填写 3 项",
            "body": "供应商名称可写「鸡出没API」。基础地址填写下面的地址，Key 填你在本站创建的私有 Key。模型填写当前 Key 支持 Responses 和工具调用的完整 ID。",
            "fields": [
              {
                "label": "基础地址 Base URL",
                "value": "https://xcmapi.org/v1"
              },
              {
                "label": "API Key",
                "value": "在软件私有输入框中粘贴自己的 Key"
              },
              {
                "label": "模型 ID",
                "value": "从当前 Key 的模型目录复制完整 ID"
              }
            ]
          },
          {
            "title": "启用后重新打开 Codex",
            "body": "保存供应商并启用。彻底退出旧 Codex 窗口或终端，再从相同环境重新打开。在一个空的测试文件夹里开始对话。"
          },
          {
            "title": "发第一条消息",
            "body": "发送「只回复 OK，不修改文件，不运行命令」。收到文字后，再单独测试读取测试文件。只显示模型名称不算成功。"
          }
        ],
        "success": "新对话实际返回 OK；接入方用量记录能找到这次请求。若要编程，继续单独验证一次文件读取或工具调用。",
        "troubleshooting": [
          "404：核对最终请求是 /v1/responses，不能用仅支持聊天的端点代替。",
          "提示缺少 XCM_API_KEY：按手动模板设置变量后完全重启软件；CC Switch 配置则检查所选供应商是否已启用。",
          "能聊天却不能读文件：核对模型、服务商对工具调用的支持。"
        ],
        "limitations": [
          "本页配置面向 Codex CLI 及读取该配置的客户端。桌面产品与组织策略会随版本变化，以安装版本的自定义服务商入口为准。",
          "官方当前配置参考仅列出 wire_api=responses；聊天接口能用不能证明 Codex 可用。",
          "截图是官方软件界面参考；本轮未用真实 Key 完成 Codex 调用。"
        ],
        "images": [
          {
            "file": "software-main-codex.webp",
            "caption": "Codex 官方界面展示（局部）；用于辨认软件。连接配置请看上方 CC Switch 编号图，桌面端是否读取该配置以安装版本为准。",
            "kind": "official-demo-interface",
            "url": "https://openai.com/codex/",
            "image_url": "https://images.ctfassets.net/kftzwdyauwt9/5WPUgyRyzao1GZ5IOblaGJ/57745e960c68abbd3724e2d2f46d1f90/ChatGPT.png"
          }
        ],
        "evidence": [
          {
            "url": "https://learn.chatgpt.com/docs/config-file/config-reference",
            "claim": "自定义服务商 base_url、env_key、model_provider、wire_api=responses。",
            "checked_at": "2026-10-11"
          },
          {
            "url": "https://openai.com/codex/",
            "claim": "Codex 官方产品页面的局部界面展示；不是 CLI 截图或本站实测。",
            "checked_at": "2026-10-11"
          }
        ],
        "manual": "codex"
      },
      "source": "https://learn.chatgpt.com/docs/config-file/config-reference"
    },
    {
      "id": "claude-code",
      "name": "Claude Code",
      "kind": "Anthropic 编程助手",
      "protocol": "Anthropic Messages",
      "base": "https://xcmapi.org",
      "entry": "CC Switch → 左侧 Claude Code → 添加供应商",
      "steps": [
        "确认打开的是 Claude Code：这里指可连接网关的 Claude Code 编程工具。普通 Claude 网页聊天的输入框不是 API 配置入口。安装后打开 CC Switch，选左侧 Claude Code。",
        "新增并填写供应商：点击「添加供应商」，用下面 3 项配置。若从本站令牌行使用「导入到 CCS」，导入后仍需核对软件、地址、模型和这把 Key 的分组。",
        "启用供应商，重新启动：保存、启用，再完全退出并重新打开 Claude Code。终端输入 claude 进入；已有配置不要同时再叠加另一套鉴权变量。",
        "检查连接并发送消息：先输入 /status，核对 Anthropic base URL 指向本站且鉴权方式正确；再发「只回复 OK，不修改文件，不运行命令」。"
      ],
      "limits": "本页以 Claude Code 的网关能力为准，不将 Claude 网页聊天当作相同入口。；图中是官方演示，不能当作本站 API 已调用成功的证据。；本轮未实机验证客户端各版本的网关兼容性。",
      "sourceUrl": "https://code.claude.com/docs/en/llm-gateway-connect",
      "verification": "官方配置资料与真实界面参考已核对；本轮未逐客户端实机验收",
      "visual_guide": true,
      "details": {
        "id": "claude-code",
        "name": "Claude Code",
        "kind": "Anthropic 编程助手",
        "protocol": "Anthropic Messages",
        "base_url": "https://xcmapi.org",
        "official_url": "https://code.claude.com/docs/en/overview",
        "docs_url": "https://code.claude.com/docs/en/llm-gateway-connect",
        "entry": "CC Switch → 左侧 Claude Code → 添加供应商",
        "short": "用 Claude Code 页配置，地址不加 /v1。",
        "steps": [
          {
            "title": "确认打开的是 Claude Code",
            "body": "这里指可连接网关的 Claude Code 编程工具。普通 Claude 网页聊天的输入框不是 API 配置入口。安装后打开 CC Switch，选左侧 Claude Code。"
          },
          {
            "title": "新增并填写供应商",
            "body": "点击「添加供应商」，用下面 3 项配置。若从本站令牌行使用「导入到 CCS」，导入后仍需核对软件、地址、模型和这把 Key 的分组。",
            "fields": [
              {
                "label": "基础地址 Base URL",
                "value": "https://xcmapi.org"
              },
              {
                "label": "API Key / Auth Token",
                "value": "在软件私有输入框中粘贴自己的 Key"
              },
              {
                "label": "模型 ID",
                "value": "选择支持 Anthropic Messages 的完整模型 ID"
              }
            ]
          },
          {
            "title": "启用供应商，重新启动",
            "body": "保存、启用，再完全退出并重新打开 Claude Code。终端输入 claude 进入；已有配置不要同时再叠加另一套鉴权变量。"
          },
          {
            "title": "检查连接并发送消息",
            "body": "先输入 /status，核对 Anthropic base URL 指向本站且鉴权方式正确；再发「只回复 OK，不修改文件，不运行命令」。"
          }
        ],
        "success": "状态页显示配置的网关地址，且实际收到 OK。之后再单独验证一个无破坏性的工具操作。",
        "troubleshooting": [
          "仍显示原账号登录：检查是否启用了供应商，以及旧终端是否完全退出。",
          "404：基础地址填根域名，避免最终路径变成 /v1/v1/messages。",
          "401：只保留当前配置要求的一种凭据；检查复制时有没有空格或换行。"
        ],
        "limitations": [
          "本页以 Claude Code 的网关能力为准，不将 Claude 网页聊天当作相同入口。",
          "图中是官方演示，不能当作本站 API 已调用成功的证据。",
          "本轮未实机验证客户端各版本的网关兼容性。"
        ],
        "images": [
          {
            "file": "software-main-claude-code.webp",
            "caption": "Claude Code 官方 VS Code 扩展界面展示；不是终端画面。连接配置请看上方 CC Switch 编号图，图中示例项目无需照抄。",
            "kind": "official-demo-vscode-interface",
            "url": "https://code.claude.com/docs/en/vs-code",
            "image_url": "https://mintcdn.com/claude-code/-YhHHmtSxwr7W8gy/images/vs-code-extension-interface.jpg"
          }
        ],
        "evidence": [
          {
            "url": "https://code.claude.com/docs/en/llm-gateway-connect",
            "claim": "ANTHROPIC_BASE_URL、网关凭据与 /status 核验方法。",
            "checked_at": "2026-10-11"
          },
          {
            "url": "https://code.claude.com/docs/en/vs-code",
            "claim": "Claude Code 官方 VS Code 扩展界面；不是终端 CLI 或本站调用结果。",
            "checked_at": "2026-10-11"
          }
        ],
        "manual": "claude-code"
      },
      "source": "https://code.claude.com/docs/en/llm-gateway-connect"
    },
    {
      "id": "hermes-agent",
      "name": "Hermes Agent",
      "kind": "开源智能体",
      "protocol": "本指南采用 OpenAI Chat Completions。官方自定义端点说明要求服务实现 /v1/chat/completions；不要把其他协议直接填进这一方案。",
      "base": "https://xcmapi.org/v1",
      "entry": "已安装 Hermes 时，先退出正在进行的聊天，在终端运行 hermes model → Custom endpoint (self-hosted / VLLM / etc.)。Web UI 的 Models → Change 用于选择已经配置好的提供商。",
      "steps": [
        "打开自定义端点向导：在运行 Hermes 的终端退出当前会话，执行 hermes model，选择 Custom endpoint。聊天内 /model 仅切换已有配置，不能替代新建提供商。",
        "填入地址和自己的密钥：基础 URL 填本站 /v1 地址。API Key 在自己的机器上填写，不发给别人。Hermes 官方默认示例支持在配置中引用环境变量，推荐把密钥与普通配置分开。",
        "选择准确模型并保存：Model name 填 API 控制台实际提供的模型 ID；向导保存到 Hermes 的 config.yaml。若使用图中的 Web UI，在提供商列表选已配置来源，再选模型并点 Switch；该操作对新会话生效。",
        "新建会话发一句测试：重新开始会话，确认当前模型后发送“只回复：连接成功。不要调用工具、不要读取文件。”。能回复只证明基础文本通道可用；工具、图片和长上下文仍需分别验证。"
      ],
      "limits": "Hermes 截图展示官方模型选择器，原图左下角可见 v0.11.0；图片不是当前已安装版本证明，也不是自定义 URL/API Key 表单。；官方仓库固定提交提供可追溯证据，不等于每位用户安装的稳定版具有相同界面。；本轮未运行 Hermes、未验证本站模型、流式输出、工具调用或辅助模型路由。；辅助模型可能有独立的路由/密钥需求；主模型连接成功并不意味着辅助能力均可用。",
      "sourceUrl": "https://hermes-agent.nousresearch.com/docs/integrations/providers",
      "verification": "官方配置资料与真实界面参考已核对；本轮未逐客户端实机验收",
      "visual_guide": true,
      "details": {
        "id": "hermes-agent",
        "name": "Hermes Agent",
        "official_url": "https://hermes-agent.nousresearch.com/",
        "docs_url": "https://hermes-agent.nousresearch.com/docs/integrations/providers",
        "project_identity": "NousResearch/hermes-agent 开源智能体；本卡聚焦 Hermes CLI 自定义端点，截图来自同项目 Web UI。",
        "support_status": "官方文档确认支持 OpenAI 兼容第三方端点；本站密钥、模型与工具调用未实测。",
        "protocol": "本指南采用 OpenAI Chat Completions。官方自定义端点说明要求服务实现 /v1/chat/completions；不要把其他协议直接填进这一方案。",
        "base_url": "https://xcmapi.org/v1",
        "base_url_note": "本站 API 填写示例，不是 Hermes 官方 API；这里只填基础 URL，不追加 /chat/completions。",
        "entry": "已安装 Hermes 时，先退出正在进行的聊天，在终端运行 hermes model → Custom endpoint (self-hosted / VLLM / etc.)。Web UI 的 Models → Change 用于选择已经配置好的提供商。",
        "steps": [
          {
            "title": "① 打开自定义端点向导",
            "body": "在运行 Hermes 的终端退出当前会话，执行 hermes model，选择 Custom endpoint。聊天内 /model 仅切换已有配置，不能替代新建提供商。",
            "fields": [
              {
                "label": "命令",
                "name": "命令",
                "value": "hermes model",
                "note": ""
              },
              {
                "label": "提供商",
                "name": "提供商",
                "value": "Custom endpoint (self-hosted / VLLM / etc.)",
                "note": ""
              }
            ]
          },
          {
            "title": "② 填入地址和自己的密钥",
            "body": "基础 URL 填本站 /v1 地址。API Key 在自己的机器上填写，不发给别人。Hermes 官方默认示例支持在配置中引用环境变量，推荐把密钥与普通配置分开。",
            "fields": [
              {
                "label": "API base URL",
                "name": "API base URL",
                "value": "https://xcmapi.org/v1",
                "note": "本站示例；不追加 /chat/completions"
              },
              {
                "label": "API key",
                "name": "API key",
                "value": "你自己的 API Key",
                "note": "不使用软件订阅登录代替本站 API Key"
              }
            ]
          },
          {
            "title": "③ 选择准确模型并保存",
            "body": "Model name 填 API 控制台实际提供的模型 ID；向导保存到 Hermes 的 config.yaml。若使用图中的 Web UI，在提供商列表选已配置来源，再选模型并点 Switch；该操作对新会话生效。",
            "fields": [
              {
                "label": "Model name",
                "name": "Model name",
                "value": "<你的可用模型ID>",
                "note": ""
              },
              {
                "label": "provider",
                "name": "provider",
                "value": "custom",
                "note": ""
              }
            ]
          },
          {
            "title": "④ 新建会话发一句测试",
            "body": "重新开始会话，确认当前模型后发送“只回复：连接成功。不要调用工具、不要读取文件。”。能回复只证明基础文本通道可用；工具、图片和长上下文仍需分别验证。"
          }
        ],
        "config": {
          "files": [
            "~/.hermes/config.yaml",
            "~/.hermes/.env"
          ],
          "environment": [
            "XCM_API_KEY：本文建议的自定义变量名，须由 model.key_env 显式引用；不是软件预置变量。"
          ],
          "example": "model:\n  provider: custom\n  default: <你的可用模型ID>\n  base_url: https://xcmapi.org/v1\n  key_env: XCM_API_KEY\n",
          "notes": [
            "默认路径为官方文档中的用户目录写法；本文不创建这些文件。使用现有 profile/HERMES_HOME 时以当前 profile 实际路径为准。",
            "模型与地址由 config.yaml 管理；不要套用过时的 LLM_MODEL 环境变量方案。",
            "OPENAI_BASE_URL 只适用于 openai-api 提供商；本指南使用 custom，应设置 model.base_url。"
          ]
        },
        "success": "新会话从选定提供商/模型收到文本回复，未出现认证、模型不存在或协议错误。",
        "troubleshooting": [
          {
            "symptom": "没有找到自定义来源或 /model 里没有模型",
            "action": "先退出聊天，用 hermes model 新建端点；已有 Web UI 对话不会自动切换到新默认模型。"
          },
          {
            "symptom": "404 或接口路径重复",
            "action": "本方案基础 URL 为 /v1；不要填成 /v1/chat/completions 再由客户端追加路径。"
          },
          {
            "symptom": "401/403",
            "action": "确认填的是本站 API Key，密钥和地址属于同一服务；不提交密钥截图。"
          },
          {
            "symptom": "文本能回复，工具或图片失败",
            "action": "分别核对模型与端点的工具调用、视觉和上下文能力；不能由普通文本回复推定 agent 全能力通过。"
          }
        ],
        "limitations": [
          "Hermes 截图展示官方模型选择器，原图左下角可见 v0.11.0；图片不是当前已安装版本证明，也不是自定义 URL/API Key 表单。",
          "官方仓库固定提交提供可追溯证据，不等于每位用户安装的稳定版具有相同界面。",
          "本轮未运行 Hermes、未验证本站模型、流式输出、工具调用或辅助模型路由。",
          "辅助模型可能有独立的路由/密钥需求；主模型连接成功并不意味着辅助能力均可用。"
        ],
        "images": [
          {
            "file": "software-extra-hermes-annotated.png",
            "url": "https://raw.githubusercontent.com/NousResearch/hermes-agent/0aa764feddf00aed631019763ef777d38faf4335/website/static/img/docs/dashboard-models/picker-dialog.png",
            "source_page": "https://github.com/NousResearch/hermes-agent/blob/0aa764feddf00aed631019763ef777d38faf4335/website/static/img/docs/dashboard-models/picker-dialog.png",
            "sha256": "d33a0a2f7fae23c2eb4a5e7c86885a9071c4965743e6496c245b78a213abec8c",
            "bytes": 392872,
            "width": 2036,
            "height": 1180,
            "kind": "official-interface-reference-annotated",
            "caption": "Hermes 官方模型选择器＋①②③④编号与箭头；①是终端向导文字指引，图中没有自定义 URL/API Key 表单。保留官方原图，非本站实测。",
            "source_version": "0aa764feddf00aed631019763ef777d38faf4335",
            "source_date": "2026-10-11T07:47:43Z",
            "source_date_kind": "仓库固定提交日期，不是截图拍摄日期；原图可见 v0.11.0。",
            "generated_at": "2026-10-11T08:30:45.077Z",
            "derived_from": "deploy/docs/assets/guide/software-extra-hermes-model-picker.png",
            "source_sha256": "6d931d69adfdeb4736e66aa077080cae96d6a96edd1df9d59c1d26037d105f28",
            "url_note": "url 指向官方原图；file 指向本地增加编号和箭头后的 PNG，不宣称官方提供此标注版。",
            "annotation": {
              "style": "官方原图保持原像素大小；只添加蓝色编号、指向箭头和外围中文说明",
              "steps": [
                {
                  "number": 1,
                  "target": "终端 hermes model：图外说明"
                },
                {
                  "number": 2,
                  "target": "已配置的提供商列表"
                },
                {
                  "number": 3,
                  "target": "已配置的模型列表"
                },
                {
                  "number": 4,
                  "target": "Switch 按钮和新会话"
                }
              ],
              "original_ui_values_modified": false,
              "source_pixels_preserved_except_numbered_arrows": true,
              "visual_reviewed": true
            },
            "privacy_review": "人工逐图检查：API Key 为占位提示或圆点遮盖，未发现可读真实密钥；无需新增打码。",
            "redactions": []
          },
          {
            "file": "software-extra-hermes-model-picker.png",
            "url": "https://raw.githubusercontent.com/NousResearch/hermes-agent/0aa764feddf00aed631019763ef777d38faf4335/website/static/img/docs/dashboard-models/picker-dialog.png",
            "download_url": "https://api.github.com/repos/NousResearch/hermes-agent/contents/website/static/img/docs/dashboard-models/picker-dialog.png?ref=0aa764feddf00aed631019763ef777d38faf4335",
            "source_page": "https://github.com/NousResearch/hermes-agent/blob/0aa764feddf00aed631019763ef777d38faf4335/website/static/img/docs/dashboard-models/picker-dialog.png",
            "sha256": "6d931d69adfdeb4736e66aa077080cae96d6a96edd1df9d59c1d26037d105f28",
            "bytes": 220829,
            "downloaded_at": "2026-10-11T08:22:42.442Z",
            "kind": "official-interface-reference",
            "caption": "Hermes 官方模型选择器，供切换已配置的提供商/模型；不是自定义端点填写界面，非本站实测。",
            "source_version": "0aa764feddf00aed631019763ef777d38faf4335",
            "source_date": "2026-10-11T07:47:43Z",
            "source_date_kind": "仓库固定提交日期，不是截图拍摄日期；原图可见 v0.11.0。",
            "width": 1280,
            "height": 720,
            "privacy_review": "人工逐图检查：API Key 为占位提示或圆点遮盖，未发现可读真实密钥；无需新增打码。",
            "redactions": []
          }
        ],
        "evidence": [
          {
            "url": "https://github.com/NousResearch/hermes-agent/blob/0aa764feddf00aed631019763ef777d38faf4335/website/docs/integrations/providers.md",
            "title": "官方 Providers 文档：Custom & Self-Hosted LLM Providers",
            "finding": "确认 hermes model 自定义端点向导及 model.provider/default/base_url/key_env；区分聊天内 /model 与终端向导。",
            "checked_at": "2026-10-11T08:26:01.449Z",
            "commit": "0aa764feddf00aed631019763ef777d38faf4335",
            "commit_date": "2026-10-11T07:47:43Z",
            "blob_sha": "17c3a2f62cf4aff51d90a0e691986f83b0351ac7"
          },
          {
            "url": "https://github.com/NousResearch/hermes-agent/blob/0aa764feddf00aed631019763ef777d38faf4335/website/docs/user-guide/configuring-models.md",
            "title": "官方 Configuring Models 文档",
            "finding": "官方真实截图的 Models → Change → Switch 流程，切换默认模型只影响新会话。",
            "checked_at": "2026-10-11T08:26:01.449Z",
            "blob_sha": "cb36a867a7ef02217c7a5ba30400dd641ac01fec"
          },
          {
            "url": "https://github.com/NousResearch/hermes-agent/blob/0aa764feddf00aed631019763ef777d38faf4335/website/docs/user-guide/configuration.md",
            "title": "官方 Configuration 文档",
            "finding": "默认 ~/.hermes/config.yaml 与 ~/.hermes/.env 的配置分工。",
            "checked_at": "2026-10-11T08:26:01.449Z"
          }
        ],
        "kind": "开源智能体",
        "short": "打开自定义端点向导"
      },
      "source": "https://hermes-agent.nousresearch.com/docs/integrations/providers"
    },
    {
      "id": "cursor",
      "name": "Cursor",
      "kind": "代码编辑器",
      "protocol": "当前版本支持的 OpenAI 兼容聊天；按实际请求区分 Responses",
      "base": "https://xcmapi.org/v1",
      "entry": "Cursor Settings → Models → API Keys",
      "steps": [
        "打开 Models 设置：打开 Cursor Settings，进入 Models，找到 API Keys。图是 2025-09 的真实设置画面；你的版本可能改变排布。找不到 API Keys 时，先检查团队管理员是否允许个人 Key。",
        "填写 Key 与本站地址：在 OpenAI API Key 中填自己的 Key 并启用。你的版本提供 Override OpenAI Base URL 时，打开它，将原有地址替换为下方地址。图内旧地址只是软件默认值，不要照抄。",
        "添加模型并在聊天中选择：在 Models 中启用或添加完整模型 ID，回到新聊天，在模型选择器中选刚才的模型。先用普通问答模式，不要直接测试自动改项目。",
        "发消息，按错误定位：发送「只回复 OK，不修改文件」。若版本没有自定义 Base URL 入口，本页不能让该版本直接接入本站；查看官方说明或改用已有兼容入口的软件。"
      ],
      "limits": "官方文档确认自带 Key 入口；任意第三方 Base URL 的支持受具体版本、模型和组织策略影响，不能保证所有功能可用。；官方说明：自定义 Key 随请求经 Cursor 后端完成提示构建，不能把它理解成仅在本机使用。；本轮未实机验证 Cursor 与本站的聊天或 Agent 调用。",
      "sourceUrl": "https://cursor.com/help/models-and-usage/api-keys",
      "verification": "官方配置资料与真实界面参考已核对；本轮未逐客户端实机验收",
      "visual_guide": true,
      "details": {
        "id": "cursor",
        "name": "Cursor",
        "kind": "代码编辑器",
        "protocol": "当前版本支持的 OpenAI 兼容聊天；按实际请求区分 Responses",
        "base_url": "https://xcmapi.org/v1",
        "official_url": "https://cursor.com",
        "docs_url": "https://cursor.com/help/models-and-usage/api-keys",
        "entry": "Cursor Settings → Models → API Keys",
        "short": "进入 Models；版本有自定义地址时再填写。",
        "steps": [
          {
            "title": "打开 Models 设置",
            "body": "打开 Cursor Settings，进入 Models，找到 API Keys。图是 2025-09 的真实设置画面；你的版本可能改变排布。找不到 API Keys 时，先检查团队管理员是否允许个人 Key。"
          },
          {
            "title": "填写 Key 与本站地址",
            "body": "在 OpenAI API Key 中填自己的 Key 并启用。你的版本提供 Override OpenAI Base URL 时，打开它，将原有地址替换为下方地址。图内旧地址只是软件默认值，不要照抄。",
            "fields": [
              {
                "label": "OpenAI Base URL",
                "value": "https://xcmapi.org/v1"
              },
              {
                "label": "OpenAI API Key",
                "value": "在软件私有输入框中粘贴自己的 Key"
              },
              {
                "label": "模型 ID",
                "value": "从当前 Key 的目录选择兼容模型"
              }
            ]
          },
          {
            "title": "添加模型并在聊天中选择",
            "body": "在 Models 中启用或添加完整模型 ID，回到新聊天，在模型选择器中选刚才的模型。先用普通问答模式，不要直接测试自动改项目。"
          },
          {
            "title": "发消息，按错误定位",
            "body": "发送「只回复 OK，不修改文件」。若版本没有自定义 Base URL 入口，本页不能让该版本直接接入本站；查看官方说明或改用已有兼容入口的软件。"
          }
        ],
        "success": "选中目标模型后收到实际回复。自己的 Key 并不覆盖 Cursor 所有功能，Tab 等功能另有产品规则。",
        "troubleshooting": [
          "找不到 API Keys：团队的 Restrict Personal API Keys 设置可能隐藏入口，需管理员确认。",
          "404 或 input/messages 错误：核对当前 Cursor 实际使用的是 Responses 还是聊天协议。",
          "改地址后其他模型失败：先恢复原地址或切回对应供应商，避免全局覆盖影响其他模型。"
        ],
        "limitations": [
          "官方文档确认自带 Key 入口；任意第三方 Base URL 的支持受具体版本、模型和组织策略影响，不能保证所有功能可用。",
          "官方说明：自定义 Key 随请求经 Cursor 后端完成提示构建，不能把它理解成仅在本机使用。",
          "本轮未实机验证 Cursor 与本站的聊天或 Agent 调用。"
        ],
        "images": [
          {
            "file": "software-main-cursor-settings.webp",
            "caption": "Cursor 官方社区真实设置截图（2025-09-17）。图内默认地址需换成本站地址；下图编号说明填写位置。",
            "kind": "official-community-settings",
            "url": "https://forum.cursor.com/t/how-to-use-grok-api-key-with-cursor/133794"
          }
        ],
        "evidence": [
          {
            "url": "https://cursor.com/help/models-and-usage/api-keys",
            "claim": "Models / API Keys 入口、支持范围与 Key 的请求流向。",
            "checked_at": "2026-10-11"
          },
          {
            "url": "https://forum.cursor.com/t/how-to-use-grok-api-key-with-cursor/133794",
            "claim": "历史设置界面，来源为 Cursor 官方社区帖子；不是当前版本兼容承诺。",
            "checked_at": "2026-10-11"
          }
        ]
      },
      "source": "https://cursor.com/help/models-and-usage/api-keys"
    },
    {
      "id": "workbuddy",
      "name": "WorkBuddy",
      "kind": "桌面 AI 工作助手",
      "protocol": "OpenAI Chat Completions；官方表单标注“仅支持 OpenAI 兼容协议 API”。“自定义协议”只是 URL 路径处理开关，不是切换到 Anthropic 的协议选项。",
      "base": "https://xcmapi.org/v1",
      "entry": "WorkBuddy → 设置 → 模型 → 添加模型 → 提供商选择 自定义 / Custom。",
      "steps": [
        "进入模型设置并选 Custom：打开设置里的模型页，点击添加模型，在提供商中选择“自定义 / Custom”。如果安装版本没有这个入口，应先核对版本/发行渠道，不能直接推断支持。",
        "填完整接口地址与密钥：“接口地址”填完整 Chat Completions 地址，“API KEY”填该服务自己的密钥。截图中的 api.example.com 是占位域名，不是要实际调用的地址。",
        "填模型名并核对能力：模型名称填 API 控制台可用的准确 ID。工具调用、图片输入、推理模式只按服务实际能力勾选；基础文本初测先不启用不确定的能力。“自定义协议”默认关闭，只有标准路径处理不适用时才按官方说明开启。",
        "保存并在对话中选中测试：点击保存，回到对话的模型选择器选新建模型，再发送“只回复：连接成功。不要调用工具、不要读取文件。”。先核对文本回复，再单独验收文件/工具等功能。"
      ],
      "limits": "结论对应 2026-10-11 读取的中国站官方文档；未核对所有旧版或海外版的功能一致性。；仅确认 OpenAI Chat Completions；没有证据证明此表单支持 Anthropic Messages 或 OpenAI Responses。；API Key 本地保存不代表请求不离开电脑；自定义模型对话会发到所填第三方服务。；没有安装或运行该软件，没有进行本站鉴权或收费测试。",
      "sourceUrl": "https://www.codebuddy.cn/docs/workbuddy/From-Beginner-to-Expert-Guide/Function-Description/Model",
      "verification": "官方配置资料与真实界面参考已核对；本轮未逐客户端实机验收",
      "visual_guide": true,
      "details": {
        "id": "workbuddy",
        "name": "WorkBuddy",
        "official_url": "https://www.codebuddy.cn/work/",
        "docs_url": "https://www.codebuddy.cn/docs/workbuddy/From-Beginner-to-Expert-Guide/Function-Description/Model",
        "project_identity": "腾讯 CodeBuddy 产品体系的 WorkBuddy 桌面软件；本卡核对中国站 WorkBuddy 模型文档，不套用 CodeBuddy IDE 或 CLI 配置。",
        "support_status": "官方当前文档及真实表单确认支持填写第三方 OpenAI 兼容端点；本卡仅确认 Chat Completions 方案，不确认 Anthropic Messages 或 Responses。",
        "protocol": "OpenAI Chat Completions；官方表单标注“仅支持 OpenAI 兼容协议 API”。“自定义协议”只是 URL 路径处理开关，不是切换到 Anthropic 的协议选项。",
        "base_url": "https://xcmapi.org/v1",
        "base_url_note": "本站 API服务基础地址示例；WorkBuddy 的“接口地址”字段按官方截图填写完整 /v1/chat/completions URL。",
        "entry": "WorkBuddy → 设置 → 模型 → 添加模型 → 提供商选择 自定义 / Custom。",
        "steps": [
          {
            "title": "① 进入模型设置并选 Custom",
            "body": "打开设置里的模型页，点击添加模型，在提供商中选择“自定义 / Custom”。如果安装版本没有这个入口，应先核对版本/发行渠道，不能直接推断支持。",
            "fields": [
              {
                "label": "提供商",
                "name": "提供商",
                "value": "自定义 / Custom",
                "note": ""
              }
            ]
          },
          {
            "title": "② 填完整接口地址与密钥",
            "body": "“接口地址”填完整 Chat Completions 地址，“API KEY”填该服务自己的密钥。截图中的 api.example.com 是占位域名，不是要实际调用的地址。",
            "fields": [
              {
                "label": "接口地址",
                "name": "接口地址",
                "value": "https://xcmapi.org/v1/chat/completions",
                "note": "本站示例，完整路径包含 /v1/chat/completions"
              },
              {
                "label": "API KEY",
                "name": "API KEY",
                "value": "你自己的 API Key",
                "note": ""
              }
            ]
          },
          {
            "title": "③ 填模型名并核对能力",
            "body": "模型名称填 API 控制台可用的准确 ID。工具调用、图片输入、推理模式只按服务实际能力勾选；基础文本初测先不启用不确定的能力。“自定义协议”默认关闭，只有标准路径处理不适用时才按官方说明开启。",
            "fields": [
              {
                "label": "模型名称",
                "name": "模型名称",
                "value": "<你的可用模型ID>",
                "note": ""
              },
              {
                "label": "工具调用 / 图片输入 / 推理模式",
                "name": "工具调用 / 图片输入 / 推理模式",
                "value": "按实际能力选择",
                "note": ""
              },
              {
                "label": "自定义协议",
                "name": "自定义协议",
                "value": "初次使用保持关闭",
                "note": "此开关不能把消息体格式变成 Anthropic/Responses"
              }
            ]
          },
          {
            "title": "④ 保存并在对话中选中测试",
            "body": "点击保存，回到对话的模型选择器选新建模型，再发送“只回复：连接成功。不要调用工具、不要读取文件。”。先核对文本回复，再单独验收文件/工具等功能。"
          }
        ],
        "config": {
          "files": [
            "官方文档兼容提示：~/.codebuddy/models.json",
            "同页数据说明：workbuddy/models.json（未给绝对路径，不能据此拼接 Windows 路径）"
          ],
          "environment": [],
          "notes": [
            "官方推荐当前版本通过图形界面管理；保存后自动持久化，不需要本教程直接编辑配置文件。",
            "同一官方页面出现上述两种路径写法，实际安装版路径待核实；不要声称它们都已在本机验证，也不要把任一路径当成所有版本的固定路径。",
            "当前官方模型页未给出第三方端点通用环境变量映射，本卡不编造变量名。",
            "官方说明密钥本地保存，使用自定义模型产生的费用由对应第三方服务结算。"
          ]
        },
        "success": "对话模型选择器显示新模型并能返回文本，未出现鉴权、模型 ID 或路径错误。",
        "troubleshooting": [
          {
            "symptom": "找不到 自定义/Custom",
            "action": "核对是否为本卡对应的 WorkBuddy 版本与地区发行版；入口变化以当前软件为准。"
          },
          {
            "symptom": "404、/chat/completions 重复或端点被改写",
            "action": "先填官方示例同形的完整 /v1/chat/completions 地址；对于网关非标准路径才考虑开启“自定义协议”，再按服务要求填完整 URL。"
          },
          {
            "symptom": "400 或工具调用报错",
            "action": "核对能力选项，不勾选服务不支持的工具/图片/推理能力；“自定义协议”不会修复消息体协议不兼容。"
          },
          {
            "symptom": "401/403/模型不存在",
            "action": "分别核对本站 API Key、模型 ID、服务地址和授权范围。"
          }
        ],
        "limitations": [
          "结论对应 2026-10-11 读取的中国站官方文档；未核对所有旧版或海外版的功能一致性。",
          "仅确认 OpenAI Chat Completions；没有证据证明此表单支持 Anthropic Messages 或 OpenAI Responses。",
          "API Key 本地保存不代表请求不离开电脑；自定义模型对话会发到所填第三方服务。",
          "没有安装或运行该软件，没有进行本站鉴权或收费测试。"
        ],
        "images": [
          {
            "file": "software-extra-workbuddy-annotated.png",
            "url": "https://download.codebuddy.cn/web/docs/58cb23ac03eddfd4f57622ab247bb99af32bf29e/docs/static/model-7.Buzcl1Ob.png",
            "source_page": "https://www.codebuddy.cn/docs/workbuddy/From-Beginner-to-Expert-Guide/Function-Description/Model",
            "sha256": "7d4cc3c500242453ea44fe6859f8a52867fe0bfa747148f7dd0857d5ba209013",
            "bytes": 246625,
            "width": 1527,
            "height": 1180,
            "kind": "official-settings-annotated",
            "caption": "WorkBuddy 官方 Custom 配置表单＋①②③④填写指引，保留原占位地址；侧栏给出本站完整 Chat Completions URL。非本站实测。",
            "source_version": "official-docs-build-58cb23ac03eddfd4f57622ab247bb99af32bf29e",
            "source_date": "Sat, 10 Oct 2026 11:36:13 GMT",
            "source_date_kind": "文档 HTTP Last-Modified；截图拍摄日期未公开",
            "generated_at": "2026-10-11T08:30:45.077Z",
            "derived_from": "deploy/docs/assets/guide/software-extra-workbuddy-custom-form.png",
            "source_sha256": "819611a67b6713b7f7b649f418abf9563847acbd2d32989d715a8c1f6d599b55",
            "url_note": "url 指向官方原图；file 指向本地增加编号和箭头后的 PNG，不宣称官方提供此标注版。",
            "annotation": {
              "style": "官方原图保持原像素大小；只添加蓝色编号、指向箭头和外围中文说明",
              "steps": [
                {
                  "number": 1,
                  "target": "自定义 / Custom 提供商"
                },
                {
                  "number": 2,
                  "target": "完整接口地址"
                },
                {
                  "number": 3,
                  "target": "API KEY 与模型名称"
                },
                {
                  "number": 4,
                  "target": "保存"
                }
              ],
              "original_ui_values_modified": false,
              "source_pixels_preserved_except_numbered_arrows": true,
              "visual_reviewed": true
            },
            "privacy_review": "人工逐图检查：API Key 为占位提示或圆点遮盖，未发现可读真实密钥；无需新增打码。",
            "redactions": []
          },
          {
            "file": "software-extra-workbuddy-custom-form.png",
            "url": "https://download.codebuddy.cn/web/docs/58cb23ac03eddfd4f57622ab247bb99af32bf29e/docs/static/model-7.Buzcl1Ob.png",
            "sha256": "819611a67b6713b7f7b649f418abf9563847acbd2d32989d715a8c1f6d599b55",
            "bytes": 117931,
            "downloaded_at": "2026-10-11T08:22:33.455Z",
            "kind": "official-settings",
            "caption": "WorkBuddy 官方添加模型→自定义/Custom 配置表单，仅支持 OpenAI 兼容 API；非本站实测。",
            "source_page": "https://www.codebuddy.cn/docs/workbuddy/From-Beginner-to-Expert-Guide/Function-Description/Model",
            "source_version": "official-docs-build-58cb23ac03eddfd4f57622ab247bb99af32bf29e",
            "source_date": "Sat, 10 Oct 2026 11:36:13 GMT",
            "source_date_kind": "文档 HTTP Last-Modified；截图拍摄日期未公开",
            "width": 771,
            "height": 928,
            "privacy_review": "人工逐图检查：API Key 为占位提示或圆点遮盖，未发现可读真实密钥；无需新增打码。",
            "redactions": []
          }
        ],
        "evidence": [
          {
            "url": "https://www.codebuddy.cn/docs/workbuddy/From-Beginner-to-Expert-Guide/Function-Description/Model",
            "title": "WorkBuddy 官方模型配置文档",
            "finding": "明确给出 设置→模型、Custom 手动 URL/API Key/模型名、OpenAI 兼容表单和自定义协议开关含义。",
            "checked_at": "2026-10-11T08:26:01.449Z",
            "http_last_modified": "Sat, 10 Oct 2026 11:36:13 GMT",
            "page_sha256": "606657be2400b9a7226dbe2107076f2ce7177dbf06dc1ca56a135899062964ce",
            "docs_build": "58cb23ac03eddfd4f57622ab247bb99af32bf29e"
          },
          {
            "url": "https://download.codebuddy.cn/web/docs/58cb23ac03eddfd4f57622ab247bb99af32bf29e/docs/static/model-7.Buzcl1Ob.png",
            "title": "官方 Custom 添加模型截图",
            "finding": "真实表单可见完整 /v1/chat/completions 占位 URL、密钥、模型名与能力复选框；没有 Anthropic/Responses 选择器。",
            "checked_at": "2026-10-11T08:26:01.449Z"
          },
          {
            "url": "https://www.codebuddy.cn/docs/workbuddy/From-Beginner-to-Expert-Guide/Function-Description/Model",
            "title": "官方文档配置文件说明差异",
            "finding": "兼容段落写 ~/.codebuddy/models.json，信息收集段落写 workbuddy/models.json；无法据此唯一确定当前安装的绝对路径。",
            "checked_at": "2026-10-11T08:26:01.449Z"
          }
        ],
        "endpoint_url": "https://xcmapi.org/v1/chat/completions",
        "requires_full_endpoint": true,
        "kind": "桌面 AI 工作助手",
        "short": "进入模型设置并选 Custom"
      },
      "source": "https://www.codebuddy.cn/docs/workbuddy/From-Beginner-to-Expert-Guide/Function-Description/Model"
    },
    {
      "id": "deepseek-harness",
      "name": "DeepSeek Harness",
      "kind": "开源智能体工作台",
      "protocol": "自定义模型 API 可选 OpenAI Chat Completions、OpenAI Responses、Anthropic Messages；分别写为 openai-completions、openai-responses、anthropic-messages。同一提供商只选一种协议。",
      "base": "https://xcmapi.org/v1",
      "entry": "已经运行的 Web UI → 设置 → 模型 → 添加模型提供商 → 自定义模型 API。官方 README 启动命令为 npx @deepseek-ai/dsh web，默认本机页面 http://127.0.0.1:3080；本轮没有执行安装或启动。",
      "steps": [
        "打开“自定义模型 API”：进入设置→模型，点添加模型提供商，切到自定义模型 API 标签。不要将本站密钥填写在默认 DeepSeek 官方直连卡片中。",
        "给提供商命名并填地址：Provider ID 使用小写字母开头的稳定标识，例如 xcm；显示名称可写“本站 API”。基础地址按网关说明填写。ID 创建后不可直接改名，先想好再保存。",
        "选协议、填密钥并添加模型：此入门方案选择 OpenAI Chat Completions，填写本站 API Key。点击添加模型并手动填写可用模型 ID；“获取可用模型”是可选网络探测，不是接入保证。网关支持其他协议时，可另外新建提供商并选择相应协议。",
        "创建提供商并在新会话中测试：创建后在模型选择器中选择刚添加的模型，再发“只回复：连接成功。不要调用工具、不要读取文件。”。模型设置在下一次请求生效；已有会话可能保留自己的模型记录，新建会话最清楚。"
      ],
      "limits": "官方 README 将该项目标为开发者预览，后续可能出现破坏兼容性的变更。；没有 OAuth 登录的第三方提供商支持保证；官方当前配置指南明确说 OAuth 提供商暂不支持。；截图与固定提交只证明产品能力与配置方式，不证明任意模型、网关或本站实际连接成功。；模型发现仅是便捷功能，不保证所有第三方端点都提供可识别列表。",
      "sourceUrl": "https://github.com/deepseek-ai/deepseek-harness/blob/d743267388641bc76f17c45ce8b4c231aed1d32c/docs/user/guide/providers.zh.md",
      "verification": "官方配置资料与真实界面参考已核对；本轮未逐客户端实机验收",
      "visual_guide": true,
      "details": {
        "id": "deepseek-harness",
        "name": "DeepSeek Harness",
        "official_url": "https://github.com/deepseek-ai/deepseek-harness",
        "docs_url": "https://github.com/deepseek-ai/deepseek-harness/blob/d743267388641bc76f17c45ce8b4c231aed1d32c/docs/user/guide/providers.zh.md",
        "project_identity": "DeepSeek AI 官方开源 DeepSeek Harness（命令 dsh，npm @deepseek-ai/dsh），仓库 deepseek-ai/deepseek-harness；不是 DeepSeek 聊天网站，也不是名称类似的第三方 harness。",
        "support_status": "官方明确支持第三方提供商和自定义模型 API；协议须与网关一致，本站接入未实测。",
        "protocol": "自定义模型 API 可选 OpenAI Chat Completions、OpenAI Responses、Anthropic Messages；分别写为 openai-completions、openai-responses、anthropic-messages。同一提供商只选一种协议。",
        "base_url": "https://xcmapi.org/v1",
        "base_url_note": "这是本站 API OpenAI 基础 URL 示例。若选其他协议，应使用网关给出的该协议基础地址，不盲目沿用；不把此地址视为 DeepSeek 官方 API。",
        "entry": "已经运行的 Web UI → 设置 → 模型 → 添加模型提供商 → 自定义模型 API。官方 README 启动命令为 npx @deepseek-ai/dsh web，默认本机页面 http://127.0.0.1:3080；本轮没有执行安装或启动。",
        "steps": [
          {
            "title": "① 打开“自定义模型 API”",
            "body": "进入设置→模型，点添加模型提供商，切到自定义模型 API 标签。不要将本站密钥填写在默认 DeepSeek 官方直连卡片中。",
            "fields": [
              {
                "label": "标签",
                "name": "标签",
                "value": "自定义模型 API",
                "note": ""
              }
            ]
          },
          {
            "title": "② 给提供商命名并填地址",
            "body": "Provider ID 使用小写字母开头的稳定标识，例如 xcm；显示名称可写“本站 API”。基础地址按网关说明填写。ID 创建后不可直接改名，先想好再保存。",
            "fields": [
              {
                "label": "Provider ID",
                "name": "Provider ID",
                "value": "xcm",
                "note": "创建后不可直接改名"
              },
              {
                "label": "显示名称",
                "name": "显示名称",
                "value": "本站 API",
                "note": ""
              },
              {
                "label": "API 地址",
                "name": "API 地址",
                "value": "https://xcmapi.org/v1",
                "note": "基础 URL，不追加 /chat/completions"
              }
            ]
          },
          {
            "title": "③ 选协议、填密钥并添加模型",
            "body": "此入门方案选择 OpenAI Chat Completions，填写本站 API Key。点击添加模型并手动填写可用模型 ID；“获取可用模型”是可选网络探测，不是接入保证。网关支持其他协议时，可另外新建提供商并选择相应协议。",
            "fields": [
              {
                "label": "API 协议",
                "name": "API 协议",
                "value": "OpenAI Chat Completions",
                "note": "保存值 openai-completions"
              },
              {
                "label": "API 密钥",
                "name": "API 密钥",
                "value": "你自己的 API Key",
                "note": ""
              },
              {
                "label": "模型 ID",
                "name": "模型 ID",
                "value": "<你的可用模型ID>",
                "note": ""
              }
            ]
          },
          {
            "title": "④ 创建提供商并在新会话中测试",
            "body": "创建后在模型选择器中选择刚添加的模型，再发“只回复：连接成功。不要调用工具、不要读取文件。”。模型设置在下一次请求生效；已有会话可能保留自己的模型记录，新建会话最清楚。"
          }
        ],
        "config": {
          "files": [
            "$DSH_HOME/profiles/web/cordis.patch.yml（默认 dsh web 的 profile）",
            "$DSH_HOME/.credentials.yaml（保存密钥；设置只持有凭据引用）"
          ],
          "environment": [
            "DSH_HOME：官方文档使用的数据根变量；不在本文推定 Windows 默认绝对路径。",
            "XCM_API_KEY：仅用于下面 apiKeyEnv 的自定义示例变量，不是 dsh 预置变量。"
          ],
          "example": "- id: llm-pi-ai\n  config:\n    providers:\n      xcm:\n        apiKeyEnv: XCM_API_KEY\n        api: openai-completions\n        baseURL: https://xcmapi.org/v1\n        models:\n          - id: <你的可用模型ID>\n",
          "notes": [
            "优先使用 GUI；示例仅解释字段，不是让新手覆盖已有 cordis.patch.yml。",
            "手工编辑要保留其他 provider 和字段，profile 配置覆盖会替换完整条目。",
            "图中协议下拉框默认 Chat Completions；三种协议的支持来自同一固定提交的官方文字说明。"
          ]
        },
        "success": "新提供商与模型出现在选择器中，文本回复成功，无 MISSING_CREDENTIAL、UNKNOWN_MODEL 或协议报错。",
        "troubleshooting": [
          {
            "symptom": "MISSING_CREDENTIAL",
            "action": "用模型页保存密钥，或确认 apiKeyEnv 引用的变量已在进程环境里设置。"
          },
          {
            "symptom": "UNKNOWN_MODEL 或列表为空",
            "action": "按本站控制台填写准确模型 ID；模型探测要求兼容 GET /models，探测失败时仍可手工添加。"
          },
          {
            "symptom": "网关拒绝 developer 角色或 max_completion_tokens",
            "action": "只有服务错误明确指向这些字段时，才按官方文档在对应路由 compat 中设置 supportsDeveloperRole: false 或 maxTokensField: max_tokens；不要无差别复制。"
          },
          {
            "symptom": "地址正确但消息格式错误",
            "action": "检查选中协议是否与服务一致；一个提供商只使用一种协议，多协议应建不同提供商。"
          }
        ],
        "limitations": [
          "官方 README 将该项目标为开发者预览，后续可能出现破坏兼容性的变更。",
          "没有 OAuth 登录的第三方提供商支持保证；官方当前配置指南明确说 OAuth 提供商暂不支持。",
          "截图与固定提交只证明产品能力与配置方式，不证明任意模型、网关或本站实际连接成功。",
          "模型发现仅是便捷功能，不保证所有第三方端点都提供可识别列表。"
        ],
        "images": [
          {
            "file": "software-extra-deepseek-harness-annotated.png",
            "url": "https://raw.githubusercontent.com/deepseek-ai/deepseek-harness/d743267388641bc76f17c45ce8b4c231aed1d32c/docs/user/guide/providers-custom-form.zh.png",
            "source_page": "https://github.com/deepseek-ai/deepseek-harness/blob/d743267388641bc76f17c45ce8b4c231aed1d32c/docs/user/guide/providers-custom-form.zh.png",
            "sha256": "32f521e028b33478e7752c71b7a849e73c1bdc1da33bc93fab8e0c15a7e54b31",
            "bytes": 319593,
            "width": 1884,
            "height": 1642,
            "kind": "official-settings-annotated",
            "caption": "DeepSeek AI 官方 Harness 中文自定义模型 API 表单＋①②③④指引：页签、地址、协议/密钥、添加模型/创建。非本站实测。",
            "source_version": "d743267388641bc76f17c45ce8b4c231aed1d32c",
            "source_date": "2026-10-09T09:31:32Z",
            "source_date_kind": "仓库固定提交日期，不代表截图拍摄时间",
            "generated_at": "2026-10-11T08:30:45.077Z",
            "derived_from": "deploy/docs/assets/guide/software-extra-deepseek-harness-custom-form.png",
            "source_sha256": "9e49b861a2be5781b071644979b32890280112a9a8e3fba8dffb6ab148539dc6",
            "url_note": "url 指向官方原图；file 指向本地增加编号和箭头后的 PNG，不宣称官方提供此标注版。",
            "annotation": {
              "style": "官方原图保持原像素大小；只添加蓝色编号、指向箭头和外围中文说明",
              "steps": [
                {
                  "number": 1,
                  "target": "自定义模型 API 页签"
                },
                {
                  "number": 2,
                  "target": "API 地址；标识/名称见侧栏"
                },
                {
                  "number": 3,
                  "target": "API 协议和 API 密钥"
                },
                {
                  "number": 4,
                  "target": "添加模型及创建提供商"
                }
              ],
              "original_ui_values_modified": false,
              "source_pixels_preserved_except_numbered_arrows": true,
              "visual_reviewed": true
            },
            "privacy_review": "人工逐图检查：API Key 为占位提示或圆点遮盖，未发现可读真实密钥；无需新增打码。",
            "redactions": []
          },
          {
            "file": "software-extra-deepseek-harness-models.png",
            "url": "https://raw.githubusercontent.com/deepseek-ai/deepseek-harness/d743267388641bc76f17c45ce8b4c231aed1d32c/docs/user/guide/providers-models-page.zh.png",
            "download_url": "https://api.github.com/repos/deepseek-ai/deepseek-harness/contents/docs/user/guide/providers-models-page.zh.png?ref=d743267388641bc76f17c45ce8b4c231aed1d32c",
            "source_page": "https://github.com/deepseek-ai/deepseek-harness/blob/d743267388641bc76f17c45ce8b4c231aed1d32c/docs/user/guide/providers-models-page.zh.png",
            "sha256": "4ca592d56700b5e2b73ea4281851505e91a3929d33a350088a6dacecd9b16d39",
            "bytes": 78228,
            "downloaded_at": "2026-10-11T08:22:36.108Z",
            "kind": "official-settings",
            "caption": "DeepSeek Harness 官方设置→模型页面及添加模型提供商入口，非本站实测。",
            "source_version": "d743267388641bc76f17c45ce8b4c231aed1d32c",
            "source_date": "2026-10-09T09:31:32Z",
            "width": 1600,
            "height": 850,
            "privacy_review": "人工逐图检查：API Key 为占位提示或圆点遮盖，未发现可读真实密钥；无需新增打码。",
            "redactions": []
          },
          {
            "file": "software-extra-deepseek-harness-custom-form.png",
            "url": "https://raw.githubusercontent.com/deepseek-ai/deepseek-harness/d743267388641bc76f17c45ce8b4c231aed1d32c/docs/user/guide/providers-custom-form.zh.png",
            "download_url": "https://api.github.com/repos/deepseek-ai/deepseek-harness/contents/docs/user/guide/providers-custom-form.zh.png?ref=d743267388641bc76f17c45ce8b4c231aed1d32c",
            "source_page": "https://github.com/deepseek-ai/deepseek-harness/blob/d743267388641bc76f17c45ce8b4c231aed1d32c/docs/user/guide/providers-custom-form.zh.png",
            "sha256": "9e49b861a2be5781b071644979b32890280112a9a8e3fba8dffb6ab148539dc6",
            "bytes": 127631,
            "downloaded_at": "2026-10-11T08:22:37.484Z",
            "kind": "official-settings",
            "caption": "DeepSeek Harness 官方中文自定义模型 API 表单，包含协议、地址、密钥和模型目录，非本站实测。",
            "source_version": "d743267388641bc76f17c45ce8b4c231aed1d32c",
            "source_date": "2026-10-09T09:31:32Z",
            "width": 1128,
            "height": 1390,
            "privacy_review": "人工逐图检查：API Key 为占位提示或圆点遮盖，未发现可读真实密钥；无需新增打码。",
            "redactions": []
          }
        ],
        "evidence": [
          {
            "url": "https://github.com/deepseek-ai/deepseek-harness/blob/d743267388641bc76f17c45ce8b4c231aed1d32c/README.zh.md",
            "title": "DeepSeek AI 官方 README",
            "finding": "确认项目身份、dsh 命令、npm 包、开发者预览阶段和默认 3080 端口。",
            "checked_at": "2026-10-11T08:26:01.449Z",
            "commit": "d743267388641bc76f17c45ce8b4c231aed1d32c",
            "commit_date": "2026-10-09T09:31:32Z",
            "blob_sha": "3adc57ce89b3c30e6a6dbaa14dc35df944d52926"
          },
          {
            "url": "https://github.com/deepseek-ai/deepseek-harness/blob/d743267388641bc76f17c45ce8b4c231aed1d32c/docs/user/guide/providers.zh.md",
            "title": "官方中文配置模型指南",
            "finding": "明确中转站/公司网关入口、三种协议、永久 Provider ID、凭据保存路径、手工模型与兼容开关。",
            "checked_at": "2026-10-11T08:26:01.449Z",
            "blob_sha": "6d618ed1e9eec17e8c4a000d00cc6987d0a6af14"
          },
          {
            "url": "https://github.com/deepseek-ai/deepseek-harness/blob/d743267388641bc76f17c45ce8b4c231aed1d32c/docs/user/guide/providers-custom-form.zh.png",
            "title": "官方自定义模型 API 中文截图",
            "finding": "真实软件表单可核对 Provider ID、显示名称、API 地址、协议、密钥与添加模型按钮。",
            "checked_at": "2026-10-11T08:26:01.449Z"
          }
        ],
        "kind": "开源智能体工作台",
        "short": "打开“自定义模型 API”"
      },
      "source": "https://github.com/deepseek-ai/deepseek-harness/blob/d743267388641bc76f17c45ce8b4c231aed1d32c/docs/user/guide/providers.zh.md"
    },
    {
      "id": "zcode",
      "name": "ZCode",
      "kind": "桌面编程助手",
      "protocol": "官方文档明确兼容 Anthropic / OpenAI；本卡采用 OpenAI Chat Completions。所核对页面未为任意第三方供应商明确承诺 OpenAI Responses，故不写成已支持。",
      "base": "https://xcmapi.org/v1",
      "entry": "对话框模型名称 → 模型选择器底部“管理模型” → 设置/模型设置 → 左侧底部“添加供应商”。旧图字段与当前文档可能略有差异。",
      "steps": [
        "打开模型设置并添加供应商：在模型选择器底部点管理模型，进入模型设置后点添加供应商。名称自定，例如“本站 API”；不要把本站密钥放进 Z.ai/BigModel 原生套餐登录入口。",
        "选协议并填基础 URL：使用 OpenAI 兼容路径时，填写本站 /v1 基础地址；若界面显示“API 格式”，选择 Chat Completions。当前文档可能显示“OpenAI 接口地址”，按这个字段填写。",
        "填密钥并添加准确模型：输入本站 API Key，点击添加模型，逐项填入本站控制台实际提供的模型 ID。不要照搬截图里的 DeepSeek 型号，也不要在 key 字段填写软件会员账号。",
        "保存、启用并发送测试句：保存供应商并打开启用开关，回到对话框选择新模型，发送“只回复：连接成功。不要调用工具、不要读取文件。”。能返回文本后，再逐项验证需要的 agent、图片和长上下文能力。"
      ],
      "limits": "已选定 zcode.z.ai 官方桌面产品；同名项目不能套用本卡。；官方图片文件名日期为 2026-07-28，当前文档字段可能更新；原图中的 DeepSeek 示例根地址不作为本站填写模板，本站 OpenAI 方案以 /v1 基础地址为准。；不将第三方 OpenAI Responses、任意自定义请求体参数或所有模型视觉能力写成已支持。；未安装软件、未登录、未使用官方免费额度或付费套餐，也未调用本站模型。",
      "sourceUrl": "https://zcode.z.ai/cn/docs/configuration",
      "verification": "官方配置资料与真实界面参考已核对；本轮未逐客户端实机验收",
      "visual_guide": true,
      "details": {
        "id": "zcode",
        "name": "ZCode",
        "official_url": "https://zcode.z.ai/",
        "docs_url": "https://zcode.z.ai/cn/docs/configuration",
        "project_identity": "Z.ai／智谱的 ZCode 桌面 AI 开发工作台（当前官方文档 v2）；不是同名编辑器、库或 VS Code 扩展。",
        "support_status": "官方明确允许兼容 OpenAI / Anthropic 的自定义供应商；本站实际接入和模型能力未实测。",
        "protocol": "官方文档明确兼容 Anthropic / OpenAI；本卡采用 OpenAI Chat Completions。所核对页面未为任意第三方供应商明确承诺 OpenAI Responses，故不写成已支持。",
        "base_url": "https://xcmapi.org/v1",
        "base_url_note": "本站 API OpenAI 基础地址示例，不属于 Z.ai / BigModel 原生 API。选择 Anthropic 方案时必须另按本站 API 对应协议文档填写地址。",
        "entry": "对话框模型名称 → 模型选择器底部“管理模型” → 设置/模型设置 → 左侧底部“添加供应商”。旧图字段与当前文档可能略有差异。",
        "steps": [
          {
            "title": "① 打开模型设置并添加供应商",
            "body": "在模型选择器底部点管理模型，进入模型设置后点添加供应商。名称自定，例如“本站 API”；不要把本站密钥放进 Z.ai/BigModel 原生套餐登录入口。",
            "fields": [
              {
                "label": "名称",
                "name": "名称",
                "value": "本站 API",
                "note": ""
              }
            ]
          },
          {
            "title": "② 选协议并填基础 URL",
            "body": "使用 OpenAI 兼容路径时，填写本站 /v1 基础地址；若界面显示“API 格式”，选择 Chat Completions。当前文档可能显示“OpenAI 接口地址”，按这个字段填写。",
            "fields": [
              {
                "label": "Base URL / OpenAI 接口地址",
                "name": "Base URL / OpenAI 接口地址",
                "value": "https://xcmapi.org/v1",
                "note": "本站示例，不是 Z.ai 官方端点"
              },
              {
                "label": "API 格式（若当前界面提供）",
                "name": "API 格式（若当前界面提供）",
                "value": "Chat Completions (/chat/completions)",
                "note": ""
              }
            ]
          },
          {
            "title": "③ 填密钥并添加准确模型",
            "body": "输入本站 API Key，点击添加模型，逐项填入本站控制台实际提供的模型 ID。不要照搬截图里的 DeepSeek 型号，也不要在 key 字段填写软件会员账号。",
            "fields": [
              {
                "label": "API Key",
                "name": "API Key",
                "value": "你自己的 API Key",
                "note": ""
              },
              {
                "label": "添加模型 / 模型 ID",
                "name": "添加模型 / 模型 ID",
                "value": "<你的可用模型ID>",
                "note": ""
              }
            ]
          },
          {
            "title": "④ 保存、启用并发送测试句",
            "body": "保存供应商并打开启用开关，回到对话框选择新模型，发送“只回复：连接成功。不要调用工具、不要读取文件。”。能返回文本后，再逐项验证需要的 agent、图片和长上下文能力。"
          }
        ],
        "config": {
          "files": [
            "~/.zcode/v2/config.json"
          ],
          "environment": [],
          "recognized_connection_options": [
            "apiKey",
            "baseURL",
            "apiKeyRequired",
            "headers"
          ],
          "notes": [
            "官方配置指南明确提到上述 v2 文件与供应商 options 的连接参数；推荐使用界面，本文不编造完整 JSON 层级或自动改文件。",
            "所查官方页没有给出任意第三方连接的通用环境变量配置方法，本卡不猜测。",
            "直接向供应商 options 塞 reasoning_effort、vl_high_resolution_images 等自定义请求字段不会自动进入消息体，官方明确说明这些字段可能被静默忽略。"
          ]
        },
        "success": "供应商已启用，选中的准确模型能回复文本且没有认证、协议或模型 ID 报错。",
        "troubleshooting": [
          {
            "symptom": "能保存但模型不出现在对话中",
            "action": "确认至少添加一个模型且供应商启用开关已打开，然后在对话选择器重新选中。"
          },
          {
            "symptom": "404 或协议错误",
            "action": "核对 OpenAI/Anthropic 地址与 API 格式是否对应；基础 URL 不机械追加另一种协议的路径。"
          },
          {
            "symptom": "思考强度最高档报 400",
            "action": "第三方部署支持的档位可能不同；先尝试其支持的较低档，再核对服务文档，不能假定同名模型参数一致。"
          },
          {
            "symptom": "图片失败或被移除",
            "action": "检查模型与接口的图片能力；官方会依据能力信息保留、移除或尝试发送，文本接通不能推断视觉兼容。"
          }
        ],
        "limitations": [
          "已选定 zcode.z.ai 官方桌面产品；同名项目不能套用本卡。",
          "官方图片文件名日期为 2026-07-28，当前文档字段可能更新；原图中的 DeepSeek 示例根地址不作为本站填写模板，本站 OpenAI 方案以 /v1 基础地址为准。",
          "不将第三方 OpenAI Responses、任意自定义请求体参数或所有模型视觉能力写成已支持。",
          "未安装软件、未登录、未使用官方免费额度或付费套餐，也未调用本站模型。"
        ],
        "images": [
          {
            "file": "software-extra-zcode-annotated.png",
            "url": "https://zcode.z.ai/content/docs/v2/screenshots/apikey-custom-deepseek-20260728.webp",
            "source_page": "https://zcode.z.ai/cn/docs/configuration",
            "sha256": "45780843fb66141f27d38b73508ca99673e12a16bfb24335652d14ee3edae543",
            "bytes": 441348,
            "width": 2575,
            "height": 1552,
            "kind": "official-settings-annotated",
            "caption": "Z.ai ZCode 官方模型设置截图＋①②③④指引；官方原图为 DeepSeek 示例，本站值只写在侧栏，未改原 UI。非本站实测。",
            "source_version": "docs/v2 snapshot filename 20260728",
            "source_date": "2026-07-28",
            "source_date_kind": "官方图片文件名日期；非独立验证的拍摄日期",
            "generated_at": "2026-10-11T08:30:45.077Z",
            "derived_from": "deploy/docs/assets/guide/software-extra-zcode-custom-provider.webp",
            "source_sha256": "acc4b9a2ca30f84ac890f43bf514b7583e7df60f7b9c3178ec4806ef7046eade",
            "url_note": "url 指向官方原图；file 指向本地增加编号和箭头后的 PNG，不宣称官方提供此标注版。",
            "annotation": {
              "style": "官方原图保持原像素大小；只添加蓝色编号、指向箭头和外围中文说明",
              "steps": [
                {
                  "number": 1,
                  "target": "添加供应商"
                },
                {
                  "number": 2,
                  "target": "Base URL 与 API 格式"
                },
                {
                  "number": 3,
                  "target": "API Key"
                },
                {
                  "number": 4,
                  "target": "添加模型；启用说明见侧栏"
                }
              ],
              "original_ui_values_modified": false,
              "source_pixels_preserved_except_numbered_arrows": true,
              "visual_reviewed": true
            },
            "privacy_review": "人工逐图检查：API Key 为占位提示或圆点遮盖，未发现可读真实密钥；无需新增打码。",
            "redactions": []
          },
          {
            "file": "software-extra-zcode-custom-provider.webp",
            "url": "https://zcode.z.ai/content/docs/v2/screenshots/apikey-custom-deepseek-20260728.webp",
            "sha256": "acc4b9a2ca30f84ac890f43bf514b7583e7df60f7b9c3178ec4806ef7046eade",
            "bytes": 51436,
            "downloaded_at": "2026-10-11T08:22:33.482Z",
            "kind": "official-settings",
            "caption": "ZCode 官方自定义提供商配置图（以 DeepSeek 为例），非本站实测；示例厂商和地址需换成自己的接口。",
            "source_page": "https://zcode.z.ai/cn/docs/configuration",
            "source_version": "docs/v2 snapshot filename 20260728",
            "source_date": "2026-07-28",
            "source_date_kind": "官方图片文件名日期；非独立验证的拍摄日期",
            "width": 1819,
            "height": 1300,
            "privacy_review": "人工逐图检查：API Key 为占位提示或圆点遮盖，未发现可读真实密钥；无需新增打码。",
            "redactions": []
          }
        ],
        "evidence": [
          {
            "url": "https://zcode.z.ai/cn/docs/configuration",
            "title": "ZCode 官方 v2 配置指南",
            "finding": "自定义供应商明确支持 Anthropic/OpenAI、添加供应商、Base URL/API Key、添加模型与启用流程。",
            "checked_at": "2026-10-11T08:26:01.449Z",
            "page_sha256": "de8432b39c410da71124ac942b61f228e7125dd29d87b90af2403ef481907af1",
            "page_date": "官方页面未提供明确最后修改日期，访问日期为 2026-10-11。"
          },
          {
            "url": "https://zcode.z.ai/cn/docs/configuration",
            "title": "官方高级参数与图片能力说明",
            "finding": "说明 ~/.zcode/v2/config.json、供应商连接 options 受支持字段及未知请求参数不会写入请求体。",
            "checked_at": "2026-10-11T08:26:01.449Z"
          },
          {
            "url": "https://zcode.z.ai/content/docs/v2/screenshots/apikey-custom-deepseek-20260728.webp",
            "title": "官方自定义提供商截图（DeepSeek 示例）",
            "finding": "真实模型设置界面；含 Base URL、Chat Completions API 格式、API Key、模型列表和添加供应商入口。",
            "checked_at": "2026-10-11T08:26:01.449Z",
            "asset_filename_date": "2026-07-28"
          }
        ],
        "kind": "桌面编程助手",
        "short": "打开模型设置并添加供应商"
      },
      "source": "https://zcode.z.ai/cn/docs/configuration"
    },
    {
      "id": "cherry",
      "name": "Cherry Studio",
      "kind": "桌面聊天 · 看图 · 绘画",
      "protocol": "OpenAI Chat Completions；绘画单独使用 Images",
      "base": "https://xcmapi.org/v1",
      "entry": "设置 → 模型服务 → 添加服务商 → 自定义",
      "steps": [
        "名称填写「鸡出没API」，添加 OpenAI 端点，填写自己的 Key。",
        "OpenAI 的 API Base / 版本基础地址填写 https://xcmapi.org/v1；若输入框明确写完整端点，则用 /v1/chat/completions。",
        "获取模型列表，选定当前 Key 允许的完整模型 ID，启用服务商并发送「只回复 OK」。"
      ],
      "limits": "新版本支持多个端点。绘画、Responses、Anthropic、Gemini 要单独配置对应端点；旧版 API Host 若自动补 /v1，就只填写 https://xcmapi.org。通过错误提示里的最终请求地址检查是否重复 /v1。",
      "source": "https://docs.cherry-ai.com/pre-basic/providers/zi-ding-yi-fu-wu-shang",
      "verification": "Official configuration documentation reviewed; end-to-end client not tested in this change"
    },
    {
      "id": "chatbox",
      "name": "Chatbox",
      "kind": "桌面聊天 · 看图",
      "protocol": "OpenAI Compatible / Chat Completions",
      "base": "https://xcmapi.org/v1",
      "entry": "设置 → 模型提供方 → 自定义 / OpenAI 兼容",
      "steps": [
        "新增自定义提供方；不同版本的菜单名称可能不同。",
        "API Base URL 填 https://xcmapi.org/v1，Key 填自己的 Key，模型填完整 ID。",
        "若同时要求 API Path，填写 /chat/completions，并确认最终地址只有一段 /v1/chat/completions；回到对话发送「只回复 OK」。"
      ],
      "limits": "若字段叫 API Host 且客户端固定追加 /v1，请填根地址 https://xcmapi.org。看图需要模型本身支持视觉，并先用小图片测试。",
      "source": "https://github.com/chatboxai/chatbox",
      "verification": "Official configuration documentation reviewed; end-to-end client not tested in this change"
    },
    {
      "id": "cline",
      "name": "Cline",
      "kind": "VS Code 编程助手",
      "protocol": "OpenAI Compatible / Chat Completions",
      "base": "https://xcmapi.org/v1",
      "entry": "VS Code → Cline 面板 → 设置 → API Provider",
      "steps": [
        "API Provider 选择 OpenAI Compatible。",
        "Base URL 填 https://xcmapi.org/v1；API Key 填自己的 Key；Model ID 填完整 ID。",
        "先发送「只回复 OK，不修改文件」。成功后，再在独立目录测试一次需要工具调用的任务。"
      ],
      "limits": "模型还需支持工具调用。上下文长度、图片能力、价格等自定义参数按真实型号填写，不能只因目录中可见就勾选全部能力。",
      "source": "https://docs.cline.bot/provider-config/openai-compatible",
      "verification": "Official configuration documentation reviewed; end-to-end client not tested in this change"
    },
    {
      "id": "continue",
      "name": "Continue",
      "kind": "VS Code / JetBrains 编程助手",
      "protocol": "OpenAI Chat Completions（本模板固定使用 Chat）",
      "base": "https://xcmapi.org/v1",
      "entry": "Continue → 配置 → 编辑本地 config.yaml",
      "steps": [
        "添加 provider: openai，apiBase: https://xcmapi.org/v1，model 填完整 ID。",
        "API Key 用 Continue 支持的 secrets 引用注入；不要把真实 Key 提交到项目仓库。",
        "本模板设置 useResponsesApi: false，固定 Chat Completions；配置 chat 角色后重新加载，再发一条短消息。"
      ],
      "limits": "需要 Responses 时，另建已确认支持该协议的模型配置并设置 useResponsesApi: true。chat 角色本身不会固定协议；不要把聊天模型当作 embedding 或 rerank 模型。",
      "source": "https://docs.continue.dev/customize/model-providers/top-level/openai",
      "verification": "Official configuration documentation reviewed; end-to-end client not tested in this change"
    },
    {
      "id": "gemini-cli",
      "name": "Gemini CLI",
      "kind": "终端编程助手",
      "protocol": "Gemini generateContent",
      "base": "https://xcmapi.org",
      "entry": "控制台令牌行 → 导入到 CCS → Gemini CLI",
      "steps": [
        "在「导入到 CCS」弹窗中选择 Gemini CLI。",
        "核对根地址与 Gemini 协议，Key 的分组应允许相应 Gemini 型号。",
        "启用后重开 Gemini CLI；如果仍走 Google 登录，先检查当前认证模式是否使用导入的 API Key 配置。"
      ],
      "limits": "实际 API 路径是 /v1beta/models/{MODEL_ID}:generateContent。不能把 /v1/chat/completions 当作 Gemini 原生端点。",
      "source": "https://github.com/farion1231/cc-switch/blob/main/docs/user-manual/zh/2-providers/2.1-add.md",
      "verification": "Official configuration documentation reviewed; end-to-end client not tested in this change"
    },
    {
      "id": "opencode",
      "name": "OpenCode",
      "kind": "终端编程助手",
      "protocol": "@ai-sdk/openai-compatible",
      "base": "https://xcmapi.org/v1",
      "entry": "opencode.json → provider → 自定义服务商",
      "steps": [
        "添加自定义 provider，npm 指定 @ai-sdk/openai-compatible。",
        "options.baseURL 填 https://xcmapi.org/v1，apiKey 使用 {env:XCM_API_KEY}，models 的键使用完整模型 ID。",
        "用 /models 选择「服务商ID/模型ID」，先发短消息，再验收工具调用。"
      ],
      "limits": "自定义兼容 provider 与内置 openai provider 的协议选择可能不同；按本站示例明确使用兼容适配器。",
      "source": "https://opencode.ai/docs/providers/",
      "verification": "Official configuration documentation reviewed; end-to-end client not tested in this change"
    },
    {
      "id": "aider",
      "name": "Aider",
      "kind": "终端代码协作",
      "protocol": "OpenAI compatible",
      "base": "https://xcmapi.org/v1",
      "entry": "终端环境变量 + aider --model",
      "steps": [
        "设置 OPENAI_API_BASE=https://xcmapi.org/v1。",
        "OPENAI_API_KEY 用终端会话的环境变量传入自己的 Key。",
        "运行 aider --model openai/你的完整模型ID，先在测试目录中开始只读对话。"
      ],
      "limits": "部分模型需额外模型元数据或编辑格式配置；先完成短对话，再测试改文件。",
      "source": "https://aider.chat/docs/llms/openai-compat.html",
      "verification": "Official configuration documentation reviewed; end-to-end client not tested in this change"
    },
    {
      "id": "dify",
      "name": "Dify",
      "kind": "工作流 / 聊天应用",
      "protocol": "OpenAI-API-compatible 插件",
      "base": "https://xcmapi.org/v1",
      "entry": "设置 → 模型供应商 → OpenAI-API-compatible",
      "steps": [
        "安装并打开 OpenAI-API-compatible 模型供应商插件。",
        "添加 LLM 模型，填写模型名称、Endpoint URL、API Key；Endpoint URL 使用 https://xcmapi.org/v1。",
        "先保存并验证，再在测试应用中选择该模型发布预览对话。"
      ],
      "limits": "自部署服务器需能访问该地址。Embedding、Rerank、语音是其他模型类型，不能复用聊天模型名称假定支持。",
      "source": "https://github.com/langgenius/dify-official-plugins/tree/main/models/openai_api_compatible",
      "verification": "Official configuration documentation reviewed; end-to-end client not tested in this change"
    },
    {
      "id": "n8n",
      "name": "n8n",
      "kind": "自动化 · 文本 · 图片 · 视频",
      "protocol": "HTTP Request 节点",
      "base": "https://xcmapi.org/v1/chat/completions",
      "entry": "画布 → 添加节点 → HTTP Request",
      "steps": [
        "选择对应方法和完整 URL；聊天用 POST /v1/chat/completions。",
        "认证选通用 Header Auth；凭据名称 Authorization，值为 Bearer 后加空格与自己的 Key。",
        "Send Body 选择 JSON；先运行一个文本节点。视频再按创建、等待、查状态、完成下载的顺序搭建。"
      ],
      "limits": "凭据保存在 n8n Credentials。不要放到节点 JSON、URL 或工作流导出文件中。视频 POST 禁止自动重试，轮询次数必须有限。",
      "source": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/",
      "verification": "Official configuration documentation reviewed; end-to-end client not tested in this change"
    },
    {
      "id": "curl",
      "name": "curl / Postman / Apifox",
      "kind": "接口调试",
      "protocol": "直接 HTTP",
      "base": "https://xcmapi.org/v1/chat/completions",
      "entry": "新建 HTTP 请求或导入 curl",
      "steps": [
        "Method 选 POST，URL 填完整接口路径。",
        "Authorization 选 Bearer Token，Key 放在私有环境变量中；Body 选 JSON。",
        "使用本站示例，替换 model 后发送。先确认 HTTP 2xx 与实际回复内容，再尝试其他接口。"
      ],
      "limits": "导出集合时去掉 Key。curl 示例按终端类型选择；Windows PowerShell 使用 curl.exe 或对应 PowerShell 示例。",
      "source": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/",
      "verification": "Official configuration documentation reviewed; end-to-end client not tested in this change"
    },
    {
      "id": "open-webui",
      "name": "Open WebUI",
      "kind": "自部署聊天界面（版本相关）",
      "protocol": "OpenAI-compatible connection",
      "base": "https://xcmapi.org/v1",
      "entry": "管理员设置中查找 Connections / OpenAI 连接",
      "steps": [
        "新建 OpenAI 兼容连接，基础地址填写 https://xcmapi.org/v1。",
        "Key 通过管理员私有凭据保存，刷新模型目录并限制可选型号。",
        "先用普通对话测试；确认服务器网络可达后再启用图片或工具。"
      ],
      "limits": "管理员权限、连接菜单和额外图像设置随版本变化。本次未实机核验；不要宣称聊天连接会自动启用 Images 或 Video。",
      "sourceUrl": "https://docs.openwebui.com/",
      "verification": "待安装版本核验",
      "source": "https://docs.openwebui.com/"
    },
    {
      "id": "anythingllm",
      "name": "AnythingLLM",
      "kind": "知识库聊天（版本相关）",
      "protocol": "Generic OpenAI",
      "base": "https://xcmapi.org/v1",
      "entry": "LLM Preference 中查找 Generic OpenAI",
      "steps": [
        "选择 Generic OpenAI 类型并核对版本官方字段。",
        "LLM 基础地址填 https://xcmapi.org/v1，模型和 Key 填本站对应值。",
        "先测试普通聊天；上传文档前另外配置可用的 embedding 模型。"
      ],
      "limits": "知识库需要独立的 embedding 支持。不能把文本生成模型当向量模型。本次未实机核验安装版本。",
      "sourceUrl": "https://docs.anythingllm.com/",
      "verification": "待安装版本核验",
      "source": "https://docs.anythingllm.com/"
    },
    {
      "id": "comfyui",
      "name": "ComfyUI",
      "kind": "图像工作流（需要兼容节点）",
      "protocol": "HTTP / 与本站 Images 兼容的自定义节点",
      "base": "https://xcmapi.org/v1/images/generations",
      "entry": "选择明确支持自定义 Images API 的可信节点",
      "steps": [
        "先确认节点允许自定义完整 URL、Header 和 JSON 请求体。",
        "用 Images API 的 model、prompt、size、n 生成请求；Key 放在本地私有配置中。",
        "确认节点支持 data[].url 或 data[].b64_json 输出，再连接图片预览。"
      ],
      "limits": "ComfyUI 不是填入聊天 Base URL 就自动兼容本站的客户端；不同自定义节点差别很大。本页不推荐未经验证的插件，也不承诺原生视频兼容。",
      "sourceUrl": "https://docs.comfy.org/",
      "verification": "需要选定节点后核验",
      "source": "https://docs.comfy.org/"
    }
  ]
}
