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
cwd: z.string().optional().describe('Optional working directory relative to project root'),
35
-
maxResults: z.number().optional().describe('Max results per file. Default 15'),
36
-
})).optional().describe('Array of code search queries (code-searcher)'),
37
-
filePaths: z.array(z.string()).optional().describe('Relevant file paths to read (opus-agent, gpt-5-agent)'),
38
-
directories: z.array(z.string()).optional().describe('Directories to search within (file-picker)'),
39
-
url: z.string().optional().describe('Starting URL to navigate to (browser-use)'),
40
-
prompts: z.array(z.string()).optional().describe('Array of strategy prompts (editor-multi-prompt, code-reviewer-multi-prompt)'),
32
+
command: z
33
+
.string()
34
+
.optional()
35
+
.describe('Terminal command to run (basher, tmux-cli)'),
36
+
what_to_summarize: z
37
+
.string()
38
+
.optional()
39
+
.describe(
40
+
'What information from the command output is desired (basher)',
41
+
),
42
+
timeout_seconds: z
43
+
.number()
44
+
.optional()
45
+
.describe(
46
+
'Timeout for command. Set to -1 for no timeout. Default 30 (basher)',
47
+
),
48
+
searchQueries: z
49
+
.array(
50
+
z.object({
51
+
pattern: z.string().describe('The pattern to search for'),
52
+
flags: z
53
+
.string()
54
+
.optional()
55
+
.describe(
56
+
'Optional ripgrep flags (e.g., "-i", "-g *.ts")',
57
+
),
58
+
cwd: z
59
+
.string()
60
+
.optional()
61
+
.describe(
62
+
'Optional working directory relative to project root',
63
+
),
64
+
maxResults: z
65
+
.number()
66
+
.optional()
67
+
.describe('Max results per file. Default 15'),
68
+
}),
69
+
)
70
+
.optional()
71
+
.describe('Array of code search queries (code-searcher)'),
72
+
filePaths: z
73
+
.array(z.string())
74
+
.optional()
75
+
.describe(
76
+
'Relevant file paths to read (opus-agent, gpt-5-agent)',
77
+
),
78
+
directories: z
79
+
.array(z.string())
80
+
.optional()
81
+
.describe('Directories to search within (file-picker)'),
82
+
url: z
83
+
.string()
84
+
.optional()
85
+
.describe('Starting URL to navigate to (browser-use)'),
86
+
prompts: z
87
+
.array(z.string())
88
+
.optional()
89
+
.describe(
90
+
'Array of strategy prompts (editor-multi-prompt, code-reviewer-multi-prompt)',
91
+
),
41
92
})
42
93
.catchall(z.any())
43
94
.optional()
@@ -58,7 +109,7 @@ Each agent available is already defined as another tool, or, dynamically defined
58
109
59
110
**IMPORTANT**: \`agent_type\` must be an actual agent name (e.g., \`basher\`, \`code-searcher\`, \`opus-agent\`), NOT a tool name like \`read_files\`, \`str_replace\`, \`code_search\`, etc. If you need to call a tool, use it directly as a tool call instead of wrapping it in spawn_agents.
60
111
61
-
You can call agents either as direct tool calls (e.g., \`example-agent\`) or use \`spawn_agents\`. Both formats work, but **prefer using spawn_agents** because it allows you to spawn multiple agents in parallel for better performance. Both use the same schema with nested \`prompt\` and \`params\` fields.
112
+
You can call agents either as direct tool calls (using the listed tool name, e.g. \`example_agent\`) or use \`spawn_agents\` with the canonical agent name in \`agent_type\` (e.g. \`example-agent\`). Both formats work, but **prefer using spawn_agents** because it allows you to spawn multiple agents in parallel for better performance. Both use the same schema with nested \`prompt\` and \`params\` fields.
62
113
63
114
**IMPORTANT**: Many agents have REQUIRED fields in their params schema. Check the agent's schema before spawning - if params has required fields, you MUST include them in the params object. For example, code-searcher requires \`searchQueries\`, basher requires \`command\`.
0 commit comments