MCPcopy
hub / github.com/docker/docker-agent

github.com/docker/docker-agent @v1.98.0 sqlite

repository ↗ · DeepWiki ↗ · release v1.98.0 ↗
15,246 symbols 74,037 edges 1,392 files 7,728 documented · 51%
README

🤖 Docker Agent 🤖

Build, run, and share AI agents with a declarative YAML config, rich tool ecosystem, and multi-agent orchestration.

docker agent in action

What is Docker Agent?

docker-agent lets you create and run intelligent AI agents that collaborate to solve complex problems — no code required.

docker-agent is a docker CLI plugin and can be run with docker agent.

Define agents in YAML, give them tools, and let them work.

agents:
  root:
    model: openai/gpt-5-mini
    description: A helpful AI assistant
    instruction: |
      You are a knowledgeable assistant that helps users with various tasks.
      Be helpful, accurate, and concise in your responses.
    toolsets:
      - type: mcp
        ref: docker:duckduckgo
docker agent run agent.yaml

Key Features

  • Multi-agent architecture — Create teams of specialized agents that delegate tasks automatically
  • Rich tool ecosystem — Built-in tools + any MCP server (local, remote, or Docker-based)
  • AI provider agnostic — OpenAI, Anthropic, Gemini, AWS Bedrock, Mistral, xAI, Docker Model Runner, and more
  • YAML configuration — Declarative, versionable, shareable
  • Advanced reasoning — Built-in think, todo, and memory tools
  • RAG — Pluggable retrieval with BM25, embeddings, hybrid search, and reranking
  • Package & share — Push agents to any OCI registry, pull and run them anywhere

Install

Docker Desktop (4.63+) — docker-agent CLI plugin is pre-installed. Just run docker agent.

Homebrewbrew install docker-agent. Run docker-agent directly or symlink the binary to ~/.docker/cli-plugins/docker-agent and run docker agent.

Binary releases — Download from GitHub Releases. Symlink the docker-agent binary to ~/.docker/cli-plugins/docker-agent to be able to use docker agent, or use docker-agent directly.

Set at least one API key (or use Docker Model Runner for local models):

export OPENAI_API_KEY=sk-...        # or ANTHROPIC_API_KEY, GOOGLE_API_KEY, etc.

Quick Start

# Run the default agent
docker agent run

# Run from the agent catalog
docker agent run agentcatalog/pirate

# Generate a new agent interactively
docker agent new

# Run your own config
docker agent run agent.yaml

More examples in the examples/ directory.

Documentation

📖 Full documentation

Contributing

Read the Contributing guide to get started. We use docker-agent to build docker-agent:

docker agent run ./golang_developer.yaml

Telemetry

We collect anonymous usage data to improve the tool. See Telemetry.

Community

Docker Community Slack · #docker-agent channel

Extension points exported contracts — how you extend this code

Describer (Interface)
Describer can be implemented by a ToolSet to provide a short, user-visible description that uniquely identifies the tool [10 …
pkg/tools/startable.go
Sizeable (Interface)
Sizeable represents components that can be resized [26 implementers]
pkg/tui/core/layout/layout.go
EmbeddingProvider (Interface)
EmbeddingProvider defines the interface for providers that support embeddings. [7 implementers]
pkg/model/provider/provider.go
MessageStream (Interface)
MessageStream interface represents a stream of chat completions [14 implementers]
pkg/chat/chat.go
Reranker (Interface)
Reranker re-scores search results using a reranking model [10 implementers]
pkg/rag/rerank/rerank.go
SessionScoped (Interface)
SessionScoped is implemented by events that belong to a specific session. The PersistentRuntime uses this to filter out [15 …
pkg/runtime/event.go
Handler (Interface)
Handler executes a single hook invocation. It is built by a [HandlerFactory] for one [Hook] and invoked at most once. Th [13 …
pkg/hooks/handler.go
StructuredEvent (Interface)
EVENTS BASE StructuredEvent represents a type-safe telemetry event with structured properties [5 implementers]
pkg/telemetry/types.go

Core symbols most depended-on inside this repo

Context
called by 3054
pkg/tui/components/sidebar/streaming_perf_test.go
New
called by 1396
pkg/model/provider/factory.go
Len
called by 900
pkg/tools/builtin/todo/todo.go
Run
called by 879
pkg/hooks/handler.go
Unlock
called by 665
pkg/memory/database/lock.go
Lock
called by 613
pkg/memory/database/lock.go
Render
called by 590
pkg/tui/components/markdown/renderer.go
New
called by 445
pkg/session/session.go

Shape

Function 8,063
Method 5,096
Struct 1,793
TypeAlias 123
Interface 100
FuncType 71

Languages

Go100%
TypeScript1%
Python1%

Modules by API surface

pkg/runtime/runtime_test.go167 symbols
pkg/config/v11/types.go134 symbols
pkg/config/latest/types.go134 symbols
pkg/tui/components/messages/messages.go126 symbols
pkg/runtime/runtime.go124 symbols
pkg/tui/components/sidebar/sidebar.go123 symbols
pkg/config/v10/types.go123 symbols
pkg/config/v9/types.go122 symbols
pkg/tools/builtin/lsp/lsp.go114 symbols
pkg/config/v8/types.go112 symbols
pkg/runtime/event.go107 symbols
pkg/tui/components/markdown/fast_renderer_test.go102 symbols

Dependencies from manifests, versioned

charm.land/bubbles/v2v2.1.0 · 1×
charm.land/bubbletea/v2v2.0.7 · 1×
charm.land/glamour/v2v2.0.1 · 1×
charm.land/lipgloss/v2v2.0.4 · 1×
cloud.google.com/gov0.123.0 · 1×
cloud.google.com/go/authv0.18.2 · 1×
cloud.google.com/go/auth/oauth2adaptv0.2.8 · 1×
cloud.google.com/go/compute/metadatav0.9.0 · 1×
dario.cat/mergov1.0.2 · 1×
github.com/99designs/go-keychainv0.0.0-2019100805025 · 1×
github.com/99designs/keyringv1.2.2 · 1×
github.com/Azure/go-ansitermv0.0.0-2025010203350 · 1×

Datastores touched

dbDatabase · 1 repos

For agents

$ claude mcp add docker-agent \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact