background-agents模型供应商账号中介(Broker)详解:access-token端点设计全指南
background-agents模型供应商账号中介Broker详解access-token端点设计全指南【免费下载链接】background-agentsAn open-source background agents coding system项目地址: https://gitcode.com/GitHub_Trending/ba/background-agents在开源项目background-agentsOpen-Inspect中模型供应商账号中介 broker 负责为沙箱安全签发模型访问凭证而access-token端点正是这条凭证链路的入口。本文面向新手用最少代码讲清楚为什么需要 broker、access-token 端点如何鉴权、令牌刷新为何要排队以及它和 runtime-credential 端点的分工。为什么需要中介先理解凭证隔离问题 background-agents 是一个后台编码 Agent 系统用户在网页上描述需求系统在云端沙箱里启动 AI 编码代理干活。这里有个天然矛盾AI 订阅凭证OpenAI、xAI 等是长期有效的敏感资产泄露代价极高沙箱是执行代码的隔离环境必须能用这些凭证才能调用模型。如果把长期凭证直接塞进沙箱环境变量任何一个有代码执行能力的 Agent 都可能把它读走。background-agents 的解法是凭证中介broker架构长期凭证只存放在控制面control-plane并整体加密沙箱每次需要访问模型时向access-token端点申请一枚短命访问令牌用完即弃。这个设计的完整背景记录在 provider-accounts.md 中其中Broker Architecture一节是端点设计的权威说明。access-token 端点一个 provider 中立的沙箱接口核心路由只有一行定义在 model-provider-accounts.tsPOST /sessions/:id/provider-auth/:provider/access-token它的巧妙之处在于provider 中立OpenAI、xAI 走同一条路由而不是各自维护一个端点。请求处理逻辑handleProviderAccess做了四步判断步骤判断结果1用沙箱身份查 D1 中该会话绑定的认证行未配置 →4042认证模式是legacy_scoped_oauth转交旧版刷新器兼容处理3认证模式是api_key409该走密钥注入不该走 broker4账号模式调用ModelProviderAccountBroker.getAccess()签发令牌一个关键安全细节沙箱不能自己指定用哪个账号。它只能提交会话 ID provider真正绑定哪个账号 ID 由创建会话时写入的不可变认证行决定。这堵死了沙箱探测其他账号的路径——这正是文档里sandbox cannot submit a provider-account ID要表达的意思。鉴权边界只认沙箱不认人 ️该路由通过admit()挂载了SCM_AGNOSTIC_SANDBOX_ROUTENO_AUTHORIZATION见 shared.ts含义是调用者必须是该会话对应的沙箱身份sandbox principal携带别的沙箱 ID 直接被拒普通用户或服务凭证一律拒绝——账号列表、凭证读取对人类用户有独立的管理端路由沙箱只能走这条消费端响应统一加Cache-Control: no-store成功或失败都不允许被缓存防止令牌经缓存层扩散。Broker 内部三步拿到访问令牌ModelProviderAccountBroker 的getAccess()是整个系统的心脏流程可以概括为校验账号可用性账号必须存在、provider 匹配、状态为active未禁用、未归档优先用缓存令牌加密凭证里可能已缓存 access token若剩余有效期超过 provider 的刷新缓冲refreshBufferMs直接返回不打扰上游需要刷新时领取锁再刷新通过数据库的条件更新原子地声明我要刷新了exchange_state: idle → in_flight只有领取成功的进程才真正调用 provider 的刷新接口。第 3 步是设计中最精彩的部分。为什么刷新要排队旋转式刷新令牌的并发难题 ⏳OpenAI 这类 provider 采用旋转式刷新令牌旧的 refresh token 用完即失效必须原子地持久化新值。如果两个控制面进程同时刷新A 用旧 refresh token 换到新令牌 T1成功持久化B 也拿旧 refresh token 去换 → 上游报已失效旧令牌被白白消费账号被迫重连。background-agents 用数据库行上的持久租约解决这个问题SQL 片段见 provider-accounts.md 的Concurrency and Rotation一节实现核心在 claimed-provider-credential-exchange.ts抢锁UPDATE ... SET exchange_statein_flight WHERE credential_version? AND exchange_stateidle恰好一个进程赢落败者轮询败方不重试刷新而是短暂 sleep 后重读数据库等赢家把新凭证写回claim_unavailable分支默认 100ms 间隔完成赢家用匹配的owner generation version条件更新一次性写入新凭证并释放锁超时兜底in_flight标记超过 15 秒DEFAULT_EXCHANGE_TIMEOUT_MS视为模糊交换走 fencing 把账号标记为reconnect_required宁可靠人工重连也绝不重放已消费的令牌。还有一个容易忽视的失败原则如果刷新成功但新凭证无法落盘broker 不会返回这枚 access tokenreconnect_required错误。因为返回它只是短期成功后续必然全断——文档称之为 fail-closed。access-token 与 runtime-credential一对孪生端点 broker 边界其实有两个沙箱路由按凭证类型分工端点适用 provider交付物特点POST /sessions/:id/provider-auth/:provider/access-tokenOpenAI、xAI短命 brokered 令牌每次请求按需签发/刷新POST /sessions/:id/provider-auth/:provider/runtime-credentialClaudeAnthropic setup token存储型静态令牌每次 bridge 启动交付一次后者实现在 provider-runtime-credentials.ts文件头注释写得很清楚access-token 路由per request 铸一枚短命令牌runtime-credential 路由则把存储的静态密钥本身交给沙箱。它同样要求账号 active、解密发生在所有校验之后并带 1 小时过期缓冲EXPIRY_GUARD_MS过期即条件式标记reconnect_required。这种按凭证类型分发的设计让新增 provider 时只需注册 adapter 声明其runtimeCredentialKind路由层无需改动。新手速览这套设计值得借鉴的 4 个点 ✅长期凭证永不出控制面沙箱只能按会话→账号的不可变绑定取短命令牌凭证泄露面被压到最小单一路由 类型分发provider 中立端点 适配层adapter registry避免每家 provider 各开一个端点的蔓延数据库即分布式锁用一条条件UPDATE实现跨进程互斥不依赖特定平台的 Durable Object可移植到任何事务型存储fail-closed 优先于可用性模糊结果可能已消费旋转令牌、落盘失败一律导向重连用一次人工操作换取凭证状态绝对正确。如果你想动手读源码建议按这个顺序先看 provider-accounts.md 的 Broker Architecture 与 Concurrency 两节建立全局再读 model-provider-account-broker.ts主流程、claimed-provider-credential-exchange.ts抢锁/完成/失败分支最后对照 model-provider-accounts.ts 的端点接线测试用例model-provider-account-broker.test.ts则覆盖了exchange_busy、reconnect_required等每种错误码的路径。【免费下载链接】background-agentsAn open-source background agents coding system项目地址: https://gitcode.com/GitHub_Trending/ba/background-agents创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

PostgreSQL 14离线安装实战:本地yum源构建与部署全攻略

PostgreSQL 14离线安装实战:本地yum源构建与部署全攻略

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/18 19:33:54 阅读更多 →
advanced-java 消息队列高可用指南:从 RabbitMQ 主从架构到 Kafka 副本机制的完整剖析

advanced-java 消息队列高可用指南:从 RabbitMQ 主从架构到 Kafka 副本机制的完整剖析

advanced-java 消息队列高可用指南:从 RabbitMQ 主从架构到 Kafka 副本机制的完整剖析 【免费下载链接】advanced-java 😮 Core Interview Questions & Answers For Experienced Java(Backend) Developers | 互联网 Java 工程师进阶知识完全扫盲&…

2026/9/18 19:33:54 阅读更多 →
Visio画三维空间坐标系:从等轴测校准到刻度出图全攻略

Visio画三维空间坐标系:从等轴测校准到刻度出图全攻略

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/18 19:33:54 阅读更多 →

最新新闻

ESP32通过SPI驱动W5500:以太网全链路与实战排查

ESP32通过SPI驱动W5500:以太网全链路与实战排查

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/18 21:04:39 阅读更多 →
招股书PDF结构化抽取实战:从文本解析到字段校验的完整流程

招股书PDF结构化抽取实战:从文本解析到字段校验的完整流程

简介:这份PDF是科沃斯机器人股份有限公司首次公开发行股票(A股)的招股说明书,面向关注智能家电行业、拟研究新股发行案例的投资者、投行从业者及财务研究人员。资源包共1个文件,为PDF格式,大小约17.85MB&am…

2026/9/18 21:04:39 阅读更多 →
人工神经网络如何同时预测刀具磨损与切削力:从特征工程到部署排错

人工神经网络如何同时预测刀具磨损与切削力:从特征工程到部署排错

简介:这是一份关于人工神经网络预测刀具磨损与切削力的学术PDF论文(《人工神经网络预测刀具磨损和切削力》),面向机械制造、智能制造及机器学习交叉领域的研究者和工程师,重点解决加工过程中刀具磨损量和切削力难以精准…

2026/9/18 21:04:39 阅读更多 →
OpenCV图像特效变换:扭曲、球形与波动变换从原理到实战

OpenCV图像特效变换:扭曲、球形与波动变换从原理到实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/18 21:04:39 阅读更多 →
CANN opbase 算子格式解析指南:GetPrimaryFormat 接口详解

CANN opbase 算子格式解析指南:GetPrimaryFormat 接口详解

CANN opbase 算子格式解析指南:GetPrimaryFormat 接口详解 【免费下载链接】opbase 本项目是CANN算子库的基础框架库,为算子提供公共依赖文件和基础调度能力。 项目地址: https://gitcode.com/cann/opbase 导读 GetPrimaryFormat 是 CANN opbase…

2026/9/18 21:04:39 阅读更多 →
企业进行网站建设的方式有哪些?老手避坑指南

企业进行网站建设的方式有哪些?老手避坑指南

企业进行网站建设的方式有哪些?老手避坑指南 自己不会代码想做网站,但怕被外包坑、怕自建太贵,这确实是很多老板的噩梦。别慌,这篇避坑指南帮你理清思路。选对方式,不仅省钱,还能把安全漏洞挡在门外。…

2026/9/18 21:03:40 阅读更多 →

日新闻

Matlab手写逻辑回归:从数学原理到多变量概率预测模型实现

Matlab手写逻辑回归:从数学原理到多变量概率预测模型实现

很多朋友第一次看到"逻辑回归"这四个字,第一反应就是——这玩意儿是个回归模型吧?我当年也是在Matlab里跑完一段代码,看着输出的0.73、0.86这种概率值,才回过神来:这家伙其实是披着回归外衣的分类神器&#…

2026/9/18 0:00:28 阅读更多 →
高值医用耗材研报PDF:用Python完成字段抽取、清洗与趋势预测

高值医用耗材研报PDF:用Python完成字段抽取、清洗与趋势预测

简介:这份报告是2023-2028年高值医用耗材行业调研及发展前景趋势预测报告,面向医疗器械企业管理者、投资机构、行业研究人员及关注政策变化的从业者,用于把握行业监管动向、市场格局与未来趋势。报告以PDF格式呈现,共1个文件、整体…

2026/9/18 0:00:28 阅读更多 →
三维高斯场赋能世界模型:几何语义蒸馏与机器人决策实战

三维高斯场赋能世界模型:几何语义蒸馏与机器人决策实战

先把我自己的背景交代一下:我之前在搞具身智能和机器人导航相关的项目,很长一段时间里都被“环境表示”这件事卡着。传统做法是用点云或者网格做几何建模,语义信息另外再跑分割模型,两套东西各管各的,时间一长就会发现…

2026/9/18 0:00:28 阅读更多 →

周新闻

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验 【免费下载链接】ai The AI Toolkit for TypeScript. From the creators of Next.js, the AI SDK is a free open-source library for building AI-powered applications and ag…

2026/9/16 19:03:19 阅读更多 →
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化

Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化 【免费下载链接】refine A React Framework for building internal tools, admin panels, dashboards & B2B apps with unmatched flexibility. 项目地址: https://gitcode.com/GitH…

2026/9/17 7:57:36 阅读更多 →
Flutter应用改名全指南:从Android到iOS的配置与工具实践

Flutter应用改名全指南:从Android到iOS的配置与工具实践

刚接一个外包项目时,甲方要求把工程里临时用的应用名改成正式产品名。我本来觉得“改名”这种小事,打开配置文件改一行不就完了?结果真动手才发现,Flutter项目里“应用名称”根本不是一处配置,而是一整套散落在 Androi…

2026/9/17 10:19:14 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/16 22:31:27 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/15 21:39:18 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/16 22:32:59 阅读更多 →