来源:互联网 更新时间:2026-06-01 07:44
最近有个小工具 GodeX——一个本地 OpenAI Responses API 网关,专门用来让 Codex、CLI Agent 这类客户端接入 DeepSeek、Xiaomi、MiniMax、Zhipu 等 Chat Completions provider。
一开始,这个问题看起来挺简单:
但真做下去就会发现,事情远没有这么轻。
普通聊天请求可以转,但 Agent 请求不一样。它可能带工具调用、结构化输出、流式响应、previous_response_id、usage、cached tokens、reasoning、provider-specific finish reason。只做字段改名,很快就会陷入一堆边界问题。
这篇文章不谈“项目发布”,重点聊一聊在做 GodeX 时遇到的几个协议桥接点。
最直觉的结构是:
Responses request-> gateway-> Chat Completions request-> provider response-> gateway-> Responses response
如果只有 input -> output_text,问题不大。
但 Agent 请求里会出现:
tool_choice;previous_response_id;这些能力在不同 provider 上支持程度不一致。
比如 tool_choice: required,有的 provider 支持,有的不支持。有的只支持 auto。如果网关静默降级,Agent 行为可能直接变了:本来必须调用工具,结果模型开始自由回答。
所以 GodeX 做了一层 compatibility plan:请求进来以后,根据 provider capability 判断哪些能力原生支持、哪些需要降级、哪些必须拒绝,并把结果写入 diagnostics。
一个容易走偏的设计是:每个 provider 里写一套 mapper。
deepseek mapper
zhipu mapper
minimax mapper
xiaomi mapper
短期看很快,长期会有两个问题。
第一,公共逻辑重复。工具调用恢复、结构化输出降级、Responses output item 重建,这些逻辑会散落到每个 provider。
第二,策略不一致。今天 DeepSeek 对 strict schema 降级,明天 Zhipu 直接报错,后天 MiniMax 静默丢字段。客户端看到的行为会越来越不可预测。
GodeX 的做法是把边界拆开:
bridge 管公共 Responses-to-Chat 策略;providers 只描述 provider 差异;responses 管同步/流式 pipeline;trace 管可观测性。Provider 只回答:
至于“降级还是拒绝”,由 bridge kernel 统一决定。
流式响应是最容易被低估的部分。
Chat Completions SSE 通常是 provider delta;Responses SSE 则有完整事件生命周期。
一个 Responses stream 可能包含:
如果网关只是把上游 delta 原样转发,Codex 这类客户端就无法把它当标准 Responses stream 使用。
所以 GodeX 在 bridge/stream 中做了状态机,把上游 chunks 转换成 Responses events。状态机要处理:
这里的经验是:只要涉及 Agent streaming,就不要用一堆临时 if/else 拼事件。状态机会更啰嗦,但更容易证明行为。
另一个典型问题是结构化输出。
有的 provider 支持 json_object,但不支持严格 json_schema。客户端如果要求 strict schema,网关有几种选择:
json_object;GodeX 当前的做法是:如果 provider 只支持 json_object,就降级并注入 schema 格式指令,最终输出阶段检查 JSON 语法。
它不是完整 JSON Schema 校验,但至少避免了“请求看起来成功,结果输出完全不是 JSON”的情况。
重点不是“永远降级”,而是“降级必须可诊断”。
Responses API 的 previous_response_id 很容易被误解成会话 ID。
GodeX 里把它当父指针处理。每个 response 指向上一个 response,下一轮请求进来时,session store 恢复历史,再构建 provider-neutral history。
这里有个关键取舍:session store 不保存 provider 私有 message 格式,而是保存 API-shaped snapshot。
这样做的好处是:
Agent 请求失败时,问题可能出在很多地方:
没有 trace,只看最终输出很难定位。
GodeX 默认写 SQLite trace,记录 provider request、response、stream event、usage 和 error。尤其是流式转换,能同时看到原始 provider event 和转换后的 Responses event,会省很多排查时间。


如果只是调用一次模型 API,不一定需要网关。
但如果你在做 Codex 接入、多 provider 路由、内部 Agent 平台,网关层很快就会承担这些职责:
GodeX 只是这个问题的一种实现。回看整个过程,最大的收获是:模型网关真正复杂的地方不在 HTTP 转发,而在协议语义的边界。
七麦数据官网网页地址 七麦数据官方入口在线首页
问卷星官方网站入口地址 问卷星网页版在线使用
币安Binance官方中文网站 币安App最新版下载及新手注册指南
闲鱼的严选验货在哪里看?闲鱼严选和验货宝哪个可靠
PokePay加密卡2026完整指南:申请开卡全攻略+多场景应用技巧
淘宝直播如何看回放在哪里看?怎么查看淘宝直播回放
摩托车活塞环性能如何
为何比特币BTC价格跌破7.3万美元?一文拆解影响近期比特币行情的五大原因
ThinkBook系列最新价格全解析:2026年选购避坑与实时询价指南
迷你网名古风男生霸气(精选100个)
文雅简易网名男生可爱(精选100个)
GPT5.6惨遭切脑,Fable 5回归要变弱鸡版?
《梦幻西游》特殊鬼怪怎么抓-隐藏变异鬼应对要点
索尼限时赠送PS Plus Premium七日会员,需手
王者荣耀「西行封妖记」【孙权-仙扇使者】6月25日上线!
豆包AI专业版使用教程【新手必看】
闲鱼严选和验货宝哪个可靠?闲鱼的验货宝怎么样,,
币圈十大实用工具:从实时行情监控到数据分析、资产管理
币安杀入美股市场,重头戏bStocks还没来
陈姓和杨姓网名大全男生(精选100个)
手机号码测吉凶
本站所有软件,都由网友上传,如有侵犯你的版权,请发邮件haolingcc@hotmail.com 联系删除。 版权所有 Copyright@2012-2013 haoling.cc