使用说明

项目简介

Docker AI Tools for Developers (labs-ai-tools-for-devs) 是一个开源项目,旨在帮助开发者利用Docker容器和Markdown文件构建和运行 Agentic AI 工作流。该项目可以将 Markdown 文件中定义的 Prompt 和 Dockerized 工具作为 Model Context Protocol (MCP) 服务器对外提供服务,使得 LLM 客户端能够通过标准化的 MCP 协议访问上下文信息和外部功能。

主要功能点

  • MCP 服务器模式: 通过 '--mcp' 标志启动,将项目转化为 MCP 服务器,对外提供资源、工具和 Prompt 服务。
  • Prompt 注册: 支持通过 Git 仓库引用或本地路径注册 Markdown 格式的 Prompt 模板,方便管理和版本控制。
  • Dockerized 工具: 支持将外部功能封装为 Docker 镜像形式的工具,供 LLM 调用,实现复杂操作和环境隔离。
  • 会话循环 (Conversation Loop): 通过循环处理 Prompt、工具结果和 Agent 响应,实现复杂的 Agentic 工作流,支持错误处理和工具重试。
  • 多模型 Agent: 允许为不同的 Prompt 配置不同的 LLM 模型,甚至模型家族,实现多 Agent 协作和任务优化。
  • 项目上下文: 强调项目作为 AI 助手上下文的重要性,支持通过 Docker 镜像提取项目信息作为上下文。
  • VSCode 扩展: 提供 VSCode 扩展,方便用户创建、运行和调试 Prompt 工作流。

安装步骤

  1. 安装 Docker Desktop: 确保已安装并运行 Docker Desktop。
  2. 拉取 Docker 镜像: 使用 Docker 命令拉取 'vonwig/prompts:latest' 镜像。
    docker pull vonwig/prompts:latest

服务器配置

该仓库作为 MCP 服务器运行时,需要配置启动命令和参数。以下是基于仓库信息生成的 MCP 客户端配置信息示例 (JSON 格式):

{
  "serverName": "DockerAIToolsMCP",
  "command": "docker run",
  "args": [
    "--rm",
    "--pull=always",
    "-it",
    "-v", "/var/run/docker.sock:/var/run/docker.sock",
    "--mount", "type=volume,source=docker-prompts,target=/prompts",
    "--mount", "type=bind,source=$HOME/.openai-api-key,target=/root/.openai-api-key",
    "vonwig/prompts:latest",
    "serve",
    "--mcp",
    "--register", "github:docker/labs-ai-tools-for-devs?path=prompts/examples/generate_dockerfile.md"
    // 可以添加更多 --register 参数注册 Prompt,例如本地路径
    // "--register", "/path/to/your/local/prompt.md"
  ],
  "description": "Docker AI Tools MCP Server",
  "protocol": "stdio" // 默认使用 stdio 协议
}

参数注释:

  • '"serverName"': MCP 服务器的名称,可以自定义。
  • '"command"': 启动 MCP 服务器的命令,这里使用 'docker run' 运行 Docker 镜像。
  • '"args"': 传递给 'docker run' 命令的参数列表:
    • '--rm': 容器退出后自动删除。
    • '--pull=always': 总是拉取最新镜像。
    • '-it': 以交互模式运行容器,分配 TTY。
    • '-v /var/run/docker.sock:/var/run/docker.sock': 挂载 Docker Socket,允许容器内操作 Docker。
    • '--mount type=volume,source=docker-prompts,target=/prompts': 挂载 Docker Volume 用于持久化 Prompt 数据 (仓库中使用了 'docker-prompts' Volume)。
    • '--mount type=bind,source=$HOME/.openai-api-key,target=/root/.openai-api-key': 挂载 OpenAI API Key 文件 (如果 Prompt 需要访问 OpenAI API)。
    • '"vonwig/prompts:latest"': 使用的 Docker 镜像名称和标签。
    • '"serve"': 指定 'vonwig/prompts' 镜像以服务器模式运行。
    • '"mcp"': 启用 MCP 服务器模式。
    • '--register "github:docker/labs-ai-tools-for-devs?path=prompts/examples/generate_dockerfile.md"': 注册 Prompt 模板,这里注册了 GitHub 仓库中的 'generate_dockerfile.md' Prompt。可以注册多个 Prompt,支持 GitHub 仓库 URL 和本地文件路径。
  • '"description"': 服务器描述信息,可以自定义。
  • '"protocol"': MCP 客户端与服务器通信的协议,默认为 'stdio'。

注意: 上述配置中的 '$HOME/.openai-api-key' 文件需要用户自行创建并包含有效的 OpenAI API Key,如果使用本地模型则可以设置 dummy value。'--register' 参数可以根据需要注册不同的 Prompt 模板。

基本使用方法

  1. 启动 MCP 服务器: 复制上述 JSON 配置信息到 MCP 客户端 (如支持 MCP 协议的 LLM 应用或编辑器插件) 中,启动 MCP 服务器连接。
  2. 注册 Prompt: 通过修改 'args' 中的 '--register' 参数注册需要的 Prompt 模板。
  3. 客户端交互: 使用 MCP 客户端向服务器发送符合 MCP 协议的请求,例如请求 Prompt 列表、执行 Prompt、调用工具等。
  4. 查看文档: 更详细的使用方法和功能请参考项目 Docs 文档。

信息

分类

开发者工具