Docker

Your Agent Runs in a Docker Sandbox. Now It Can Join a Team.

6.9内容质量
Your Agent Runs in a Docker Sandbox. Now It Can Join a Team.

TL;DR · AI 摘要

Run Collaborative AI Agents in Docker Sandboxes Docker Your Agent Runs in a Docker Sandbox. Now It Can Join a Team. Post...

核心要点

  • 主题聚焦:Your Agent Runs in a Docker Sandbox. Now It Can
  • 来源:Docker,建议结合原文判断细节。
  • AI 分析暂不可用,本条为保底评分与摘要。
#AI#编程#后端#云计算#安全
打开原文

在 Docker 容器沙箱中运行协作式 AI 代理 | Docker

您的代理现在可以在 Docker 容器沙箱中运行,并加入团队

发布于 2026 年 10 月 21 日

Oleg Selajev

您的容器化代理现在有了团队。官方的 BAND AI 工具包现已发布在 docker.io/bandhq/band-python-kit:latest。

Docker 容器沙箱工具包封装了代理在 Docker 容器沙箱中运行所需的一切,因此只需执行一次 sbx create 命令即可获得可直接使用的代理环境。但孤立的代理只是故事的一半:真正的协作意味着与人和其他代理进行交流。BAND AI 工具包将容器化代理连接到外部世界。代理在您的机器上运行并可以访问您的代码仓库,同时加入 BAND 房间与其他人类代理和任何位置运行的代理协作(本地、云端或私有基础设施)。同一套工具包还能连接不同沙箱,使多个代理可以在同一房间协作,同时各自保持独立的运行环境。在本文中,我们将通过一个名为 Repo Doctor 的本地代理,展示容器化代理如何通过 BAND 连接到外部世界。

BAND 为这些代理提供了协作层。通过 BAND,开发者可以为代理分配持久身份,将它们汇聚到共享房间,通过 @ 提及分配任务,维护消息历史记录,并在房间中展示工具执行事件。每个代理都自带自己的模型、框架、工具、工作空间和基础设施,并以参与者身份加入房间,无论其运行位置如何。

Docker 容器沙箱为代理提供了带有独立内核、文件系统、Docker 守护进程和网络的隔离式微型虚拟机。在沙箱内部,代理可以处理本地源文件,运行命令和测试,并对挂载的工作空间进行修改。通过一个 sbx create 命令,BAND 工具包即可实现两者连接。

code
人类(BAND 桌面)
                 |
                 v
   +------ BAND(云端或自托管) ------+
   |  BAND API  <-->  房间  -->  转录记录  |
   +-----------------------------------------+
                 ^
                 |  REST + WebSocket
                 |  (从您的机器发起)
   您的机器  |
   +-------------|---------------------+
   |  Docker 容器沙箱微型虚拟机           |
   |       |                           |
   |    挂载的工作空间              |
   +-----------------------------------+

所有连接均为外向式。代理通过 WebSocket 连接到 BAND,并通过 BAND API 发布回复,因此无需任何内容进入沙箱。从房间视角来看,其行为与其他参与者完全一致。

BAND 房间中的 Repo Doctor

这是一个展示所有组件如何协同工作的精彩示例。Repo Doctor 是一个小型代理,用于修复故意破坏的 Python 项目。它在您的机器上的 Docker 容器沙箱中运行,并参与 BAND 房间。无论代理实际运行在何处,您都可以通过 BAND 平台提及它的标识符来分配任务:

这个示例仓库包含一个 band.yaml 文件,用于告诉 BAND sbx 工具包应启动哪个代理。在此示例中,它指向 main.py,我们在其中定义代理的指令,选择 Claude 作为模型,并为其提供读取文件、编辑源代码和运行测试的工具。您可以提供不同的 Python 入口点,使用 BAND 为 Claude Code 或 Codex 等代码代理提供的适配器,只需在沙箱中配置相应的工具和认证信息即可。

在此运行中,Repo Doctor 检查了项目并运行了测试套件,发现并修复了一个失败的测试。BAND 将工具结果与代理的解释并排显示,而代理则在沙箱内本地运行。

从你的机器连接代理到 BAND

要尝试相同示例,你需要安装并登录 Docker 沙箱、拥有 BAND 账户以及带有 API 信用额度的 Anthropic API 密钥。当然你可以根据自己的技术偏好调整示例,但最简单的方式是克隆示例仓库:

code
git clone https://github.com/dockersamples/band-ai-sbx-demo.git
cd band-ai-sbx-demo

在 BAND 中创建远程代理或使用现有代理。记录其 handle,你将在 BAND 房间中通过它来提及该代理。将 band.yaml 中的 agent.id 设置为代理的 UUID,并准备好其 BAND API 密钥以进行下一步操作。

此示例使用 Claude,因此我们还将提供 Anthropic API 密钥,并允许沙箱访问 Claude 的 API。这些设置源自仓库中 main.py 的代理实现;BAND 工具包本身并不需要特定模型提供商。BAND 代理密钥用于验证与平台的连接。

在创建沙箱之前存储这两个密钥。每个命令都会提示输入一个密钥:先输入 BAND 代理密钥,然后输入你的 Anthropic API 密钥。

code
sbx secret set-custom \
  --sandbox band-repo-doctor \
  --host '**.band.ai' \
  --env BAND_API_KEY \
  --placeholder proxy-managed

sbx secret set-custom \
  --sandbox band-repo-doctor \
  --host api.anthropic.com \
  --env ANTHROPIC_PROXY_KEY \
  --placeholder sk-ant-proxy-managed

Docker 沙箱会在主机上保存真实密钥,并将其插入到出站请求中。代理只能看到占位符值,且两个凭证都仅限于该沙箱使用。

现在使用 BAND 工具包创建沙箱,允许 Claude API 连接并启动代理:

code
sbx create --name band-repo-doctor \
  docker.io/bandhq/band-python-kit:6.0.0 "$PWD"

该工具包已允许访问 BAND 和 Python 包托管服务。为本示例添加对 Claude API 的访问权限:

code
sbx policy allow network --sandbox band-repo-doctor api.anthropic.com

然后在准备好的沙箱中启动代理。工具包将安装示例中锁定的依赖项,并启动 band.yaml 中指定的 Python 入口点。代理连接到 BAND,你或其他代理可以通过该平台与其通信。

code
sbx run --name band-repo-doctor

在代理运行时保持终端窗口打开。当日志显示 Connected to platform 后,将 Repo Doctor 添加到 BAND 房间并提及它的 handle,就像我们上面所做的那样。

创建房间并添加参与者:

之后你或其他代理可以通过 BAND 平台发送指令。

本地代理在更大 BAND 团队中的应用

Repo Doctor 是一个单代理演示,但 BAND 房间支持更复杂的配置。一个房间可以包含在本地、云端或你自己的基础设施上运行的代理。它们可以互相提及,将专家添加到房间中,按顺序或并行工作,并将结果返回给人类参与者。

例如,规划代理可以制定一个变更计划并要求研究代理检查相关 API。当工作需要访问你的代码库时,会提及 Repo Doctor。只有 Repo Doctor 需要访问本地工作区,因此只有该代理会在你本地机器的 Docker 沙箱中运行。测试完成后,Repo Doctor 可以@提及审阅者并附上结果;所有执行事件对房间内的人都保持可见。相同的模式适用于所有沙箱:每个需要独立环境的代理可以在各自的沙箱中运行,但仍能协作于同一个房间。

code
BAND 房间
|-- 规划代理(托管)
|-- 研究代理(托管)
`-- @<your-user>/repo-doctor
             |
             v
    本地 Docker 沙箱
             |
        你的工作区

人类可以看到完整的对话内容。由于 BAND 仅传递提及该代理的消息,代理的上下文范围会更窄。托管代理可以广泛协作,而本地执行仅与实际需要它的参与者关联。

BAND 在这种组合模式上表现尤为出色。本地代理是更大房间中的一个参与者,其同行通过句柄与其通信。这使你无需构建代理身份、路由、从笔记本电脑回连的工作线程、凭证处理以及审计追踪,即可直接进入实际任务。BAND 与沙箱之间的连接是 WebSocket 和房间提及,这正是我期望的集成代码量。

使用 BAND 的 SBX 工具包入门

BAND Python SDK 仓库包含 SDK 和工具包源代码。Docker 示例仓库中的完整 Repo Doctor 示例包含用于重现截图的代理、测试用例和脚本。

从已发布的工具包创建沙箱,将远程代理连接到 BAND 房间,并检查 sbx 策略日志以确认其网络请求是否符合预期策略。

关于沙箱工具包配置、凭证和网络规则,请参阅 Docker 沙箱工具包文档。

Docker 沙箱

沙箱工具包

产品

目录

相关文章

  • 2026年9月24日 为 AI 代理构建信任 | Docker WeAreDevelopers 主题演讲 Docker WeAreDevelopers 主题演讲展示了沙箱、工具包和云沙箱如何为 AI 代理提供强隔离和可复现的权限。Deanna Sparks 立即阅读
  • 2026年10月21日 你的代理在 Docker 沙箱中运行。现在它可以加入团队。使用 BAND AI 在 Docker 沙箱中运行 AI 代理。学习如何连接隔离的代理、跨环境协作并安全地管理访问权限。Oleg Selajev 立即阅读
  • 生态系统 2026年10月21日 从基准到安全软件工厂:保障构建你软件系统的安全 7月,Docker、Snyk 和 Keycard 发布了 Agent Baseline,这是一个开放的、厂商中立的参考架构,定义了在企业中运行 AI 代理的安全目标。它源于与希望更广泛采用代理的行业领袖的对话,这些领袖需要回答三个问题:什么在运行,具备哪些能力?它是否保持… Eli Aleyner 立即阅读
  • 2026年10月16日 从容器到沙箱:代理时代开发者的信任 2026 Stack Overflow 开发者调查表明,只有 7% 的开发者信任 AI 输出用于重要决策。这是关于如何安全运行代理的含义。Terri Avnaim 立即阅读