Skip to content

Commit a099feb

Browse files
authored
Merge pull request #2195 from dgageot/board/docker-agent-catalog-feature-docs-check-114812a5
docs: document external OCI registry agents as sub-agents
2 parents 6dd5d72 + 07f316a commit a099feb

5 files changed

Lines changed: 59 additions & 4 deletions

File tree

docs/community/troubleshooting/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ docker-agent validates config at startup and reports errors with line numbers. C
136136

137137
### Missing references
138138

139-
- All agents in `sub_agents` must be defined in the `agents` section
139+
- Local agents in `sub_agents` must be defined in the `agents` section (external OCI references like `agentcatalog/pirate` are resolved from registries automatically)
140140
- Named model references must exist in the `models` section (or use inline format like `openai/gpt-4o`)
141141
- RAG source names referenced by agents must be defined in the `rag` section
142142

docs/concepts/distribution/index.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,25 @@ $ docker agent run agentcatalog/pirate
6666
$ docker agent run agentcatalog/coder
6767
```
6868

69+
## Using as Sub-Agents
70+
71+
Registry agents can be used directly as sub-agents in a multi-agent configuration — no need to define them locally:
72+
73+
```yaml
74+
agents:
75+
root:
76+
model: openai/gpt-4o
77+
description: Coordinator
78+
instruction: Delegate tasks to the right sub-agent.
79+
sub_agents:
80+
- agentcatalog/pirate # auto-named "pirate"
81+
- my_reviewer:myorg/reviewer # explicitly named "my_reviewer"
82+
```
83+
84+
External sub-agents are automatically named after their last path segment. Use the `name:reference` syntax to give them a custom name.
85+
86+
See [External Sub-Agents]({{ '/concepts/multi-agent/#external-sub-agents-from-registries' | relative_url }}) for details.
87+
6988
## Using with Aliases
7089

7190
Combine OCI references with aliases for convenient access:

docs/concepts/multi-agent/index.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,42 @@ list_background_agents()
183183
view_background_agent(task_id="agent_task_abc123")
184184
```
185185

186+
## External Sub-Agents from Registries
187+
188+
Sub-agents don't have to be defined locally — you can reference agents from OCI registries (such as the [Docker Agent Catalog](https://hub.docker.com/u/agentcatalog)) directly in your `sub_agents` list. This lets you compose teams using pre-built, shared agents without duplicating their configuration.
189+
190+
```yaml
191+
agents:
192+
root:
193+
model: openai/gpt-4o
194+
description: Coordinator that delegates to local and catalog sub-agents
195+
instruction: |
196+
Delegate tasks to the most appropriate sub-agent.
197+
sub_agents:
198+
- local_helper
199+
- agentcatalog/pirate # pulled from registry automatically
200+
201+
local_helper:
202+
model: openai/gpt-4o
203+
description: A local helper agent for simple tasks
204+
instruction: You are a helpful assistant.
205+
```
206+
207+
External sub-agents are automatically named after their last path segment — for example, `agentcatalog/pirate` becomes `pirate`. You can also give them an explicit name using the `name:reference` syntax:
208+
209+
```yaml
210+
sub_agents:
211+
- my_pirate:agentcatalog/pirate # available as "my_pirate"
212+
- reviewer:docker.io/myorg/review-agent:latest
213+
```
214+
215+
<div class="callout callout-tip">
216+
<div class="callout-title">💡 Tip
217+
</div>
218+
<p>External sub-agents work with any OCI-compatible registry, not just the Docker Agent Catalog. See <a href="{{ '/concepts/distribution/' | relative_url }}">Agent Distribution</a> for more on registry references.</p>
219+
220+
</div>
221+
186222
## Example: Development Team
187223

188224
```yaml

docs/configuration/agents/index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ agents:
1717
model: string # Required: model reference
1818
description: string # Required: what this agent does
1919
instruction: string # Required: system prompt
20-
sub_agents: [list] # Optional: sub-agent names
20+
sub_agents: [list] # Optional: local or external sub-agent references
2121
toolsets: [list] # Optional: tool configurations
2222
rag: [list] # Optional: RAG source references
2323
fallback: # Optional: fallback config
@@ -63,7 +63,7 @@ agents:
6363
| `model` | string | ✓ | Model reference. Either inline (`openai/gpt-4o`) or a named model from the `models` section. |
6464
| `description` | string | ✓ | Brief description of the agent's purpose. Used by coordinators to decide delegation. |
6565
| `instruction` | string | ✓ | System prompt that defines the agent's behavior, personality, and constraints. |
66-
| `sub_agents` | array | ✗ | List of agent names this agent can delegate to. Automatically enables the `transfer_task` tool. |
66+
| `sub_agents` | array | ✗ | List of agent names or external OCI references this agent can delegate to. Supports local agents, registry references (e.g., `agentcatalog/pirate`), and named references (`name:reference`). Automatically enables the `transfer_task` tool. See [External Sub-Agents]({{ '/concepts/multi-agent/#external-sub-agents-from-registries' | relative_url }}). |
6767
| `toolsets` | array | ✗ | List of tool configurations. See [Tool Config]({{ '/configuration/tools/' | relative_url }}). |
6868
| `fallback` | object | ✗ | Automatic model failover configuration. |
6969
| `add_date` | boolean | ✗ | When `true`, injects the current date into the agent's context. |

docs/configuration/overview/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ API keys and secrets are read from environment variables — never stored in con
164164

165165
docker-agent validates your configuration at startup:
166166

167-
- All `sub_agents` must reference agents defined in the config
167+
- Local `sub_agents` must reference agents defined in the config (external OCI references like `agentcatalog/pirate` are pulled from registries automatically)
168168
- Named model references must exist in the `models` section
169169
- Provider names must be valid (`openai`, `anthropic`, `google`, `dmr`, etc.)
170170
- Required environment variables (API keys) must be set

0 commit comments

Comments
 (0)