发布时间:2026/9/1 9:56:20
部署background-agents前置条件完整清单:Cloudflare、Modal、GitHub服务账号申请全记录 部署background-agents前置条件完整清单Cloudflare、Modal、GitHub服务账号申请全记录【免费下载链接】background-agentsAn open-source background agents coding system项目地址: https://gitcode.com/GitHub_Trending/ba/background-agentsbackground-agents是一个开源的后台智能体编码系统Open-InspectAI 在后台沙箱里替你写代码、跑测试、提 PR你可以通过 Web、Slack、GitHub 或 Linear 随时下达任务。想要自托管部署它最劝退的往往不是写代码而是一堆云服务的账号申请和密钥配置。本文把部署 background-agents 的前置条件整理成一份完整清单覆盖 Cloudflare、Modal、GitHub 等服务账号的申请要点让你开工前一次性备齐所有凭据避免部署到一半才发现少了什么东西。一、先搞清楚部署到底需要哪些服务background-agents 用 Terraform 自动化部署你的工作很简单建账号 → 拿凭据 → 填一个配置文件。官方文档 docs/GETTING_STARTED.md 中定义了完整的服务矩阵服务作用是否必须Cloudflare控制平面托管Workers、KV、D1 数据库✅ 必须GitHubOAuth 登录 仓库访问GitHub App✅ 必须AnthropicClaude 模型 API✅ 必须或用其他模型Modal默认沙箱执行后端选一个沙箱提供商即可Daytona / Vercel Sandboxes / OpenComputer / E2B替代沙箱后端与 Modal 四选一Vercel托管 Web 应用可选用 Cloudflare 替代视选择而定Slack / Linear聊天与工单系统集成可选 一个好消息如果你选 Cloudflare 托管 Web 应用web_platform cloudflare可以完全不用 Vercel 账号。二、部署前必备工具清单Node.js、Terraform 与 Wrangler在本地准备好工具链详见 docs/SETUP_GUIDE.mdNode.js 22最低 20 npm构建前端和 WorkerTerraform 1.9执行基础设施部署Wrangler CLI初始化 R2 存储桶Python 3.12 和 uv仅当沙箱选 Modal 时需要uv会自动安装 Modal CLI先git clone https://gitcode.com/GitHub_Trending/ba/background-agents拉取仓库然后执行依赖安装与共享包构建再按需为 packages/modal-infra/ 同步 Python 环境。⚠️ 部署顺序有个坑Terraform apply 之前必须先构建 Worker 产物control-plane、slack-bot、github-bot 等否则 Terraform 会报 no such file 找不到dist/index.js。三、Cloudflare 账号申请控制平面的主场地Cloudflare 是整个系统的地基控制平面、会话状态、D1 数据库、队列都跑在这里。需要拿到 4 样东西Account ID仪表盘首页即可看到Workers 子域名Workers Pages → Overview 面板右下角形如*.your-subdomain.workers.devAPI Token用 Edit Cloudflare Workers 模板创建确认包含以下权限——Workers KV StorageEditWorkers R2 StorageEditD1EditQueuesEdit图像构建收尾队列必需R2 API Token用于 Terraform 状态后端需要 Object Read Write 权限记下 Access Key ID 和 Secret Access Key别忘了R2 需要绑定支付方式但每月前 10 GB 免费。用 Wrangler 创建一个名为open-inspect-terraform-state的桶即可。四、GitHub App 创建ID、私钥与 Installation ID 怎么拿每次部署都必须有一个 GitHub App 提供仓库访问权它是系统克隆代码、提交、推送 PR 的身份来源。关键步骤新建 GitHub App名字需全局唯一仓库权限勾选Contents读写、Issues读写、Pull requests读写、Metadata只读记下App ID和Installation ID安装后从 URL 中获取生成Client Secret如果启用 GitHub 登录生成Private Key并转换为 PKCS#8 格式Cloudflare Workers 只认这种格式⚡ 容易踩的坑如果启用 GitHub 登录App 的Callback URL 必须与你的 Web 应用地址一字不差地匹配否则会报redirect_uri is not associated with this application。另外记得开启 User-to-server token expiration这样才能拿到 refresh token让 PR 以登录用户本人的身份创建并正确署名。完整字段要求参见 docs/GETTING_STARTED.md 的 Step 3。五、Modal 沙箱账号申请默认后端的 5 个凭据Modal 是默认的沙箱执行后端。登录 Modal 控制台后需要记录Token ID和Token SecretSettings → API Tokens 新建Workspace和Environment 名称在控制台 URL 里就能看到Web Suffix环境设置里小写字母数字和短横线默认环境留空如果你更想试试其他沙箱提供商凭据要求完全不同按需申请即可提供商需要的凭据参考文档DaytonaAPI KeySandboxes 读写 Snapshots 读写删除 API URLpackages/daytona-infra/Vercel SandboxesVercel Token Project ID Team IDdocs/VERCEL_SANDBOX_PROVIDER.mdE2B单个 API Key 模板 IDdocs/E2B_SANDBOX_PROVIDER.mdOpenComputerAPI Key API URLdocs/OPENCOMPUTER_PROVIDER.md 注意Modal 会自动把 LLM API 密钥注入沙箱但 Daytona / Vercel / E2B不会——选它们的话部署后要在 Web 端 Settings Secrets 里手动把ANTHROPIC_API_KEY加为全局密钥参见 docs/SECRETS.md。六、可选服务账号按需申请Anthropic、Slack 与 LinearAnthropic在控制台创建一个 API Keysk-ant-开头。想用自己的 OpenAI ChatGPT 订阅或 xAI SuperGrok 订阅跑模型也可以部署后再配见 docs/OPENAI_MODELS.md 与 docs/GROK_MODELS.mdSlack可选从零建 App添加 Bot Token Scopeschat:write、channels:history、im:history、files:read等安装后记下 Bot Token 和 Signing SecretLinear可选在 Linear 设置里创建 OAuth 应用开启 Webhook 和 Client credentials tokens七、生成加密密钥4 个安全密钥一次配齐Terraform 需要几组随机密钥做加密保护用openssl一条命令即可生成建议提前存好token_encryption_keyOAuth token 加密repo_secrets_encryption_key仓库密钥加密modal_api_secretModal 通信密钥hex 格式nextauth_secret浏览器认证密钥github_webhook_secret启用 GitHub bot 时需要八、部署前最终检查清单把所有凭据填入 terraform/environments/production/terraform.tfvars.example 的副本terraform.tfvars然后对照这份清单打勾CloudflareAccount ID、Workers 子域名、API Token、R2 桶 R2 API Token ✅GitHub AppApp ID、PKCS#8 私钥、Installation ID 登录用的 Client ID/Secret✅沙箱提供商凭据Modal / Daytona / Vercel / E2B / OpenComputer 四选一✅Anthropic API Key ✅4 个加密密钥已生成 ✅deployment_name已设为全局唯一值Vercel URL 依赖它✅至少配置了一个登录白名单allowed_users/allowed_email_domains/allowed_github_orgsWorker 产物已构建shared → control-plane / slack-bot / github-bot最后注意两阶段部署第一次 apply 时把enable_durable_object_bindings和enable_service_bindings都设为false成功后改为true再 apply 一次。这是 Cloudflare Durable Objects 服务绑定的硬性要求跳过会直接报错。账号和密钥都备齐后跟随 docs/GETTING_STARTED.md 的 Step 7 起执行 Terraform 即可遇到问题可对照 docs/DEBUGGING_PLAYBOOK.md 排查。祝部署顺利【免费下载链接】background-agentsAn open-source background agents coding system项目地址: https://gitcode.com/GitHub_Trending/ba/background-agents创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

2026/9/1 9:51:20

有限产能APS系统:用Python模拟解决制造业插单排程难题

最近和几个做包装厂的朋友聊天,发现他们最头疼的不是订单少,而是订单“乱”。一个计划排得好好的,客户一个电话:“这批货很急,明天就要!”整个生产计划瞬间被打乱,车间主任焦头烂额,…

2026/9/1 9:51:20

湖南农业大学继续教育合作推荐:认准正规备案,附核验方法

湖南农业大学继续教育覆盖成考、自考助学等多个方向。本文以一家与其开展继续教育合作的本土正规办学机构为例,说明正规合作的核验方法与全流程服务。一、为什么看湖南农业大学湖南农业大学是湖南省重点高校,其继续教育(如农学、经济管理、动…

2026/9/1 10:06:22

超级应用与AI电脑操控:从浏览器到Agent的工程实现

Meta 代号 Project Hatch 的超级应用项目被曝光后,很多人关心的不是它能不能做成,而是“浏览器”和“电脑操控”这两件事为什么会出现在同一个产品里。前者是超级应用最常见的承载界面,后者代表了 AI 从对话助手走向系统操作助手的关键能力。…

2026/9/1 10:06:22

HMC1119数控衰减器C++驱动开发:GPIO时序模拟与工程实践

简介:本资源是一套面向嵌入式开发工程师与射频硬件工程师的HMC1119数控衰减器C驱动代码,解决微波通信、无线测试系统中对256级高精度数字衰减器的快速编程控制问题。代码专为HMC1119芯片设计,支持通过SPI等数字接口实现衰减量设置、状态读取及…

2026/9/1 10:06:22

Rust类型系统实战:从所有权到泛型构建安全棋盘模型

如果你正在学习 Rust,或者已经写过一些 Rust 代码,那么“所有权”、“生命周期”、“借用检查器”这些概念,一定让你又爱又恨。爱的是,它们确实能帮你写出内存安全、并发友好的高质量代码;恨的是,编译器那“…

2026/9/1 10:06:22

AI服务器采购避坑指南:从需求梳理到验收运维的实用建议

AI服务器是这两年最容易被炒出价格溢价的硬件之一。同样标着“支持多卡GPU部署”的两台整机,报价可能相差几十万,实际跑起负载来,性能和稳定性也可能差出一大截。围绕AI服务器的最大问题,已经不只是“算力够不够”,而是…

2026/9/1 10:01:21

STM32 HUB75E驱动设计:基于GPIO HAL的可移植方案与刷新优化

简介:这是一套专为STM32平台设计的HUB75E接口RGB LED矩阵屏驱动库,面向嵌入式开发工程师及物联网硬件项目开发者,解决LED点阵屏底层驱动复杂、移植困难、刷新控制低效等实际问题。资源包共20个文件,含9个C源文件(实现H…

2026/8/31 1:05:20

vSound小提琴数字处理器实操指南:从接线到演出的完整配置

电小提琴或者原声小提琴插电演出,第一个绕不开的坎就是声音难听。原声琴的共鸣和空气感一旦进了拾音器,出来的往往是一坨干瘪、发尖、带着奇怪塑料味的信号。我当初第一次把琴接上乐队调音台,直接被主唱吐槽"你这声音像在锯钢丝"。…

2026/9/1 8:27:47

传感器接口IC如何攻克生物化学传感的微弱信号难题?

1. 从电极到比特流:为什么生物化学传感必须依赖专用接口IC 做生物化学传感的人都有过类似的经历:明明传感器本身性能很好,信号输出却一塌糊涂——噪声大、漂移明显、重复性差,怎么调都达不到预期。很多时候问题并不在传感器&#…

2026/9/1 7:04:43

STM32F411CEU6多通道ADC采集:扫描模式+DMA实现详解

1. 多通道 ADC 的用武之地把“Multichannel ADC”和“STM32F411CEU6”这两个关键字放在一起,其实就是嵌入式开发里最常遇到的一类需求:用一块不算贵的 MCU,同时采集多路模拟信号。STM32F411CEU6 是 48 引脚的 Cortex-M4F 主控,主频…

2026/9/1 0:00:42

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/1 0:00:42

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/1 0:00:42

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

2026/9/1 0:00:42

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行&#xff0c;Type-C接口算是典型的“看着简单&#xff0c;做起来全坑”的东西。光引脚就24个&#xff0c;高低速信号、电源、控制线全部塞在一个小小的连接器里&#xff0c;如果PCB布局不做规划&#xff0c;打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/1 0:00:42

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/1 0:00:42

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…