Docker 在 GitHub 上的开源仓库 docker-agent,About 栏写的是 “AI Agent Builder and Runtime by Docker Engineering”。README 称,用户无需写代码,用声明式 YAML 就能创建并运行相互协作的 AI agent;它是 docker CLI 插件,可用 docker agent 调用。仓库页面显示约 4.1k star、490 个 fork,Releases 共 262 个,最新为 2026 年 10 月 7 日的 v1.149.0。
README 把 Docker Agent 描述为:用 YAML 定义 agent、给它们工具,让它们协作处理复杂问题。页面上的示例把 root agent 的模型写成 openai/gpt-5-mini,工具集类型为 MCP,引用 docker:duckduckgo,启动命令是 docker agent run agent.yaml。快速开始一节还列出直接运行默认 agent、从 OCI 仓库运行 myorg/agent:tag,以及用 docker agent new 交互生成配置。
README 列出的特性包括:多 agent 架构,由专门的 agent 自动分派任务;内置工具之外可接任意 MCP 服务器(本地、远程或基于 Docker);不绑定单一模型厂商,支持 OpenAI、Anthropic、Gemini、AWS Bedrock、Mistral、xAI 以及 Docker Model Runner 等;内置 think、todo、memory 工具;RAG 可插拔,支持 BM25、embeddings、混合检索和重排序;可以把 agent 推送到任意 OCI 镜像仓库,再拉取运行。
安装部分,README 称 Docker Desktop 4.63 及以上已预装 docker-agent CLI 插件,直接运行 docker agent 即可;也可用 Homebrew 安装 docker-agent,或从 GitHub Releases 下载二进制,再链到 ~/.docker/cli-plugins/docker-agent。仓库标明许可为 Apache-2.0。Telemetry 一节称,项目会收集匿名使用数据以改进工具,并链到文档中的 Telemetry 说明。
仓库文件列表显示,CHANGELOG.md 在 2026 年 10 月 7 日有一次提交,说明是为 v1.149.0 更新变更日志。来源页面没有给出这一版的具体更新条目。LICENSE 文件对应的 “Add License” 提交日期为 2025 年 7 月 18 日,.devcontainer 目录的 “devcontainer support” 提交日期为 2025 年 9 月 5 日。来源页面未直接给出仓库创建日期。
开发者 k33g 在 2026 年 10 月 4 日的博文中写到,自己前一篇文章已经用 ACP 协议把 Zed 接到 Docker Agent,模型由本机上的 llmman 提供,但 agent 当时直接跑在自己的机器上,并且可以使用 shell。这篇博文改为把 Docker Agent 放进 Docker 的沙箱工具 sbx 里运行,再让 Zed 连上沙箱中的 agent。
博文称,sbx(Docker Sandboxes)基于 microVM,用来隔离运行代码 agent。按文中说明:agent 只能看到与它共享、并以与主机相同路径挂载的工作目录,接触不到文件系统的其余部分(例如 SSH 密钥和其他项目);出站网络流量经过带网络策略的代理,默认不能随意访问外部;API key、GitHub token 等用 sbx secret set 在主机上声明,由代理注入出站请求,密钥不出现在沙箱内,agent 读不到也不能把它们泄露出去。博文还写到,沙箱有自己的 Docker daemon,可以跑容器而不碰到主机上的容器。
作者在文中解释为何要放进沙箱:代码 agent 会自行决定执行哪些命令。在他的配置里,agent 有 shell 工具集,并由一个较小的本地模型驱动。即便 Zed 会在每条命令前询问确认,一次疏忽,或项目文件里被注入的提示,仍可能让 rm -rf 或向未知服务器发起的 curl 被执行。agent 若直接在主机上运行,还可能通过环境变量和配置文件接触 API key。沙箱把影响范围限制在工作区以及网络策略允许的范围内。
相对上一篇文章,博文称 YAML 里唯一改动是 base_url。沙箱有自己的 localhost,里面的 127.0.0.1 指向沙箱本身,因此作者把地址改成 http://host.docker.internal:17434/v1,以便访问仍跑在主机上、继续占用本机 GPU 的 llmman。示例里的模型名为 mellum,提供方为 llmman。创建沙箱的命令是 sbx create docker-agent . --name docker-agent-acp。博文注明,若请求被代理拦住,需要在主机上执行 sbx policy allow network localhost:17434,并用 sbx policy log 查看被拦截的原因。
接入 Zed 时,作者在 settings.json 的 agent_servers 里新增一条自定义服务器:命令为 sbx,参数包括 exec、-i、沙箱名 docker-agent-acp,以及 docker-agent serve acp 和 YAML 文件路径。博文称 -i 必不可少,因为 ACP 经 stdin/stdout 通信,标准输入必须保持打开;工作目录按相同路径挂载,所以 YAML 路径与主机上一致。文末总结说,Zed 用 sbx exec -i 在沙箱里启动 agent,并通过 ACP(基于 stdio 的 JSON-RPC)与之对话;配置侧只改了 llmman 端点的一行 YAML,并在 Zed 设置里增加一条记录。