


















Docker Agent 是 Docker 推出的一款开源工具,用于编排具备特定功能和工具的人工智能代理。你无需编写代码来连接大语言模型、工具和工作流,只需使用 YAML 或 HCL 声明你的代理——包括其模型、个性、工具以及协作方式,其余工作均由 Docker Agent 自动完成。你可以将其想象为组建一支虚拟专家团队,协同合作为你解决问题。
基于现代人工智能技术,Docker Agent 提供以下功能:
关键特性
根据 Docker Agent 的官方文档和架构设计,搭建多智能体(Multi-Agent)系统主要依赖于声明式的 YAML 配置。Docker Agent 提供了两种核心的多智能体协作模式:
sub_agents):采用层级结构(父 -> 子 -> 父)。主代理通过内置的 transfer_task 工具将任务分配给子代理。子代理在独立的子会话中执行任务,完成后将结果返回给主代理。适合任务分配与结果汇总。handoffs):采用点对点图结构(A -> B -> C)。代理之间通过 handoff 工具交接整个对话上下文,下一个代理能看到完整的对话历史。适合流水线工作流或对话路由。下面我将以委托模式为例,提供一个可执行的“自动化研究与报告生成团队”方案及详细步骤。
我们将搭建一个包含 3 个智能体的团队,通过主从委托的方式完成复杂任务:
coordinator (协调者):负责理解用户需求,将任务拆解并分派给研究员和作家,最后整合结果输出给用户。researcher (研究员):配备 DuckDuckGo 搜索工具(MCP),负责在网络上收集相关信息。writer (作家):负责根据研究员收集到的资料,撰写结构清晰的 Markdown 报告。Docker Agent 是一个 Docker CLI 插件。你可以通过以下方式安装:
docker-agent 已经预装,无需额外操作。brew install docker-agent
~/.docker/cli-plugins/ 目录下。#先下载对应的二进制版本并解压,并重命名为docker-agent ( https://github.com/docker/docker-agent/releases/ )
chmod +x docker-agent
sudo mv docker-agent /usr/local/bin/
docker-agent version
Docker Agent 需要调用大语言模型(如 OpenAI, Anthropic 等)来驱动智能体。请确保在你的终端环境变量中配置了相应的 API Key,例如:
export DEEPSEEK_API_KEY="your-deepseek-api-key"
agents.yaml)在你的工作目录下创建一个名为 agents.yaml 的文件,并填入以下配置:
# 1. 配置文件版本 (官方推荐)
version: 8
# 2. 自定义提供者 (配置 DeepSeek 的 API 端点)
providers:
deepseek_provider:
provider: openai # DeepSeek 兼容 OpenAI 接口协议
base_url: https://api.deepseek.com # DeepSeek 官方 API 地址
token_key: DEEPSEEK_API_KEY # 指向你终端环境变量中的 API Key 名称
# 3. 模型定义 (定义具体使用的 DeepSeek 模型)
models:
deepseek_v4_flash:
provider: deepseek_provider
model: deepseek-v4-flash # 响应快,适合任务调度和信息提取
max_tokens: 8192
# 4. 智能体定义 (多智能体协作网络)
agents:
# 协调者:负责任务拆解和最终汇总
coordinator:
model: deepseek_v4_flash
description: 自动化研究团队协调者,负责拆解任务并汇总最终报告。
instruction: |
你是一个研究项目的技术主管。
当用户提出一个研究主题时,你需要:
1. 将搜索任务委托给 researcher。
2. 将撰写报告的任务委托给 writer。
3. 收集他们的结果,整合成一份最终回复给用户。
sub_agents: [researcher, writer] # 声明子代理,Docker Agent 会自动注入 transfer_task 工具
toolsets:
- type: think # 赋予协调者思考/规划能力
# 研究员:负责网络搜索
researcher:
model: deepseek_v4_flash
description: 网络研究员,擅长使用搜索引擎收集信息。
instruction: |
你是一个专业的网络研究员。
收到任务后,使用 DuckDuckGo 工具搜索相关信息,提取关键事实和数据,然后将结果返回给协调者。
toolsets:
- type: mcp
ref: docker:duckduckgo # 使用 Docker 官方提供的 DuckDuckGo MCP 搜索工具
# 作家:负责深度思考和报告撰写
writer:
model: deepseek_v4_flash
description: 专业内容作家,擅长撰写结构化、有深度的报告。
instruction: |
你是一个专业的内容作家。
收到研究员提供的原始资料后,请进行深度思考,将其整理、润色,并撰写成一份结构清晰、包含标题和要点的 Markdown 格式报告。
在终端中,进入 agents.yaml 所在的目录,运行以下命令启动多智能体系统:
docker agent run agents.yaml
(注:根据具体的 CLI 版本,命令可能是 docker agent -f agents.yaml,你可以运行 docker agent --help 查看准确的参数)
启动后,你可以输入类似以下的提示词进行测试:
"请帮我研究一下 2026 年 Rust 语言在 AI 基础设施领域的应用趋势,并生成一份简报。"
coordinator 接收请求。transfer_task):coordinator 分析需求,自动调用内置的 transfer_task 工具,将“搜索 Rust AI 应用”的任务发送给 researcher。该工具是自动注入且免确认(Auto-Approved)的,保证了流转的顺畅。researcher 在独立的子会话中运行,调用 DuckDuckGo MCP 工具获取网页数据,并将提取的文本返回给 coordinator。coordinator 拿到原始数据后,再次调用 transfer_task,将数据传给 writer。writer 将数据转化为 Markdown 报告并返回。coordinator 收到报告,将其呈现给最终用户。通过这种 YAML 声明式的配置,Docker Agent 帮你处理了复杂的上下文传递、工具注入和会话隔离,让你只需关注角色定义和工作流设计即可。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。