• 请不要在回答技术问题时复制粘贴 AI 生成的内容
jazzenchen
V2EX  ›  程序员

本地 API Proxy: Anthropic / OpenAI Chat / Responses 互转,支持 DeepSeek

  •  
  •   jazzenchen ·
    jazzenchen · May 5 · 4062 views
    This topic created in 48 days ago, the information mentioned may be changed or developed.

    最近在深度试用几家国产大模型,但几乎清一色都还是 OpenAI Chat Completions 接口,导致在较新的 Codex CLI 里没法直接用。

    于是在开源工具 VibeAround 的命令行一键启动功能上,加了一个 local API proxy ,主要解决 coding agent 和模型 provider 之间 API 格式不一致的问题。

    现在可以在 Anthropic Messages / OpenAI Chat Completions / OpenAI Responses 之间做转换和适配,比如把 Claude 模型跑到 Codex CLI 里,或者把 OpenAI 模型跑到 Claude Code 里。

    这次重点是 DeepSeek 。

    它除了 Chat -> Responses 之外,还需要额外处理 thinking/reasoning content 和 tool call 合并。虽说是 vibe 出来的功能,但确实花了不少 token 。

    现在配置过的 provider profile 都可以通过 VibeAround 暴露成本地 endpoint ,给 Codex CLI / Claude Code 或者其他工具比如 Cursor 使用。

    理论上 Kimi 、MiniMax 、Z.AI/GLM ,以及自定义 OpenAI-compatible Chat Completions 都支持。

    项目地址: https://github.com/jazzenchen/VibeAround

    Supplement 1  ·  May 21
    更新:这里的 “API Proxy / proxy” 命名已经改成 “API Bridge” 了,避免和网络代理混淆。对应的协议转换库也从 va-ai-api-proxy 更名为 va-ai-api-bridge ,昵称 va-aab 。

    Repo: https://github.com/jazzenchen/va-ai-api-bridge
    Crate: https://crates.io/crates/va-ai-api-bridge
    Supplement 2  ·  8 days ago
    重新补充一下最近的方向:这个功能现在已经不只是一个 API proxy 了,VibeAround 经过迭代,现在的开发方向是一个桌面端的 Coding Agent 启动器 / 控制台。

    最核心的使用方式是:
    1. 一键启动 Claude Code / Codex CLI 等 Coding Agent Claude Desktop / Codex Desktop 也已经提供了支持。
    2. 启动时会根据选定的工作目录、三方 API 配置、历史会话,临时注入到环境变量,而不去污染各个 Agent 自己原本的配置文件。

    API Bridge 现在只是其中一层能力:用于把 OpenAI Chat Completions / OpenAI Responses / Anthropic Messages / Gemini Generate Content 这些协议互转,而这部分也拆成了独立开源库:

    https://github.com/jazzenchen/va-ai-api-bridge

    桌面端这边还加了 Bridge recorder ,用于实时抓取 Coding Agent 和 API 服务的通信记录,可以抓取系统提示字、深入 API 接口调优等。
    19 replies    2026-06-14 21:00:25 +08:00
    jazzenchen
        1
    jazzenchen  
    OP
       May 5
    比较好玩的是,在 Claude Code 里面跑着 openai/gpt-5.5 ,Codex CLI 里面挂着 anthropic/claude-opus-4.6 。

    然后分别问它们: “你们里面都是啥模型?”

    Claude Code 会老老实实回答: 我是 Claude Code ,但环境显示我由 openai/gpt-5.5 驱动。
    但 Codex CLI 一脸认真地说: 我是 Codex ,模型是 GPT-5.5 。

    也不知道是 Codex CLI 的系统提示词控制力强,还是 claude opus 的指令遵循能力更强?
    longxk
        2
    longxk  
       May 5
    咦,这个不是 LiteLLM Proxy 做的事情吗?
    jazzenchen
        3
    jazzenchen  
    OP
       May 5
    @longxk 没错没错,不过我这个没那么重,本意是通过远程 IM 遥控 Codex / Claude 的时候,可以更灵活选择模型供应商,顺手就把这个能力给加上了。
    xingheng
        4
    xingheng  
       May 5
    embeding 模型怎么做的
    sommio
        5
    sommio  
       May 6 via Android
    @longxk litellm 还没兼容 deepseek v4 ,我最近发个帖子讨论这个话题
    cooli
        6
    cooli  
       May 6
    厉害了,能解决新版本 Codex 接入 Aliyun Coding Plan 吧。
    jazzenchen
        7
    jazzenchen  
    OP
       May 6
    @cooli 按说应该可以,但百炼的 Coding Plan 每次看都在补货,还没有实测过
    chenzezeya
        8
    chenzezeya  
       May 6
    codex 的客户端可以支持吗
    PowerDi
        9
    PowerDi  
       May 6
    这个打开怎么是 agent 代理的工程,跟你说的是一个东西吗
    jazzenchen
        10
    jazzenchen  
    OP
       May 6
    @chenzezeya codex 桌面应用要 codex 的改配置文件,工具里面开启 proxy 以后有说明,claude 也一样。codex cli 和 claude code 不需要改配置,我也不会去动原有的配置文件,直接从应用里启动就行了。
    jazzenchen
        11
    jazzenchen  
    OP
       May 6
    @PowerDi 本地会起一个 web server ,用本地接口做中转,在 claude message / openai responses / openai chat 三种协议里做转换。
    jiaqiliu
        12
    jiaqiliu  
       May 7
    用 Chat -> Responses 的话, 是不是只能给 codex cli 用? 支持 codex 桌面版吗?
    jazzenchen
        13
    jazzenchen  
    OP
       May 8 via iPhone
    @jiaqiliu deepseek 还不行,只能给 codex cli 用,这里不是简单转一个请求的问题,deepseek 要求装填历史思考内容,面向桌面端实现起来会比较麻烦。
    slowman
        14
    slowman  
       May 8
    profile 'custom-xxx' cannot launch 'claude'
    十分令人困惑
    V2PlusMax
        15
    V2PlusMax  
       May 14
    cc-switch 也可以转发请求
    jazzenchen
        16
    jazzenchen  
    OP
       May 14
    @slowman 添加 profile 的时候如果没有提供 anthropic 接口,默认是不能直接启动 claude 的,需要开启 proxy 请求转译。
    jazzenchen
        17
    jazzenchen  
    OP
       May 14
    @V2PlusMax https://github.com/farion1231/cc-switch/issues/2463 目前看 deepseek 到 codex 还没有提供支持。
    GiRLIn11
        18
    GiRLIn11  
       21 days ago
    jazzenchen
        19
    jazzenchen  
    OP
       8 days ago
    @GiRLIn11 感谢,我看了下 llm-rosetta ,协议转换这层确实是类似方向,而且它作为 Python library / gateway 做得挺完整。

    不过 VibeAround 的重点不太一样:我不是想单独做一个通用转换库,而是做一个桌面端入口,把 Coding Agent 的启动、模型 profile 、工作目录、历史会话和本地 bridge 串起来。

    所以协议互转只是 VibeAround 里的一部分能力,真正日常用起来更像是“Agent 启动器 + Profile 管理 + 本地 Bridge + Web/手机远程控制”。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5485 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 103ms · UTC 08:46 · PVG 16:46 · LAX 01:46 · JFK 04:46
    ♥ Do have faith in what you're doing.