什么是 Docker Agent以及一个Docker Agent示例

什么是 Docker Agent?

Docker Agent 是 Docker 推出的一款开源工具,用于编排具备特定功能和工具的人工智能代理。你无需编写代码来连接大语言模型、工具和工作流,只需使用 YAML 或 HCL 声明你的代理——包括其模型、个性、工具以及协作方式,其余工作均由 Docker Agent 自动完成。你可以将其想象为组建一支虚拟专家团队,协同合作为你解决问题。

基于现代人工智能技术,Docker Agent 提供以下功能:

  • 多智能体架构——为不同领域创建专用的智能体
  • 丰富的工具生态系统——代理可通过MCP协议使用外部工具和API
  • 智能委派——代理自动将任务分配给最合适的专家
  • YAML 配置——简单、声明式的模型和代理配置
  • 高级推理——内置“思考”、“待办”和“记忆”工具,用于解决复杂问题
  • 支持多个AI提供商——包括OpenAI、Anthropic、Google Gemini和Docker模型运行器

关键特性

  • 创建具备专业能力的智能AI代理
  • 构建多智能体团队,协同完成复杂任务
  • 使用模型上下文协议(MCP)工具以实现扩展功能

示例

根据 Docker Agent 的官方文档和架构设计,搭建多智能体(Multi-Agent)系统主要依赖于声明式的 YAML 配置。Docker Agent 提供了两种核心的多智能体协作模式:

  1. 委托模式 (Delegation / sub_agents):采用层级结构(父 -> 子 -> 父)。主代理通过内置的 transfer_task 工具将任务分配给子代理。子代理在独立的子会话中执行任务,完成后将结果返回给主代理。适合任务分配与结果汇总
  2. 交接模式 (Handoffs / handoffs):采用点对点图结构(A -> B -> C)。代理之间通过 handoff 工具交接整个对话上下文,下一个代理能看到完整的对话历史。适合流水线工作流或对话路由

下面我将以委托模式为例,提供一个可执行的“自动化研究与报告生成团队”方案及详细步骤。

一、 可执行方案:自动化研究与报告生成团队

我们将搭建一个包含 3 个智能体的团队,通过主从委托的方式完成复杂任务:

  • coordinator (协调者):负责理解用户需求,将任务拆解并分派给研究员和作家,最后整合结果输出给用户。
  • researcher (研究员):配备 DuckDuckGo 搜索工具(MCP),负责在网络上收集相关信息。
  • writer (作家):负责根据研究员收集到的资料,撰写结构清晰的 Markdown 报告。

二、 详细执行步骤

步骤 1:安装 Docker Agent CLI

Docker Agent 是一个 Docker CLI 插件。你可以通过以下方式安装:

  • Docker Desktop 用户:如果你使用的是 Docker Desktop 4.63 或更高版本,docker-agent 已经预装,无需额外操作。
  • macOS 用户:可以通过 Homebrew 安装:
    brew install docker-agent
    
  • 其他方式:你也可以从 GitHub Releases 下载二进制文件,并将其放入 ~/.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

步骤 2:配置大模型 API 密钥

Docker Agent 需要调用大语言模型(如 OpenAI, Anthropic 等)来驱动智能体。请确保在你的终端环境变量中配置了相应的 API Key,例如:

export DEEPSEEK_API_KEY="your-deepseek-api-key"

步骤 3:编写多智能体配置文件 (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 格式报告。

步骤 4:启动并运行多智能体系统

在终端中,进入 agents.yaml 所在的目录,运行以下命令启动多智能体系统:

docker agent run agents.yaml

(注:根据具体的 CLI 版本,命令可能是 docker agent -f agents.yaml,你可以运行 docker agent --help 查看准确的参数)

启动后,你可以输入类似以下的提示词进行测试:

"请帮我研究一下 2026 年 Rust 语言在 AI 基础设施领域的应用趋势,并生成一份简报。"


三、 运行原理解析

  1. 任务触发:用户输入指令后,coordinator 接收请求。
  2. 任务分发 (transfer_task)coordinator 分析需求,自动调用内置的 transfer_task 工具,将“搜索 Rust AI 应用”的任务发送给 researcher。该工具是自动注入且免确认(Auto-Approved)的,保证了流转的顺畅。
  3. 子代理执行researcher 在独立的子会话中运行,调用 DuckDuckGo MCP 工具获取网页数据,并将提取的文本返回给 coordinator
  4. 二次分发coordinator 拿到原始数据后,再次调用 transfer_task,将数据传给 writer
  5. 内容生成writer 将数据转化为 Markdown 报告并返回。
  6. 最终汇总coordinator 收到报告,将其呈现给最终用户。

通过这种 YAML 声明式的配置,Docker Agent 帮你处理了复杂的上下文传递、工具注入和会话隔离,让你只需关注角色定义工作流设计即可。

官网

https://docker.github.io/docker-agent/

posted @ 2026-06-05 22:02  悠哉大斌  阅读(10)  评论(0)    收藏  举报