Implements the three improvements requested in issue #3263. File-based revisions: - export_plan_to_file writes a plan's content to disk and returns only metadata, never the body, so materialising a plan costs no output tokens. - update_plan_from_file commits new content read from a file. File reads reject directories, non-regular files (devices, named pipes) and oversized files, and are bounded by an io.LimitReader. Free-form status: - Plan and Summary gain a free-form status string (no fixed vocabulary). - set_plan_status and get_plan_status read and write the status without the body; status is also accepted on write_plan and update_plan_from_file. - A new TUI renderer surfaces the status and title next to single-plan calls. Optimistic locking: - The existing auto-incremented revision is the version number. Reads return it; write_plan, update_plan_from_file, set_plan_status and delete_plan accept an optional last_known_revision that rejects the write with a conflict error on mismatch. The compare-and-set is atomic under the storage mutex. Storage.Upsert now takes an UpsertRequest (nil fields preserve their previous value) and Storage.Delete takes an optional expected revision. Docs and the shared_plan example are updated to cover the new tools.
🤖 Docker Agent 🤖
Build, run, and share AI agents with a declarative YAML config, rich tool ecosystem, and multi-agent orchestration.
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.
Homebrew — brew 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
- Installation · Quick Start
- Agents · Models · Tools · Multi-Agent
- Configuration Reference
- TUI · CLI · MCP Mode · RAG
- Model Providers · Docker Model Runner
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.
