docs: document summon extension requirement for delegate and load tools (#9231)

Signed-off-by: Douwe Osinga <douwe@squareup.com>
Co-authored-by: Douwe Osinga <douwe@squareup.com>
This commit is contained in:
Douwe Osinga
2026-05-16 10:41:15 -04:00
committed by GitHub
parent 3cf0bcdec7
commit 3254d442c9
3 changed files with 29 additions and 0 deletions
@@ -176,6 +176,18 @@ The `extensions` field allows you to specify which Model Context Protocol (MCP)
- **`frontend`**: Frontend-provided tools called through the frontend
- **`inline_python`**: Inline Python code executed using uvx. Requires `code` field; optional `dependencies` for packages.
:::note Summon Extension and Subagents
The `delegate` and `load` tools are provided by the `summon` platform extension. When a recipe specifies an explicit `extensions` block, only the listed extensions are available — default platform extensions like `summon` are not automatically included. If your recipe needs subagent delegation, add `summon` to your extensions list:
```yaml
extensions:
- type: platform
name: summon
```
Recipes that define [`sub_recipes`](/docs/guides/recipes/subrecipes) have `summon` auto-injected and do not need to list it explicitly.
:::
#### Example Extensions Configuration
<Tabs groupId="format">
@@ -28,6 +28,10 @@ When the main recipe is run, goose generates a tool for each subrecipe that:
Sub-recipe sessions run in isolation - they don't share conversation history, memory, or state with the main recipe or other subrecipes. Additionally, subrecipes cannot define their own subrecipes (no nesting allowed).
:::note
Recipes that define `sub_recipes` automatically get the `summon` platform extension injected, so the `delegate` tool is available without needing to list it in `extensions`.
:::
### Parameter Handling
Parameters received by subrecipes can be used in prompts and instructions using `{{ parameter_name }}` syntax. Subrecipes receive parameters in two ways:
+13
View File
@@ -299,6 +299,19 @@ You can override any default by including the setting in your natural language r
Control which tools and capabilities subagents can access. By default, subagents inherit all extensions from your main session, but you can restrict access for security, focus or performance.
:::note Summon Extension
The `delegate` and `load` tools are provided by the `summon` platform extension, which is enabled by default. If you are using a [recipe](/docs/guides/recipes/) with an explicit `extensions` block, you must include `summon` in that list or the `delegate` tool will not be available:
```yaml
extensions:
- type: platform
name: summon
# ... your other extensions
```
Recipes that define [`sub_recipes`](/docs/guides/recipes/subrecipes) have `summon` auto-injected.
:::
**Examples:**
```
"Create a subagent to write a summary, but don't give it file access"