📄 Full write-up (all 7 requests): https://gist.github.com/CallMeCJ/59eeb39c4eb459e89eab22a2b34da6e5
Summary. As a consumer building on the GHCP SDK, we can't curate the task tool's built-in agent list, and the tool description the SDK hands our model contains hardcoded model-family wording.
Current behavior. The task tool advertises a fixed set of built-in agent types, and the description string carries model-family wording. Two problems:
- The list isn't customizable — there's no configuration to hide/disable built-in agents we don't want offered; they always appear in the
agent_type options.
- The description hardcodes model-family terms — the agent descriptions embedded in the prompt our model reads every turn name specific model families (e.g. "Haiku model", "Sonnet model").
What we get today. This is the actual task tool description the SDK surfaces to the model (default built-in set; exact text shifts slightly with enabled feature flags, but the model-family wording is constant):
Custom agent: Launch specialized agents in separate context windows for specific tasks.
The Task tool launches specialized agents that autonomously handle complex tasks. Each agent type has specific capabilities and tools available to it.
Available agent types:
- **explore**: Fast agent for codebase exploration and research. Use when a task decomposes into many independent research threads (e.g., analyzing multiple services or modules in parallel), when the user asks several unrelated questions, or for complex cross-cutting investigations across many modules in a large codebase. For simple lookups — understanding a specific component, finding a symbol, or reading a few known files — do it yourself with grep/glob/view. (Tools: grep/glob/view/bash/powershell, Haiku model)
- **task**: Agent for executing commands with verbose output (tests, builds, lints, dependency installs). Returns brief summary on success ("All 247 tests passed", "Build succeeded"), full output on failure (stack traces, compiler errors). Keeps main context clean by minimizing successful output. Use for tasks where you only need to know success/failure status. (Tools: All CLI tools, Haiku model)
- **general-purpose**: Full-capability agent running in a subprocess. Use for complex multi-step tasks requiring the complete toolset and high-quality reasoning. Runs in a separate context window to keep your main conversation clean. (Tools: All CLI tools, Sonnet model)
- **rubber-duck**: Agent for providing high-signal feedback on plans and implementations. Catches bugs, logic errors, and design flaws that may not be apparent to the original author. Will not comment on style, formatting, or trivial matters.
- **code-review**: Agent for reviewing code changes with extremely high signal-to-noise ratio. Analyzes staged/unstaged changes and branch diffs. Only surfaces issues that genuinely matter - bugs, security vulnerabilities, logic errors. Never comments on style, formatting, or trivial matters. Will NOT modify code. (Tools: All CLI tools for investigation)
- **research**: Research subagent that executes thorough searches based on instructions. Searches GitHub repos, fetches files, verifies claims, and reports detailed findings with citations.
When NOT to use Task tool:
- Reading specific file paths you already know - use view tool instead
- Simple single grep/glob search - use grep/glob tools directly
- Commands where you need immediate full output in your context - use bash directly
- File operations on known files - use edit/create tools directly
- Answering simple and single search questions about the codebase - use grep/glob/view directly
Usage notes:
- Can launch multiple explore/code-review/research agents in parallel (task, general-purpose, rubber-duck have side effects)
- Each agent is stateless - provide complete context in your prompt
- Agent results are returned in a single message
- Use 'model' parameter to override the default model for any agent type
Note the trailing (Tools: …, Haiku model) and (Tools: All CLI tools, Sonnet model) on explore/task/general-purpose, and that the full agent menu is fixed — there's no supported way to remove an entry or relabel the model wording.
What we want. A way to curate the built-in agent list per deployment (hide the agents a scenario doesn't use), and a model-agnostic description with no hardcoded model-family names.
Why it matters. When a session runs on a non-default model/provider, the model-family wording is off-topic text that adds prompt cost every turn and can bias the model's choices; and we'd prefer to expose only the agents a given scenario actually uses rather than the full fixed menu.
Related: #1773 (disable / kill-switch for built-in agents)
Summary. As a consumer building on the GHCP SDK, we can't curate the
tasktool's built-in agent list, and the tool description the SDK hands our model contains hardcoded model-family wording.Current behavior. The
tasktool advertises a fixed set of built-in agent types, and the description string carries model-family wording. Two problems:agent_typeoptions.What we get today. This is the actual
tasktool description the SDK surfaces to the model (default built-in set; exact text shifts slightly with enabled feature flags, but the model-family wording is constant):Note the trailing
(Tools: …, Haiku model)and(Tools: All CLI tools, Sonnet model)onexplore/task/general-purpose, and that the full agent menu is fixed — there's no supported way to remove an entry or relabel the model wording.What we want. A way to curate the built-in agent list per deployment (hide the agents a scenario doesn't use), and a model-agnostic description with no hardcoded model-family names.
Why it matters. When a session runs on a non-default model/provider, the model-family wording is off-topic text that adds prompt cost every turn and can bias the model's choices; and we'd prefer to expose only the agents a given scenario actually uses rather than the full fixed menu.
Related: #1773 (disable / kill-switch for built-in agents)