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
Copy file name to clipboardExpand all lines: agent-schema.json
+20-2Lines changed: 20 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -397,8 +397,26 @@
397
397
"description": "Lifecycle hooks for executing shell commands at various points in the agent's execution"
398
398
},
399
399
"skills": {
400
-
"type": "boolean",
401
-
"description": "Enable skills discovery for this agent. When enabled, the agent can discover and load skill files (SKILL.md) from the workspace."
400
+
"description": "Enable skills discovery for this agent. Set to true to load all discovered skills from local filesystem sources; false disables skills. A list can mix sources (\"local\" or an HTTP/HTTPS URL) and/or skill names to include. If only names are given, local sources are loaded and filtered to just those skills.",
401
+
"oneOf": [
402
+
{
403
+
"type": "boolean",
404
+
"description": "When true, loads all discovered local skills. When false, skills are disabled."
405
+
},
406
+
{
407
+
"type": "array",
408
+
"description": "List combining skill sources and/or skill names to include. Items equal to \"local\" or starting with http:// or https:// are treated as sources; any other string is treated as a skill name filter.",
skills: boolean | [list] # Optional: enable skill discovery (true/false or list of names and/or sources)
37
37
commands: # Optional: named prompts
38
38
name: "prompt text"
39
39
welcome_message: string # Optional: message shown at session start
@@ -78,7 +78,7 @@ agents:
78
78
| `max_old_tool_call_tokens` | int | ✗ | Maximum number of tokens to keep from old tool call arguments and results. Older tool calls beyond this budget have their content replaced with a placeholder, saving context space. Tokens are approximated as `len/4`. Set to `-1` to disable truncation (unlimited). Default: `40000`. |
79
79
| `num_history_items` | int | ✗ | Limit the number of conversation history messages sent to the model. Useful for managing context window size with long conversations. Default: unlimited (all messages sent). |
80
80
| `rag` | array | ✗ | List of RAG source names to attach to this agent. References sources defined in the top-level `rag` section. See [RAG]({{ '/features/rag/' | relative_url }}). |
81
-
| `skills` | boolean | ✗ | Enable automatic skill discovery from standard directories. |
81
+
| `skills` | bool/array | ✗ | Enable automatic skill discovery. `true` loads all discovered local skills, `false` disables them. A list can mix skill sources (`local` or `https://…` URLs) and skill names to include — see [Skills]({{ '/features/skills/' | relative_url }}). |
82
82
| `commands` | object | ✗ | Named prompts that can be run with `docker agent run config.yaml /command_name`. |
83
83
| `welcome_message` | string | ✗ | Message displayed to the user when a session starts. Useful for providing context or instructions. |
84
84
| `handoffs` | array | ✗ | List of agent names this agent can hand off the conversation to. Enables the `handoff` tool. See [Handoffs Routing]({{ '/concepts/multi-agent/#handoffs-routing' | relative_url }}). |
Copy file name to clipboardExpand all lines: docs/features/skills/index.md
+36-2Lines changed: 36 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -34,6 +34,40 @@ agents:
34
34
35
35
</div>
36
36
37
+
## Filtering Skills
38
+
39
+
The `skills` field also accepts a list, letting you restrict the agent to a specific subset of skills instead of exposing every discovered one. List items are classified automatically:
40
+
41
+
- `"local"`or any `http://` / `https://` URL → a **source** to load skills from
42
+
- any other string → the **name** of a skill to include
43
+
44
+
When only names are given, local sources are used by default.
45
+
46
+
```yaml
47
+
agents:
48
+
# Load every discovered local skill (same as `skills: true`).
49
+
full:
50
+
skills: true
51
+
52
+
# Load local skills, but only expose "commit" and "poem".
53
+
scoped:
54
+
skills:
55
+
- commit
56
+
- poem
57
+
58
+
# Combine an explicit source with a name filter.
59
+
remote_filtered:
60
+
skills:
61
+
- https://skills.example.com
62
+
- commit
63
+
64
+
# Disable skills entirely.
65
+
none:
66
+
skills: false
67
+
```
68
+
69
+
A name that doesn't match any discovered skill is logged as a warning at startup but is otherwise ignored.
70
+
37
71
## SKILL.md Format
38
72
39
73
<!-- yaml-lint:skip -->
@@ -171,11 +205,11 @@ When asked to create a Dockerfile:
171
205
EOF
172
206
```
173
207
174
-
The skill will automatically be available to any agent with `skills: true`.
208
+
The skill will automatically be available to any agent with skills enabled (`skills: true`, or a list that targets its name — see [Filtering Skills](#filtering-skills)).
175
209
176
210
<divclass="callout callout-info"markdown="1">
177
211
<divclass="callout-title">ℹ️ See also
178
212
</div>
179
-
<p>Skills are enabled in the <ahref="{{ '/configuration/agents/' | relative_url }}">Agent Config</a> with the <code>skills: true</code> property. For tool-based capabilities, see <ahref="{{ '/concepts/tools/' | relative_url }}">Tools</a>.</p>
213
+
<p>Skills are enabled in the <ahref="{{ '/configuration/agents/' | relative_url }}">Agent Config</a> with the <code>skills</code> property (boolean or list). For tool-based capabilities, see <ahref="{{ '/concepts/tools/' | relative_url }}">Tools</a>.</p>
0 commit comments