ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

AutoGPT 平台 Codex 订阅直连(Subscription Transport)私有预览指南:打通 ChatGPT 账号与 Codex App Server 的三种执行路径

AutoGPT 平台 Codex 订阅直连(Subscription Transport)私有预览指南:打通 ChatGPT 账号与 Codex App Server 的三种执行路径 AutoGPT 平台 Codex 订阅直连Subscription Transport私有预览指南打通 ChatGPT 账号与 Codex App Server 的三种执行路径【免费下载链接】AutoGPTAutoGPT is the vision of accessible AI for everyone, to use and to build on. Our mission is to provide the tools, so that you can focus on what matters.项目地址: https://gitcode.com/GitHub_Trending/au/AutoGPTAutoGPT 平台autogpt_platform提供了一项连接自有 ChatGPT/Codex 订阅账号的能力把账号自己的 Codex 额度接入现有的 Code Generation 块、AutoPilot 会话与 AutoPilot 图节点执行。本文以 docs/platform/codex-subscription-preview.md 为主体结合 blocks/codex.py、codex_preview_smoke.py、docker-compose.platform.yml 等仓库源码说明该私有预览的范围、本地运行与验证步骤、部署成私有云预览的注意事项以及设计上的安全边界帮助你在自己的 AutoGPT 部署中完成用 ChatGPT 订阅额度跑 Codex这条链路的搭建与排查。预览范围什么流量走 ChatGPT 订阅什么不走该功能本质是一个订阅传输层subscription transportcodex作为凭据提供方credential providerCodex App Server作为执行运行时execution runtime。用户连接一个 ChatGPT 账号后该账号的 Codex 额度被用于以下三条显式的执行路径既有的Code Generation块通过codex_app_servertransport 执行新建的AutoPilot聊天会话——当ChatGPT/Codex是唯一已连接的订阅传输时自动选用或当连接了多个订阅传输时由用户显式选择AutoPilot 图节点在节点上显式选择一个 ChatGPT/Codex 连接后执行。需要特别强调的是边界ChatGPT 套餐并不是无限推理。这些调用会消耗所连接账号的 Codex 额度allowance或 credits并受其速率限制约束。订阅支撑的用量会被记录为billing_modeuser_subscription在 blocks/codex.py 的_record_subscription_usage中可以看到该字段与auth_providercodex、execution_pathcodex_app_server一同被写入执行统计而不会被报告为 AutoGPT provider 的 USD 花费。预览不会把下列流量路由到所连接的账号Orchestrator、共享 LLM 块、图像生成以及后台系统任务。既有的图与 AutoPilot 会话保持各自存储的路由不变只有当恰好连接了一个订阅传输时新建的 AutoPilot 会话才会自动使用它。本地运行与连接 ChatGPT 账号从 autogpt_platform 目录启动整套栈docker compose up -d --build与很多需要功能开关feature flag的私有预览不同Codex 配对及其支持的执行路由不需要任何环境变量形式的 feature flag。Compose 栈为 REST、executor 与 Copilot executor 进程挂载了/run/autogpt-codex一个内存支撑的临时文件系统tmpfs。在 docker-compose.platform.yml 中可以看到其定义x-codex-tmpfs: codex-tmpfs - /run/autogpt-codex:rw,nosuid,nodev,noexec,mode0700,size128m三个后端服务通过环境变量CODEX_TEMP_ROOT: /run/autogpt-codex指向它。这一 tmpfs 挂载对应 settings.py 中codex_temp_root字段的描述Optional tmpfs root for isolated Codex runtime homes——Codex 运行时所需的临时授权 home 目录必须落在内存盘上不可放到持久化卷。启动后打开http://localhost:3000进入Settings Integrations并连接Codex。在弹出的登录窗口中打开 ChatGPT 的验证页面输入一次性验证码device code完成配对。Codex 登录背后的实现结构从源码看设备码登录并不是一段临时脚本而是一个完整的状态机协调器 login.py 的CodexLoginCoordinator负责启动设备码登录、超时控制默认codex_login_timeout_seconds900秒、取消与凭据持久化状态存储在 Redis 中RedisCodexLoginStateStore以每个用户只能有一个 active 登录尝试的互斥逻辑运行并维护 owner lease默认 30 秒防止多个 REST 副本同时接管同一用户的登录login.py登录完成后OAuth2 凭据经upsert_single_provider_locked写入凭据库凭据以providercodex、refresh_strategyprovider_runtime标记login.py即刷新令牌由 Codex 运行时自身管理而非平台常规 OAuth 流程。登录状态接口位于 api/features/integrations/codex.py包括POST /device-login/{login_id}/cancel等其中的build_device_login_url同文件 L139-L156由FRONTEND_BASE_URL显式拼接登录页地址——这是后文部署配置的关键原因。测试路径一Code Generation 块Codex App Server transport文档给出的操作步骤在图中添加Code Generation块将Transport设为Codex App Server选择已连接的ChatGPT for Codex凭据运行该图。在块实现 blocks/codex.py 中CodexExecutionTransport枚举只有两个值openai_api与codex_app_server。凭据输入是一个带判别器的联合CodexCredentialsField()L112-L124把 transport 值映射到不同 provider 与凭据类型——openai_api→ OpenAI API keycodex_app_server→oauth2类型的 ChatGPT 连接。运行时分流在块的run中完成L301-L316API transport 走_run_openai_apiOpenAI Responses APIApp Server transport 走_run_codex_app_server经 credential lease 调用订阅运行时。需要注意的差异点既有图默认仍走 OpenAI API transport需要显式切换块上的model 下拉框只作用于 OpenAI API transport。对 App Server 订阅路径模型由当前账号兼容的默认模型决定——App Server 的实时模型目录live catalog可以独立于公开 API 的模型名变化这一点在设计上就是有意为之reasoning_effort、max_output_tokens等高级参数同样仅对 API 传输有意义App Server 路径直接把 effort 映射到 Codex 运行时的取值blocks/codex.pymax_output_tokens则由 App Server 使用其模型与套餐限额。代码中可看到的候选模型集合包括gpt-5.6-sol、gpt-5.6-terra、gpt-5.6-luna、gpt-5.3-codex、gpt-5.1-codexblocks/codex.py但这属于平台侧暴露的名称集合实际可用性仍以所连账号在 App Server 上可见的模型为准。测试路径二AutoPilot 会话直连订阅AutoPilot 上的操作流程打开AutoPilot并开始一个新任务如果 ChatGPT/Codex 是唯一已连接的订阅传输则会话自动使用它且不显示连接选择器若连接了多个订阅传输则在发送第一条消息前选择所需的连接照常选择Fast或Thinking、Balanced或Advanced然后发送消息。文本与获准的 AutoGPT 工具调用会经由既有的 AutoPilot 事件面流式返回。文档强调的会话语义是路由与凭据被存到新会话上且对该会话不可变。要换用另一个已连接订阅传输请另开一个任务服务端在每个排队轮次queued turn之前重新加载权威会话路由排队消息只携带credential ID绝不携带 OAuth token凭据缺失、被吊销或忙时都会显式失败——不存在静默回退到 AutoGPT 出资模型或他人凭据的情况。模式/模型映射与执行池模型模式 模型控件会先从共享模型目录shared model catalog选出一条 Codex 路由再对照所连接账号公示的模型做校验。当账号暴露相应模型时预览的映射关系为用户选择映射模型Fast / BalancedGPT-5.6 LunaFast / Advanced 与 Thinking / BalancedGPT-5.6 TerraThinking / AdvancedGPT-5.6 Sol若账号没有暴露这些模型则回落到该账号可见的默认模型。文件附件、构建 Agent 的工具以及 SDK 子会话都走与平台出资 AutoPilot 相同的Claude Agent SDK路径。Builder 面板绑定的会话在本预览中保持平台出资——因为其持久会话在创建时没有 AI 连接选择器。从执行层看Copilot executor为每个已连接账号持有一个排他凭据租约和一个Codex 运行时再把重叠的多个聊天多路复用到独立的 Codex 线程上。取消或结束其中某个聊天不会停止它的兄弟会话。这一池是进程本地的被路由到另一个 executor 进程或副本的请求目前无法加入该 owner 池会以可重试的有界错误codex_credential_busy失败。因此文档明确指出多副本的生产化部署需要凭据 owner 路由credential-owner routing或专用桥接服务。常规平台 AutoPilot 路由不受影响。测试路径三AutoPilot 图节点块在图中添加AutoPilot块在ChatGPT / Codex connection下选择已保存的连接运行该图。该图节点的凭据字段是引用型凭据输入reference-only credential input与路径一中的 Code Generation 块不同图校验只检查所有权导出export时会剥去凭据 ID图执行器graph executor不持有外层凭据租约只有在 Copilot executor 消费该排队轮次时才会获取那个唯一的运行时租约。这种设计在文档中被解释为既保持正常的凭据重绑定credential rebinding又不会让嵌套执行路径死锁。把该字段留空则保持既有的平台出资行为。底层传输Claude Agent SDK harness 回环 Messages 端点AutoPilot 保留既有的Claude Agent SDK 与 Claude Code CLI作为其 agent harness。实现上一个请求作用域request-scoped的回环 Anthropic Messages 端点把模型轮次翻译成固定的 Codex App Server 实验性dynamicTools协议Claude Code 依旧拥有 MCP 工具循环、权限钩子、builder 行为、transcript、resume、compaction 与子会话机制Codex 只负责用所选用户的 ChatGPT/Codex 凭据提供模型响应。安全细节回环端点绑定在127.0.0.1的一个临时端口上只接受为该轮次生成的随机 capabilitycapability 被放进 Claude CLI 子进程环境ChatGPT 的 access、refresh 与 ID token 从不进入该环境Anthropic 文本与 tool-use 事件复用普通 AutoPilot 使用的 Claude SDK 响应适配器。配套的兼容网关实现位于 backend/copilot/sdk/codex_compat_gateway.py及其测试codex_compat_gateway_test.py、codex_compat_cli_test.py。App Server 进程本身是 fail-closed 的原生 shell、文件系统、web 搜索、apps、插件、环境、workspace 根目录以及审批请求全部被禁用其沙箱为只读。任何副作用只能经由Claude Code 已被允许通过 AutoGPT 的 MCP 与安全钩子调用的工具产生。对应地在 runtime.py 中可以看到_install_fail_closed_approval_handler这样的安装逻辑。版本钉死是硬性要求实现把openai-codex与其捆绑的运行时一起钉在0.144.4runtime.py 中OPENAI_CODEX_VERSION CODEX_RUNTIME_VERSION 0.144.4并且不要单独浮动这两个依赖中的任何一个——runtime.py 中甚至有断言Codex SDK and runtime must both be pinned to version 0.144.4。Claude Agent SDK 与其捆绑 CLI 同样由后端锁文件backend lock钉住。由于dynamicTools与兼容面对版本敏感任何更新都必须在聚焦的协议测试、Messages 一致性测试与捆绑 CLI 测试全部通过后才能发布。这些测试在仓库中散见于 backend/integrations/codex/如runtime_test.py、transport_test.py、launcher_test.py与 backend/copilot/sdk/ 下。验证既有本地 Codex 登录smoke test在启动整套栈之前可先从 autogpt_platform/backend 运行内置冒烟测试验证本地既有的 Codex 登录是否可用poetry run python -m scripts.codex_preview_smoke脚本 scripts/codex_preview_smoke.py 会执行下列检查复制而非移动~/.codex/auth.json到一个隔离的临时 home注意源码中TemporaryCodexHome.create(temp_root)与materialize_auth_bundle的组合校验账号、模型与速率限制runtime.account()、runtime.models()、runtime.rate_limits()执行一次订阅支撑的推理轮次检查运行时无法读到 host canaryhost-canary.txt与环境变量AUTOGPT_CODEX_SMOKE_CANARY也没有改写源登录文件——源码会在结束前对源文件与临时 home 中的 auth bundle 做 SHA-256 摘要比对codex_preview_smoke.py。冒烟测试结束时会输出 JSON包含 runtime 版本、账号类型account_type、套餐类型plan_type、速率限制套餐、可见模型列表、最终回复与 token 用量。注意它会真实消耗所连接账号的一小部分 Codex 用量。部署私有云预览Codex 配对与其支持的执行路由不需要 availability flag 或前端构建期覆盖。文档建议用部署自身的普通访问控制来圈定私有预览范围而不要试图用环境变量隐藏设备登录。部署前的架构要求REST、executor、Copilot executor必须共享普通 AutoGPT 的凭据数据库、加密配置与 Redis 集群每个可能启动 App Server 的进程都应有一个隔离的内存支撑CODEX_TEMP_ROOT绝不能挂载在持久卷上本地 Compose 中/run/autogpt-codextmpfs 的mode0700,size128m即对应此要求。三个 URL 环境变量环境变量语义作用对象FRONTEND_BASE_URL预览的精确公开源含https://scheme、不含路径REST运行时NEXT_PUBLIC_FRONTEND_BASE_URL同上但会被编译进前端 bundle前端镜像 build argBETTER_AUTH_URL预览的精确公开源前端运行时FRONTEND_BASE_URL会被 REST 用来从配置的 origin 构建设备登录 URL而不是信任转发的 Host 头见 api/features/integrations/codex.py 的build_device_login_url。如果云预览里遗留了 production 或 localhost origin弹窗会被送到一个没有该预览 Better Auth cookie的 host 上。本地开发 Compose 文件把三者默认转发为http://localhost:3000docker-compose.platform.yml。登录状态与副本限制设备登录状态与所有权由 Redis 支撑因此轮询与取消可以命中不同的 REST 副本但活跃的 App Server 登录 actor 仍是进程本地的owner pod 重启会中断登录其它副本无法接管或恢复它。因此滚动部署应避开活跃登录期用户侧只需重新发起一次登录即可。要做广域云 rollout必须把登录 actor 迁移到下述专用桥接服务中。网络要求容器需要出站 HTTPS 访问 OpenAI 的 ChatGPT/Codex 端点由于 Codex App Server 采用轮询设备码完成状态的方式不需要 OpenAI 的回调入站callback ingress。预览安全边界与部署限制文档列出的安全边界可概括为加密的、USER 作用域的IntegrationCredential行始终是凭据的事实来源source of truth原始 ChatGPT token 不会进入Redis、RabbitMQ、前端响应、容器级环境变量或 AutoPilot 会话记录每次原生调用或共享 AutoPilot 运行时 actor 都会把授权材料实体化到隔离的临时 home。AutoPilot actor 只在仍有重叠聊天挂接期间持有该 home在整个生命周期与关闭时都会 checkpoint Codex 管理的刷新凭据然后清理 home可在 temporary_home.py 与 auth_bundle.py 中看到对应实现Code Generation 轮次不暴露动态工具或 host workspaceAutoPilot 只暴露其既有 Claude SDK/MCP harness 注册的工具运行时复用严格限定在同一用户同一凭据凭据绝不跨用户池化也不被替换成另一账号不存在静默的平台 key 回退。当前形态不等于生产安全边界文档给出的结论非常明确当前实现是在普通的 REST、executor 与 Copilot executor 容器内进程内in-process启动 Codex App Server的。这些容器以 root 运行并且保留了后端服务更宽泛的数据库、Redis、文件系统与网络权限。临时 home 与 fail-closed 线程配置降低了暴露面但并不构成面向广泛外部云部署的安全边界。因此当前形态只适合本地开发或严格控制访问的员工/私有预览在对外部用户开放前必须把运行时与设备登录监管迁移到专用的非特权桥接服务中要求包括非 root 用户、只读 root 文件系统、去掉多余 capabilities、纯内存凭据 home、进程与并发限制、收窄的出站流量以及最小权限的内部凭据租约接口桥接服务还必须拥有登录 actor 接管或显式重启语义在更广的 rollout 前还需完成针对 hosted subscription passthrough 的商业与政策审查。小结一句话掌握该预览的取舍这个私有预览的价值在于让你或你的用户在 AutoGPT 平台上把自有 ChatGPT 订阅变成 Codex 执行引擎覆盖 Code Generation 块、AutoPilot 聊天与 AutoPilot 图节点三条路径同时在凭据隔离、模型目录独立演化、fail-closed 沙箱等方面做了严格约束。它的代价与局限同样清晰消费的是用户订阅额度、受限于账号速率、执行池进程本地化多副本需要 owner 路由或专用桥接、当前仅适合受控私有预览而非公开云生产。若你的部署场景正好是给少数可信账号复用 Codex 订阅可直接按本文的本地步骤验证三条路径若目标是多租户公开服务则应以专用非特权桥接 owner 路由作为后续改造方向。【免费下载链接】AutoGPTAutoGPT is the vision of accessible AI for everyone, to use and to build on. Our mission is to provide the tools, so that you can focus on what matters.项目地址: https://gitcode.com/GitHub_Trending/au/AutoGPT创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表