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 - **`frontend`**: Frontend-provided tools called through the frontend
- **`inline_python`**: Inline Python code executed using uvx. Requires `code` field; optional `dependencies` for packages. - **`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 #### Example Extensions Configuration
<Tabs groupId="format"> <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). 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 ### Parameter Handling
Parameters received by subrecipes can be used in prompts and instructions using `{{ parameter_name }}` syntax. Subrecipes receive parameters in two ways: 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. 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:** **Examples:**
``` ```
"Create a subagent to write a summary, but don't give it file access" "Create a subagent to write a summary, but don't give it file access"