{
  "version": 1,
  "updated_at": "2026-10-24",
  "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": [
        "准备自己的 Key 和模型 ID：先打开本站“创建 KEY”。记住选择的分组，再从该 Key 可用的模型中复制完整 ID。暂时不要打开生产项目。",
        "安装并打开 Codex 与 CC Switch：从下方官方入口安装当前系统对应版本。已经安装可跳过。CC Switch 是连接配置工具；Codex 才是实际聊天和编程的软件。",
        "在 CC Switch 中切到 Codex：打开 CC Switch，选择左侧“Codex”，点“添加供应商”，选择自定义配置。供应商名称可填“鸡出没API”。",
        "分别填基础地址、Key、模型：基础地址填 https://xcmapi.org/v1。Key 只粘贴到软件自己的密钥框。模型填本站可用的完整 ID；配置预览中 wire_api 应为 responses。",
        "保存并启用这个供应商：点击保存，再在供应商列表点启用。若选择手动配置，使用用户级 ~/.codex/config.toml，而不是项目里的 .codex/config.toml。",
        "完全退出后重新打开 Codex：关闭旧 Codex 会话和终端，再打开新会话。使用手动环境变量时，应从设置变量的同一个终端启动。",
        "先发一句不会改文件的消息：发送下方统一测试消息，等待完整回复。暂时不要启用自动修改项目或批量执行。",
        "再验证实际需要的能力：基础聊天成功后，再单独测试读取一个测试文件。聊天成功不代表工具调用、图片或长上下文全部可用。"
      ],
      "limits": "模型必须支持 Responses；只支持 Chat Completions 的模型不能直接代替。；桌面版或受组织管理的客户端入口可能不同；若自定义供应商被禁用，先确认该客户端支持此配置方式。；本文核对公开配置资料，未用您的 Key 逐客户端实机验收。",
      "sourceUrl": "https://learn.chatgpt.com/docs/config-file/config-reference",
      "verification": "2026-10-24核对官方资料与本页交互；未使用用户Key逐客户端实机测试。",
      "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": "准备自己的 Key 和模型 ID",
            "body": "先打开本站“创建 KEY”。记住选择的分组，再从该 Key 可用的模型中复制完整 ID。暂时不要打开生产项目。",
            "expected": "已经准备好 Key、分组名称和一个支持 Responses 的模型 ID。"
          },
          {
            "title": "安装并打开 Codex 与 CC Switch",
            "body": "从下方官方入口安装当前系统对应版本。已经安装可跳过。CC Switch 是连接配置工具；Codex 才是实际聊天和编程的软件。",
            "expected": "两个软件都能正常打开；首次仅使用一个空的测试文件夹。"
          },
          {
            "title": "在 CC Switch 中切到 Codex",
            "body": "打开 CC Switch，选择左侧“Codex”，点“添加供应商”，选择自定义配置。供应商名称可填“鸡出没API”。",
            "expected": "当前编辑的是 Codex 配置，不能停在 Claude Code 标签。"
          },
          {
            "title": "分别填基础地址、Key、模型",
            "body": "基础地址填 https://xcmapi.org/v1。Key 只粘贴到软件自己的密钥框。模型填本站可用的完整 ID；配置预览中 wire_api 应为 responses。",
            "expected": "三个值分别放入对应位置，地址不重复写 /v1，不填 /chat/completions。"
          },
          {
            "title": "保存并启用这个供应商",
            "body": "点击保存，再在供应商列表点启用。若选择手动配置，使用用户级 ~/.codex/config.toml，而不是项目里的 .codex/config.toml。",
            "expected": "鸡出没API 是当前启用项；旧配置已先备份。"
          },
          {
            "title": "完全退出后重新打开 Codex",
            "body": "关闭旧 Codex 会话和终端，再打开新会话。使用手动环境变量时，应从设置变量的同一个终端启动。",
            "expected": "新会话读取刚保存的连接配置。"
          },
          {
            "title": "先发一句不会改文件的消息",
            "body": "发送下方统一测试消息，等待完整回复。暂时不要启用自动修改项目或批量执行。",
            "expected": "能看到“连接成功”；本站用量记录中能找到本次调用。"
          },
          {
            "title": "再验证实际需要的能力",
            "body": "基础聊天成功后，再单独测试读取一个测试文件。聊天成功不代表工具调用、图片或长上下文全部可用。",
            "expected": "需要的能力分别通过；错误时按下方排错表检查。"
          }
        ],
        "success": "收到实际文字回复；在本站用量记录中找到对应调用。模型列表可见或 Key 已保存都不能单独证明连接成功。",
        "troubleshooting": [
          "模型必须支持 Responses；只支持 Chat Completions 的模型不能直接代替。",
          "桌面版或受组织管理的客户端入口可能不同；若自定义供应商被禁用，先确认该客户端支持此配置方式。",
          "401 / Invalid API Key：重新复制自己的 Key，检查首尾空格以及该 Key 是否启用。",
          "403：检查 Key 所属分组是否允许当前模型；先回本站 Key 页面核对权限。",
          "404 / Model not found：核对地址末尾、所选协议和完整模型 ID，三个字段分别检查。",
          "429 / 请求频繁：先停止连续重试，等待后只发一条测试消息。",
          "有模型列表但发消息失败：列表只证明目录可读，仍需以实际回复及本站用量记录确认。"
        ],
        "limitations": [
          "模型必须支持 Responses；只支持 Chat Completions 的模型不能直接代替。",
          "桌面版或受组织管理的客户端入口可能不同；若自定义供应商被禁用，先确认该客户端支持此配置方式。",
          "本文核对公开配置资料，未用您的 Key 逐客户端实机验收。"
        ],
        "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",
        "download_url": "https://developers.openai.com/codex",
        "helper_url": "https://github.com/farion1231/cc-switch/releases",
        "guide_verified_at": "2026-10-24",
        "test_prompt": "只回复：连接成功。不要读取文件，不要调用工具，不要修改项目。"
      },
      "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 网页聊天。先准备可访问 Claude 模型的本站 Key，并复制对应模型的完整 ID。",
        "按官方说明安装并检查命令：从下方 Claude Code 官方安装入口选择自己的系统。安装后新开终端，输入 claude --version。",
        "在 CC Switch 选择 Claude Code：点左侧“Claude Code”后再添加自定义供应商，名称可填“鸡出没API”。已有供应商先保留，便于切回。",
        "填根地址和自己的 Key：地址填写 https://xcmapi.org，不加 /v1，也不加 /messages。Key 填私有密钥框；如高级配置要求变量，可使用 ANTHROPIC_AUTH_TOKEN。",
        "指定当前分组可用的 Claude 模型：模型字段或高级配置中的 ANTHROPIC_MODEL 填完整模型 ID。不要把“鸡出没API”这个供应商名称当成模型名。",
        "保存、启用，再打开新终端：保存并启用供应商。关闭旧 Claude Code，在新终端执行 claude；不要同时叠加多套冲突的登录变量。",
        "用 /status 核对连接：在 Claude Code 中输入 /status，检查 Anthropic base URL 指向本站，并确认使用网关凭据。需要时用 /model 选择刚配置的模型。",
        "发送第一条测试消息：关闭状态菜单，发送下方统一测试消息。回复成功后再开始工作，不要仅凭登录成功或模型名称判断。"
      ],
      "limits": "始终要求登录时，优先检查 Key 是否在启动 Claude Code 之前就已配置。；如果 /model 中没有自定义型号，核对当前版本的网关模型发现设置，不要随意改成别的模型。；本文核对公开配置资料，未用您的 Key 逐客户端实机验收。",
      "sourceUrl": "https://code.claude.com/docs/en/llm-gateway-connect",
      "verification": "2026-10-24核对官方资料与本页交互；未使用用户Key逐客户端实机测试。",
      "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 网页聊天。先准备可访问 Claude 模型的本站 Key，并复制对应模型的完整 ID。",
            "expected": "Key 分组允许使用选定的 Claude 模型。"
          },
          {
            "title": "按官方说明安装并检查命令",
            "body": "从下方 Claude Code 官方安装入口选择自己的系统。安装后新开终端，输入 claude --version。",
            "expected": "终端返回版本号；若提示找不到命令，先完成安装再继续。",
            "command": "claude --version"
          },
          {
            "title": "在 CC Switch 选择 Claude Code",
            "body": "点左侧“Claude Code”后再添加自定义供应商，名称可填“鸡出没API”。已有供应商先保留，便于切回。",
            "expected": "不是 Codex 或 Gemini 的配置页。"
          },
          {
            "title": "填根地址和自己的 Key",
            "body": "地址填写 https://xcmapi.org，不加 /v1，也不加 /messages。Key 填私有密钥框；如高级配置要求变量，可使用 ANTHROPIC_AUTH_TOKEN。",
            "expected": "软件发请求时会自行拼接 /v1/messages。"
          },
          {
            "title": "指定当前分组可用的 Claude 模型",
            "body": "模型字段或高级配置中的 ANTHROPIC_MODEL 填完整模型 ID。不要把“鸡出没API”这个供应商名称当成模型名。",
            "expected": "所选型号与本站可用模型列表一致。"
          },
          {
            "title": "保存、启用，再打开新终端",
            "body": "保存并启用供应商。关闭旧 Claude Code，在新终端执行 claude；不要同时叠加多套冲突的登录变量。",
            "expected": "新会话启动，不再读取旧窗口里的配置。",
            "command": "claude"
          },
          {
            "title": "用 /status 核对连接",
            "body": "在 Claude Code 中输入 /status，检查 Anthropic base URL 指向本站，并确认使用网关凭据。需要时用 /model 选择刚配置的模型。",
            "expected": "显示的地址、凭据来源与模型和本次设置一致。",
            "command": "/status"
          },
          {
            "title": "发送第一条测试消息",
            "body": "关闭状态菜单，发送下方统一测试消息。回复成功后再开始工作，不要仅凭登录成功或模型名称判断。",
            "expected": "收到完整回复，并能在本站用量记录里查到调用。"
          }
        ],
        "success": "收到实际文字回复；在本站用量记录中找到对应调用。模型列表可见或 Key 已保存都不能单独证明连接成功。",
        "troubleshooting": [
          "始终要求登录时，优先检查 Key 是否在启动 Claude Code 之前就已配置。",
          "如果 /model 中没有自定义型号，核对当前版本的网关模型发现设置，不要随意改成别的模型。",
          "401 / Invalid API Key：重新复制自己的 Key，检查首尾空格以及该 Key 是否启用。",
          "403：检查 Key 所属分组是否允许当前模型；先回本站 Key 页面核对权限。",
          "404 / Model not found：核对地址末尾、所选协议和完整模型 ID，三个字段分别检查。",
          "429 / 请求频繁：先停止连续重试，等待后只发一条测试消息。",
          "有模型列表但发消息失败：列表只证明目录可读，仍需以实际回复及本站用量记录确认。"
        ],
        "limitations": [
          "始终要求登录时，优先检查 Key 是否在启动 Claude Code 之前就已配置。",
          "如果 /model 中没有自定义型号，核对当前版本的网关模型发现设置，不要随意改成别的模型。",
          "本文核对公开配置资料，未用您的 Key 逐客户端实机验收。"
        ],
        "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",
        "download_url": "https://code.claude.com/docs/en/overview",
        "helper_url": "https://github.com/farion1231/cc-switch/releases",
        "guide_verified_at": "2026-10-24",
        "test_prompt": "只回复：连接成功。不要读取文件，不要调用工具，不要修改项目。"
      },
      "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 model → Custom endpoint",
      "steps": [
        "按系统完成 Hermes 官方安装：打开下方官方安装入口。Windows / macOS 优先选择 Hermes Desktop 安装程序，按向导完成安装；它会同时提供桌面和命令行入口。只装命令行时按官网对应系统说明操作。",
        "打开终端并检查安装：在已安装 Hermes 的环境中运行 hermes --help。已有聊天时先结束当前会话，回到能够输入系统命令的终端。",
        "启动模型配置向导：输入 hermes model，在提供商列表选择 Custom endpoint。聊天里的 /model 主要切换已有配置，不能替代新建端点。",
        "填写本站基础地址与 Key：基础地址填 https://xcmapi.org/v1。Key 填自己的本站 Key；不要把它写进公开截图。",
        "选对 API 模式：普通 OpenAI 兼容聊天选择 Chat Completions。仅当 Key、模型与接入方明确支持 Responses 时才选 Responses；Claude 原生协议不能混填。",
        "填写完整模型 ID 后保存：按向导填可用的模型 ID。上下文长度优先保留自动识别，不要为了通过设置随意写很大的数值。",
        "启动全新的 Hermes 会话：重新进入 Hermes，并确认新会话选中了刚才配置的提供商和模型。",
        "用安全消息测试，再检查工具：先发送下方统一消息。文字回复成功后，再单独验证读取测试文件或其他工具。"
      ],
      "limits": "出现上下文窗口不足时，按实际模型能力配置；不要虚报上下文长度。；提示鉴权失败时，检查保存的密钥和环境变量是否互相覆盖。；本文核对公开配置资料，未用您的 Key 逐客户端实机验收。",
      "sourceUrl": "https://hermes-agent.nousresearch.com/docs/integrations/providers",
      "verification": "2026-10-24核对官方资料与本页交互；未使用用户Key逐客户端实机测试。",
      "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 model → Custom endpoint",
        "steps": [
          {
            "title": "按系统完成 Hermes 官方安装",
            "body": "打开下方官方安装入口。Windows / macOS 优先选择 Hermes Desktop 安装程序，按向导完成安装；它会同时提供桌面和命令行入口。只装命令行时按官网对应系统说明操作。",
            "expected": "安装完成，终端能识别 hermes 命令。"
          },
          {
            "title": "打开终端并检查安装",
            "body": "在已安装 Hermes 的环境中运行 hermes --help。已有聊天时先结束当前会话，回到能够输入系统命令的终端。",
            "expected": "能看到帮助内容，而不是“找不到命令”。",
            "command": "hermes --help"
          },
          {
            "title": "启动模型配置向导",
            "body": "输入 hermes model，在提供商列表选择 Custom endpoint。聊天里的 /model 主要切换已有配置，不能替代新建端点。",
            "expected": "进入自定义地址和凭据的配置步骤。",
            "command": "hermes model"
          },
          {
            "title": "填写本站基础地址与 Key",
            "body": "基础地址填 https://xcmapi.org/v1。Key 填自己的本站 Key；不要把它写进公开截图。",
            "expected": "地址与密钥分别填好。"
          },
          {
            "title": "选对 API 模式",
            "body": "普通 OpenAI 兼容聊天选择 Chat Completions。仅当 Key、模型与接入方明确支持 Responses 时才选 Responses；Claude 原生协议不能混填。",
            "expected": "所选协议与本站该模型的接口相同。"
          },
          {
            "title": "填写完整模型 ID 后保存",
            "body": "按向导填可用的模型 ID。上下文长度优先保留自动识别，不要为了通过设置随意写很大的数值。",
            "expected": "向导保存成功，重新打开仍能看到该提供商。"
          },
          {
            "title": "启动全新的 Hermes 会话",
            "body": "重新进入 Hermes，并确认新会话选中了刚才配置的提供商和模型。",
            "expected": "会话使用新端点，不是旧提供商。"
          },
          {
            "title": "用安全消息测试，再检查工具",
            "body": "先发送下方统一消息。文字回复成功后，再单独验证读取测试文件或其他工具。",
            "expected": "基础文本请求完成；工具能力单独确认。"
          }
        ],
        "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": "收到实际文字回复；在本站用量记录中找到对应调用。模型列表可见或 Key 已保存都不能单独证明连接成功。",
        "troubleshooting": [
          "出现上下文窗口不足时，按实际模型能力配置；不要虚报上下文长度。",
          "提示鉴权失败时，检查保存的密钥和环境变量是否互相覆盖。",
          "401 / Invalid API Key：重新复制自己的 Key，检查首尾空格以及该 Key 是否启用。",
          "403：检查 Key 所属分组是否允许当前模型；先回本站 Key 页面核对权限。",
          "404 / Model not found：核对地址末尾、所选协议和完整模型 ID，三个字段分别检查。",
          "429 / 请求频繁：先停止连续重试，等待后只发一条测试消息。",
          "有模型列表但发消息失败：列表只证明目录可读，仍需以实际回复及本站用量记录确认。"
        ],
        "limitations": [
          "出现上下文窗口不足时，按实际模型能力配置；不要虚报上下文长度。",
          "提示鉴权失败时，检查保存的密钥和环境变量是否互相覆盖。",
          "本文核对公开配置资料，未用您的 Key 逐客户端实机验收。"
        ],
        "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": "打开自定义端点向导",
        "download_url": "https://hermes-agent.nousresearch.com/docs/getting-started/quickstart/",
        "helper_url": null,
        "guide_verified_at": "2026-10-24",
        "test_prompt": "只回复：连接成功。不要读取文件，不要调用工具，不要修改项目。"
      },
      "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": [
        "安装 Cursor 并打开测试文件夹：从官方入口选择系统版本。打开后先进入一个空的测试文件夹，便于只验证连接。",
        "进入 Cursor 自己的 Models 设置：打开 Cursor Settings，再选 Models，找到 API Keys。不要进入系统设置或普通编辑器外观设置。",
        "先保存自己的 API Key：在准备使用的提供商一栏填入自己的 Key，点击 Save / 保存，并启用该提供商。",
        "检查是否有自定义地址入口：查看当前版本是否提供 Override OpenAI Base URL 或等价的自定义地址选项。没有该选项时，停止按此方法设置，先查看当前版本官方说明。",
        "把基础地址改成本站地址：在自定义地址处填写 https://xcmapi.org/v1。不要填完整 /chat/completions 路径，不要重复 /v1。",
        "添加模型并启用：在模型设置中添加或启用本站 Key 支持的完整模型 ID。新建聊天，在模型选择器中选中它。",
        "先用普通聊天验证：发送下方测试消息。若当前版本或模型不支持自定义地址，不能靠修改显示名称解决。",
        "理解可用范围：官方说明自带补全和自定义 Key 的聊天请求并不是同一条通道；不要把聊天成功理解为所有功能都走本站。"
      ],
      "limits": "新版界面可能不提供截图中的 Override 地址项；缺少入口时不要照抄旧版本界面。；自定义 Key 不接管 Cursor 内置的 Tab 补全。；本文核对公开配置资料，未用您的 Key 逐客户端实机验收。",
      "sourceUrl": "https://cursor.com/help/models-and-usage/api-keys",
      "verification": "2026-10-24核对官方资料与本页交互；未使用用户Key逐客户端实机测试。",
      "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": "安装 Cursor 并打开测试文件夹",
            "body": "从官方入口选择系统版本。打开后先进入一个空的测试文件夹，便于只验证连接。",
            "expected": "已经进入 Cursor 主界面。"
          },
          {
            "title": "进入 Cursor 自己的 Models 设置",
            "body": "打开 Cursor Settings，再选 Models，找到 API Keys。不要进入系统设置或普通编辑器外观设置。",
            "expected": "能看到 OpenAI、Anthropic 等提供商的密钥区域。"
          },
          {
            "title": "先保存自己的 API Key",
            "body": "在准备使用的提供商一栏填入自己的 Key，点击 Save / 保存，并启用该提供商。",
            "expected": "密钥已保存；这一步还不代表本站地址已配置好。"
          },
          {
            "title": "检查是否有自定义地址入口",
            "body": "查看当前版本是否提供 Override OpenAI Base URL 或等价的自定义地址选项。没有该选项时，停止按此方法设置，先查看当前版本官方说明。",
            "expected": "确认存在自定义地址入口；不能仅填本站 Key 却继续请求官方默认地址。"
          },
          {
            "title": "把基础地址改成本站地址",
            "body": "在自定义地址处填写 https://xcmapi.org/v1。不要填完整 /chat/completions 路径，不要重复 /v1。",
            "expected": "地址已保存并启用。"
          },
          {
            "title": "添加模型并启用",
            "body": "在模型设置中添加或启用本站 Key 支持的完整模型 ID。新建聊天，在模型选择器中选中它。",
            "expected": "聊天顶部显示刚添加的型号。"
          },
          {
            "title": "先用普通聊天验证",
            "body": "发送下方测试消息。若当前版本或模型不支持自定义地址，不能靠修改显示名称解决。",
            "expected": "实际得到回复后才开始项目操作。"
          },
          {
            "title": "理解可用范围",
            "body": "官方说明自带补全和自定义 Key 的聊天请求并不是同一条通道；不要把聊天成功理解为所有功能都走本站。",
            "expected": "后续按实际需要分别测试 Agent、工具与图片。"
          }
        ],
        "success": "收到实际文字回复；在本站用量记录中找到对应调用。模型列表可见或 Key 已保存都不能单独证明连接成功。",
        "troubleshooting": [
          "新版界面可能不提供截图中的 Override 地址项；缺少入口时不要照抄旧版本界面。",
          "自定义 Key 不接管 Cursor 内置的 Tab 补全。",
          "401 / Invalid API Key：重新复制自己的 Key，检查首尾空格以及该 Key 是否启用。",
          "403：检查 Key 所属分组是否允许当前模型；先回本站 Key 页面核对权限。",
          "404 / Model not found：核对地址末尾、所选协议和完整模型 ID，三个字段分别检查。",
          "429 / 请求频繁：先停止连续重试，等待后只发一条测试消息。",
          "有模型列表但发消息失败：列表只证明目录可读，仍需以实际回复及本站用量记录确认。"
        ],
        "limitations": [
          "新版界面可能不提供截图中的 Override 地址项；缺少入口时不要照抄旧版本界面。",
          "自定义 Key 不接管 Cursor 内置的 Tab 补全。",
          "本文核对公开配置资料，未用您的 Key 逐客户端实机验收。"
        ],
        "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"
          }
        ],
        "download_url": "https://cursor.com/downloads",
        "helper_url": null,
        "guide_verified_at": "2026-10-24",
        "test_prompt": "只回复：连接成功。不要读取文件，不要调用工具，不要修改项目。"
      },
      "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": "设置 → 模型 → 添加模型 → 自定义 / Custom",
      "steps": [
        "安装正确的软件：WorkBuddy：从下方官方入口下载 WorkBuddy。不要误装成名称相近的 CodeBuddy IDE 或插件。",
        "找到模型设置：打开设置，进入“模型”，点击“添加模型”。在提供商列表中选择“自定义 / Custom”。",
        "先选择地址填写方式：默认保持“自定义协议”关闭：软件会自动补全 Chat Completions 路径。只有明确要填完整接口 URL 时，才打开自定义协议。",
        "按对应模式填写 URL：自动补全模式填 https://xcmapi.org/v1；自定义协议开启时填 https://xcmapi.org/v1/chat/completions。不要把两个地址填在同一框。",
        "填写 Key 与模型 ID：密钥只填软件私有输入框。模型 ID 从本站可用列表复制；如果另有“显示名称”，它可以自定义，但不能替代 API 模型标识。",
        "核对能力开关后保存：工具、图片输入、推理等能力只按实际模型支持开启。不要因为名称有 AI 就全部勾选。点击保存。",
        "回到新聊天选中新模型：打开新对话，在模型选择器切换到刚保存的自定义模型。",
        "发送测试消息：发送下方统一测试消息。收到回复后，再逐项验证文件、图片输入或其他工作流。"
      ],
      "limits": "“自定义协议”关闭时自动补路径；开启时直接使用所填完整 URL。；图片输入和图片生成是不同能力；生图应使用本站图片接口教程。；本文核对公开配置资料，未用您的 Key 逐客户端实机验收。",
      "sourceUrl": "https://www.codebuddy.cn/docs/workbuddy/From-Beginner-to-Expert-Guide/Function-Description/Model",
      "verification": "2026-10-24核对官方资料与本页交互；未使用用户Key逐客户端实机测试。",
      "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": "默认自动补全模式用基础地址；自定义协议开启时才填完整接口地址。",
        "entry": "设置 → 模型 → 添加模型 → 自定义 / Custom",
        "steps": [
          {
            "title": "安装正确的软件：WorkBuddy",
            "body": "从下方官方入口下载 WorkBuddy。不要误装成名称相近的 CodeBuddy IDE 或插件。",
            "expected": "能打开 WorkBuddy 桌面主界面。"
          },
          {
            "title": "找到模型设置",
            "body": "打开设置，进入“模型”，点击“添加模型”。在提供商列表中选择“自定义 / Custom”。",
            "expected": "显示 URL、API Key、模型等输入项。"
          },
          {
            "title": "先选择地址填写方式",
            "body": "默认保持“自定义协议”关闭：软件会自动补全 Chat Completions 路径。只有明确要填完整接口 URL 时，才打开自定义协议。",
            "expected": "已明确使用下面表格中的一行，不混用两套地址。"
          },
          {
            "title": "按对应模式填写 URL",
            "body": "自动补全模式填 https://xcmapi.org/v1；自定义协议开启时填 https://xcmapi.org/v1/chat/completions。不要把两个地址填在同一框。",
            "expected": "请求路径只含一次 /v1/chat/completions。"
          },
          {
            "title": "填写 Key 与模型 ID",
            "body": "密钥只填软件私有输入框。模型 ID 从本站可用列表复制；如果另有“显示名称”，它可以自定义，但不能替代 API 模型标识。",
            "expected": "密钥、显示名称和请求模型三者没有混淆。"
          },
          {
            "title": "核对能力开关后保存",
            "body": "工具、图片输入、推理等能力只按实际模型支持开启。不要因为名称有 AI 就全部勾选。点击保存。",
            "expected": "新模型出现在列表中。"
          },
          {
            "title": "回到新聊天选中新模型",
            "body": "打开新对话，在模型选择器切换到刚保存的自定义模型。",
            "expected": "当前会话已经切换，不再使用默认模型。"
          },
          {
            "title": "发送测试消息",
            "body": "发送下方统一测试消息。收到回复后，再逐项验证文件、图片输入或其他工作流。",
            "expected": "本站出现实际用量，基础连接完成。"
          }
        ],
        "config": {
          "files": [
            "官方文档兼容提示：~/.codebuddy/models.json",
            "同页数据说明：workbuddy/models.json（未给绝对路径，不能据此拼接 Windows 路径）"
          ],
          "environment": [],
          "notes": [
            "官方推荐当前版本通过图形界面管理；保存后自动持久化，不需要本教程直接编辑配置文件。",
            "同一官方页面出现上述两种路径写法，实际安装版路径待核实；不要声称它们都已在本机验证，也不要把任一路径当成所有版本的固定路径。",
            "当前官方模型页未给出第三方端点通用环境变量映射，本卡不编造变量名。",
            "官方说明密钥本地保存，使用自定义模型产生的费用由对应第三方服务结算。"
          ]
        },
        "success": "收到实际文字回复；在本站用量记录中找到对应调用。模型列表可见或 Key 已保存都不能单独证明连接成功。",
        "troubleshooting": [
          "“自定义协议”关闭时自动补路径；开启时直接使用所填完整 URL。",
          "图片输入和图片生成是不同能力；生图应使用本站图片接口教程。",
          "401 / Invalid API Key：重新复制自己的 Key，检查首尾空格以及该 Key 是否启用。",
          "403：检查 Key 所属分组是否允许当前模型；先回本站 Key 页面核对权限。",
          "404 / Model not found：核对地址末尾、所选协议和完整模型 ID，三个字段分别检查。",
          "429 / 请求频繁：先停止连续重试，等待后只发一条测试消息。",
          "有模型列表但发消息失败：列表只证明目录可读，仍需以实际回复及本站用量记录确认。"
        ],
        "limitations": [
          "“自定义协议”关闭时自动补路径；开启时直接使用所填完整 URL。",
          "图片输入和图片生成是不同能力；生图应使用本站图片接口教程。",
          "本文核对公开配置资料，未用您的 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": false,
        "kind": "桌面 AI 工作助手",
        "short": "进入模型设置并选 Custom",
        "download_url": "https://www.codebuddy.cn/work/",
        "helper_url": null,
        "guide_verified_at": "2026-10-24",
        "test_prompt": "只回复：连接成功。不要读取文件，不要调用工具，不要修改项目。"
      },
      "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": "设置 → 模型 → 添加模型提供商 → 自定义模型 API",
      "steps": [
        "先安装 Node.js：到 Node.js 官方网站安装 LTS 版本，再重新打开终端。已有环境可先运行 node --version 检查。",
        "启动 DeepSeek Harness：在终端运行 npx @deepseek-ai/dsh web。首次运行可能询问是否下载软件包，核对名称后确认。",
        "打开本机页面，保留终端：通常会自动打开浏览器；没有自动打开时访问 http://127.0.0.1:3080。先不要关闭刚才的终端。",
        "进入自定义模型 API 表单：打开“设置 → 模型 → 添加模型提供商”，选择“自定义模型 API”，不要直接选内置 DeepSeek 提供商。",
        "填名称、ID 和基础地址：Provider ID 可填小写 xcm；显示名称填“鸡出没API”；基础 URL 填 https://xcmapi.org/v1。",
        "选择实际使用的协议：普通聊天选 OpenAI Chat Completions；需要 Responses 且该 Key 支持时选 OpenAI Responses。两种协议要分别建提供商。",
        "保存私有 Key，并添加至少一个模型：将自己的 Key 填入凭据区域，再添加本站可用的完整模型 ID，保存或创建提供商。",
        "新建会话并测试：新会话选择 xcm 下的模型，发送下方统一消息。保存 Key 或发现模型列表并不等于测试成功。"
      ],
      "limits": "提示 CLIENT_UPGRADE_REQUIRED 时，按官方说明升级客户端，不要伪造版本号。；关闭启动终端会停止本机服务；再次使用时重新运行启动命令。；本文核对公开配置资料，未用您的 Key 逐客户端实机验收。",
      "sourceUrl": "https://github.com/deepseek-ai/deepseek-harness/blob/d743267388641bc76f17c45ce8b4c231aed1d32c/docs/user/guide/providers.zh.md",
      "verification": "2026-10-24核对官方资料与本页交互；未使用用户Key逐客户端实机测试。",
      "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/master/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": "设置 → 模型 → 添加模型提供商 → 自定义模型 API",
        "steps": [
          {
            "title": "先安装 Node.js",
            "body": "到 Node.js 官方网站安装 LTS 版本，再重新打开终端。已有环境可先运行 node --version 检查。",
            "expected": "命令能返回版本号。",
            "command": "node --version"
          },
          {
            "title": "启动 DeepSeek Harness",
            "body": "在终端运行 npx @deepseek-ai/dsh web。首次运行可能询问是否下载软件包，核对名称后确认。",
            "expected": "终端显示本机 Web UI 地址。",
            "command": "npx @deepseek-ai/dsh web"
          },
          {
            "title": "打开本机页面，保留终端",
            "body": "通常会自动打开浏览器；没有自动打开时访问 http://127.0.0.1:3080。先不要关闭刚才的终端。",
            "expected": "看到 DeepSeek Harness 页面，不是本站控制台。"
          },
          {
            "title": "进入自定义模型 API 表单",
            "body": "打开“设置 → 模型 → 添加模型提供商”，选择“自定义模型 API”，不要直接选内置 DeepSeek 提供商。",
            "expected": "看到 Provider ID、基础 URL、协议和凭据字段。"
          },
          {
            "title": "填名称、ID 和基础地址",
            "body": "Provider ID 可填小写 xcm；显示名称填“鸡出没API”；基础 URL 填 https://xcmapi.org/v1。",
            "expected": "ID、显示名和模型 ID 分别在各自字段。"
          },
          {
            "title": "选择实际使用的协议",
            "body": "普通聊天选 OpenAI Chat Completions；需要 Responses 且该 Key 支持时选 OpenAI Responses。两种协议要分别建提供商。",
            "expected": "不是把所有协议混在一个配置中。"
          },
          {
            "title": "保存私有 Key，并添加至少一个模型",
            "body": "将自己的 Key 填入凭据区域，再添加本站可用的完整模型 ID，保存或创建提供商。",
            "expected": "提供商下至少有一个可选模型。"
          },
          {
            "title": "新建会话并测试",
            "body": "新会话选择 xcm 下的模型，发送下方统一消息。保存 Key 或发现模型列表并不等于测试成功。",
            "expected": "出现完整文字回复，并能核对本站用量。"
          }
        ],
        "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": "收到实际文字回复；在本站用量记录中找到对应调用。模型列表可见或 Key 已保存都不能单独证明连接成功。",
        "troubleshooting": [
          "提示 CLIENT_UPGRADE_REQUIRED 时，按官方说明升级客户端，不要伪造版本号。",
          "关闭启动终端会停止本机服务；再次使用时重新运行启动命令。",
          "401 / Invalid API Key：重新复制自己的 Key，检查首尾空格以及该 Key 是否启用。",
          "403：检查 Key 所属分组是否允许当前模型；先回本站 Key 页面核对权限。",
          "404 / Model not found：核对地址末尾、所选协议和完整模型 ID，三个字段分别检查。",
          "429 / 请求频繁：先停止连续重试，等待后只发一条测试消息。",
          "有模型列表但发消息失败：列表只证明目录可读，仍需以实际回复及本站用量记录确认。"
        ],
        "limitations": [
          "提示 CLIENT_UPGRADE_REQUIRED 时，按官方说明升级客户端，不要伪造版本号。",
          "关闭启动终端会停止本机服务；再次使用时重新运行启动命令。",
          "本文核对公开配置资料，未用您的 Key 逐客户端实机验收。"
        ],
        "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”",
        "download_url": "https://github.com/deepseek-ai/deepseek-harness",
        "helper_url": null,
        "guide_verified_at": "2026-10-24",
        "test_prompt": "只回复：连接成功。不要读取文件，不要调用工具，不要修改项目。"
      },
      "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": [
        "安装 ZCode 并打开测试项目：从 ZCode 官方入口安装适合当前系统的版本，打开一个测试文件夹。",
        "打开模型管理：点击对话区域的模型名称，在模型选择器底部选择“管理模型”，进入“模型设置”。",
        "添加一个自定义供应商：点击供应商列表底部的“添加供应商”，名称可填“鸡出没API”。",
        "按协议填对应地址：OpenAI 兼容地址填 https://xcmapi.org/v1；Anthropic 兼容地址填 https://xcmapi.org。按使用的模型选择协议，不在一个框里写两个地址。",
        "填写自己的 Key 并保存：把本站 Key 粘贴到 API Key 框。保存后检查是否出现供应商条目。",
        "添加模型并开启开关：点击“添加模型”，填本站允许的完整模型 ID；打开模型的启用开关。显示名称可以改，模型 ID 不能随意改写。",
        "回到聊天选择这个模型：新建会话，在模型选择器中选新供应商下的模型。",
        "发送测试消息后再使用工具：先验证文字回复，再按需要验证文件编辑、工具调用等能力。不向连接选项中随意追加软件不认识的参数。"
      ],
      "limits": "先添加供应商，再添加模型并启用，最后在聊天中选模型，四步缺一不可。；高级 options 只填写软件支持的连接字段；不要靠追加未知字段强行开启模型能力。；本文核对公开配置资料，未用您的 Key 逐客户端实机验收。",
      "sourceUrl": "https://zcode.z.ai/cn/docs/configuration",
      "verification": "2026-10-24核对官方资料与本页交互；未使用用户Key逐客户端实机测试。",
      "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": "安装 ZCode 并打开测试项目",
            "body": "从 ZCode 官方入口安装适合当前系统的版本，打开一个测试文件夹。",
            "expected": "进入 ZCode 主界面。"
          },
          {
            "title": "打开模型管理",
            "body": "点击对话区域的模型名称，在模型选择器底部选择“管理模型”，进入“模型设置”。",
            "expected": "左侧出现供应商列表。"
          },
          {
            "title": "添加一个自定义供应商",
            "body": "点击供应商列表底部的“添加供应商”，名称可填“鸡出没API”。",
            "expected": "进入地址与 Key 的配置界面。"
          },
          {
            "title": "按协议填对应地址",
            "body": "OpenAI 兼容地址填 https://xcmapi.org/v1；Anthropic 兼容地址填 https://xcmapi.org。按使用的模型选择协议，不在一个框里写两个地址。",
            "expected": "协议与地址配套，未重复追加路径。"
          },
          {
            "title": "填写自己的 Key 并保存",
            "body": "把本站 Key 粘贴到 API Key 框。保存后检查是否出现供应商条目。",
            "expected": "私有 Key 已保存到本机。"
          },
          {
            "title": "添加模型并开启开关",
            "body": "点击“添加模型”，填本站允许的完整模型 ID；打开模型的启用开关。显示名称可以改，模型 ID 不能随意改写。",
            "expected": "模型已出现在启用列表中。"
          },
          {
            "title": "回到聊天选择这个模型",
            "body": "新建会话，在模型选择器中选新供应商下的模型。",
            "expected": "当前选择与刚添加的配置一致。"
          },
          {
            "title": "发送测试消息后再使用工具",
            "body": "先验证文字回复，再按需要验证文件编辑、工具调用等能力。不向连接选项中随意追加软件不认识的参数。",
            "expected": "基础通道成功，后续能力分别确认。"
          }
        ],
        "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": "收到实际文字回复；在本站用量记录中找到对应调用。模型列表可见或 Key 已保存都不能单独证明连接成功。",
        "troubleshooting": [
          "先添加供应商，再添加模型并启用，最后在聊天中选模型，四步缺一不可。",
          "高级 options 只填写软件支持的连接字段；不要靠追加未知字段强行开启模型能力。",
          "401 / Invalid API Key：重新复制自己的 Key，检查首尾空格以及该 Key 是否启用。",
          "403：检查 Key 所属分组是否允许当前模型；先回本站 Key 页面核对权限。",
          "404 / Model not found：核对地址末尾、所选协议和完整模型 ID，三个字段分别检查。",
          "429 / 请求频繁：先停止连续重试，等待后只发一条测试消息。",
          "有模型列表但发消息失败：列表只证明目录可读，仍需以实际回复及本站用量记录确认。"
        ],
        "limitations": [
          "先添加供应商，再添加模型并启用，最后在聊天中选模型，四步缺一不可。",
          "高级 options 只填写软件支持的连接字段；不要靠追加未知字段强行开启模型能力。",
          "本文核对公开配置资料，未用您的 Key 逐客户端实机验收。"
        ],
        "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": "打开模型设置并添加供应商",
        "download_url": "https://zcode.z.ai/",
        "helper_url": null,
        "guide_verified_at": "2026-10-24",
        "test_prompt": "只回复：连接成功。不要读取文件，不要调用工具，不要修改项目。"
      },
      "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/"
    }
  ],
  "instructions_version": "beginner-step-by-step-v2"
}
