You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs: deduplicate tool documentation into individual pages
Move built-in tool documentation from being duplicated across
concepts/tools and configuration/tools into dedicated pages under
docs/tools/ (one page per toolset).
- Create individual pages for: filesystem, shell, think, todo, memory,
fetch, script, transfer-task, background-agents, handoff, a2a
- Slim down concepts/tools to a summary table linking to each tool page
- Slim down configuration/tools to a summary table plus cross-cutting
concerns (MCP, auto-install, filtering, deferred loading)
- Update nav.yml to list all 14 built-in tools (was 3)
Assisted-By: docker-agent
@@ -21,175 +21,47 @@ When an agent needs to perform an action, it makes a **tool call**. The docker-a
21
21
<divclass="callout-title">ℹ️ Tool Confirmation
22
22
</div>
23
23
<p>By default, docker-agent asks for user confirmation before executing tools that have side effects (shell commands, file writes). Use <code>--yolo</code> to auto-approve all tool calls.</p>
24
-
25
24
</div>
26
25
27
26
## Built-in Tools
28
27
29
-
docker-agent ships with several built-in tools that require no external dependencies. Each is enabled by adding its `type` to the agent's `toolsets` list.
30
-
31
-
### Filesystem
32
-
33
-
Gives agents the ability to read, write, list, search, and navigate files and directories. The agent receives tools such as `read_file`, `write_file`, `list_directory`, `search_files_content`, `directory_tree`, and more.
34
-
35
-
```yaml
36
-
toolsets:
37
-
- type: filesystem
38
-
```
39
-
40
-
The filesystem tool respects the working directory and allows agents to explore codebases, edit config files, create new files, and perform search-and-replace operations.
41
-
42
-
### Shell
43
-
44
-
Allows agents to execute arbitrary shell commands in the user's environment. This is one of the most powerful tools — it lets agents run builds, install dependencies, query APIs, and interact with the system.
45
-
46
-
```yaml
47
-
toolsets:
48
-
- type: shell
49
-
```
50
-
51
-
Commands run in a fresh shell session with access to all environment variables. Each invocation is isolated — no state persists between calls. Requires user confirmation by default.
52
-
53
-
### Think
54
-
55
-
A reasoning scratchpad that lets agents think step-by-step before acting. The agent can write its thoughts without producing visible output to the user — useful for planning complex tasks, breaking down problems, and reasoning through multi-step solutions.
56
-
57
-
```yaml
58
-
toolsets:
59
-
- type: think
60
-
```
61
-
62
-
This is a lightweight tool with no side effects. It's recommended for all agents — it improves the quality of reasoning on complex tasks at minimal cost.
63
-
64
-
### Todo
65
-
66
-
Task list management. Agents can create, update, list, and track progress on tasks. Useful for complex multi-step workflows where the agent needs to stay organized.
67
-
68
-
```yaml
69
-
toolsets:
70
-
- type: todo
71
-
```
72
-
73
-
The agent gets tools like `create_todo`, `update_todos`, and `list_todos` with status tracking (pending, in-progress, completed).
74
-
75
-
### Memory
76
-
77
-
Persistent key-value storage backed by SQLite. Data survives across sessions, allowing agents to remember facts, user preferences, project context, and past decisions.
Without `path`, a default location is used. Memory is especially useful for long-running assistants that need to recall information across conversations.
86
-
87
-
### Fetch
88
-
89
-
Make HTTP requests (GET, POST, PUT, DELETE, etc.) to external APIs. The agent can read web pages, call REST APIs, download data, and interact with web services.
90
-
91
-
```yaml
92
-
toolsets:
93
-
- type: fetch
94
-
```
95
-
96
-
### Script
97
-
98
-
Define custom shell scripts as named tools. Unlike the generic `shell` tool where the agent writes the command, script tools execute predefined commands — useful for exposing safe, constrained operations.
99
-
100
-
```yaml
101
-
toolsets:
102
-
- type: script
103
-
shell:
104
-
run_tests:
105
-
cmd: task test
106
-
description: Run the project test suite
107
-
lint:
108
-
cmd: task lint
109
-
description: Run the linter
110
-
```
111
-
112
-
### Transfer Task
113
-
114
-
The `transfer_task` tool is automatically available when an agent has `sub_agents` configured. It allows the agent to delegate tasks to specialized sub-agents and receive their results. This is the core mechanism for multi-agent orchestration — you don't need to add it manually.
28
+
docker-agent ships with several built-in tools that require no external dependencies. Each is enabled by adding its `type` to the agent's `toolsets` list:
29
+
30
+
| Tool | Description |
31
+
| --- | --- |
32
+
|[Filesystem](/tools/filesystem/)| Read, write, list, search, and navigate files and directories |
33
+
|[Shell](/tools/shell/)| Execute arbitrary shell commands in the user's environment |
34
+
|[Think](/tools/think/)| Step-by-step reasoning scratchpad for planning and decision-making |
35
+
|[Todo](/tools/todo/)| Task list management for complex multi-step workflows |
36
+
|[Memory](/tools/memory/)| Persistent key-value storage backed by SQLite |
37
+
|[Fetch](/tools/fetch/)| Make HTTP requests to external APIs and web services |
38
+
|[Script](/tools/script/)| Define custom shell scripts as named tools |
39
+
|[LSP](/tools/lsp/)| Connect to Language Server Protocol servers for code intelligence |
40
+
|[API](/tools/api/)| Create custom tools that call HTTP APIs without writing code |
41
+
|[User Prompt](/tools/user-prompt/)| Ask users questions and collect interactive input |
42
+
|[Transfer Task](/tools/transfer-task/)| Delegate tasks to sub-agents (auto-enabled with `sub_agents`) |
43
+
|[Background Agents](/tools/background-agents/)| Dispatch work to sub-agents concurrently |
44
+
|[Handoff](/tools/handoff/)| Delegate tasks to remote agents via A2A |
45
+
|[A2A](/tools/a2a/)| Connect to remote agents via the Agent-to-Agent protocol |
115
46
116
47
## MCP Tools
117
48
118
49
docker-agent supports the [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) for extending agents with external tools. There are three ways to connect MCP tools:
119
50
120
-
### Docker MCP (Recommended)
121
-
122
-
Run MCP servers in Docker containers for security and isolation:
123
-
124
-
```yaml
125
-
toolsets:
126
-
- type: mcp
127
-
ref: docker:duckduckgo # web search
128
-
- type: mcp
129
-
ref: docker:github-official # GitHub integration
130
-
```
131
-
132
-
Docker MCP tools run through the [Docker MCP Gateway](https://github.com/docker/mcp-gateway), which manages container lifecycles and provides security isolation. Browse available tools in the [Docker MCP Catalog](https://hub.docker.com/search?q=&type=mcp).
133
-
134
-
### Local MCP (stdio)
135
-
136
-
Run MCP servers as local processes communicating over stdin/stdout. Here's an example adding `rust-mcp-filesystem` for file operations alongside a Docker MCP tool:
51
+
-**Docker MCP** (recommended) — Run MCP servers in Docker containers via the [MCP Gateway](https://github.com/docker/mcp-gateway). Browse the [Docker MCP Catalog](https://hub.docker.com/search?q=&type=mcp).
52
+
-**Local MCP (stdio)** — Run MCP servers as local processes communicating over stdin/stdout.
53
+
-**Remote MCP (SSE / HTTP)** — Connect to MCP servers running on a network. See [Remote MCP Servers](/features/remote-mcp/).
137
54
138
55
```yaml
139
56
toolsets:
140
57
- type: mcp
141
58
ref: docker:duckduckgo
142
-
- type: mcp
143
-
command: rust-mcp-filesystem
144
-
args: ["--allow-write", "."]
145
-
tools: ["read_file", "write_file"] # optional: only expose specific tools
146
-
env:
147
-
RUST_LOG: debug
148
59
```
149
60
150
-
### Remote MCP (SSE / HTTP)
151
-
152
-
Connect to MCP servers running on a network:
153
-
154
-
```yaml
155
-
toolsets:
156
-
- type: mcp
157
-
remote:
158
-
url: "https://mcp.example.com"
159
-
transport_type: "sse"
160
-
headers:
161
-
Authorization: "Bearer your-token"
162
-
```
163
-
164
-
## Tool Filtering
165
-
166
-
Toolsets may expose many tools. You can use the `tools` property to whitelist only the ones you need. This works for any toolset type — not just MCP:
167
-
168
-
```yaml
169
-
toolsets:
170
-
- type: mcp
171
-
ref: docker:github-official
172
-
tools: ["list_issues", "create_issue"] # only these MCP tools
173
-
- type: filesystem
174
-
tools: ["read_file", "search_files_content"] # only these filesystem tools
175
-
```
176
-
177
-
## Tool Instructions
178
-
179
-
Add custom instructions that are injected into the agent's context when a toolset is loaded:
180
-
181
-
```yaml
182
-
toolsets:
183
-
- type: mcp
184
-
ref: docker:github-official
185
-
instruction: |
186
-
Use these tools to manage GitHub issues.
187
-
Always check for existing issues before creating new ones.
188
-
```
61
+
See [Tool Config](/configuration/tools/#mcp-tools) for full MCP configuration reference.
189
62
190
63
<div class="callout callout-tip">
191
64
<div class="callout-title">💡 See also
192
65
</div>
193
-
<p>For connecting to 50+ cloud services via remote MCP with OAuth, see <a href="{{ '/features/remote-mcp/' | relative_url }}">Remote MCP Servers</a>. For RAG (document retrieval), see <a href="{{ '/features/rag/' | relative_url }}">RAG</a>. For full tool config reference, see <a href="{{ '/configuration/tools/' | relative_url }}">Tool Config</a>.</p>
194
-
66
+
<p>For full configuration reference, see <a href="/configuration/tools/">Tool Config</a>. For RAG (document retrieval), see <a href="/features/rag/">RAG</a>.</p>
Copy file name to clipboardExpand all lines: docs/configuration/agents/index.md
+1-18Lines changed: 1 addition & 18 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -109,7 +109,7 @@ agents:
109
109
110
110
## Deferred Tool Loading
111
111
112
-
Load tools on-demand to speed up agent startup:
112
+
Toolsets support `defer` to load tools on-demand and speed up agent startup. See [Deferred Tool Loading](/configuration/tools/#deferred-tool-loading) for details.
113
113
114
114
```yaml
115
115
agents:
@@ -121,26 +121,9 @@ agents:
121
121
- type: mcp
122
122
ref: docker:github-official
123
123
defer: true
124
-
- type: mcp
125
-
ref: docker:slack
126
-
defer: true
127
124
- type: filesystem
128
125
```
129
126
130
-
Or defer specific tools within a toolset:
131
-
132
-
```yaml
133
-
agents:
134
-
root:
135
-
model: openai/gpt-4o
136
-
toolsets:
137
-
- type: mcp
138
-
ref: docker:github-official
139
-
defer:
140
-
- "list_issues"
141
-
- "search_repos"
142
-
```
143
-
144
127
## Fallback Configuration
145
128
146
129
Automatically switch to backup models when the primary fails:
0 commit comments