Skip to content

Custom agents with builtin agent names are silently ignored #1528

@RyanHecht

Description

@RyanHecht

Problem

If a user creates a custom agent (e.g., .github/agents/explore.md) that shares a name with a builtin agent (explore, task, code-review, general-purpose), the custom agent loads successfully but can never be invoked. The task tool dispatch logic checks builtin agents first via isYamlBasedAgent(), so the builtin always takes precedence. No warning or error is surfaced — the conflict is silently ignored.

Relevant code

  • Builtin agent names: src/agents/customAgents/builtinAgents.tsCORE_YAML_AGENT_NAMES
  • Agent dispatch: src/tools/taskTool.tsisYamlBasedAgent() is checked before isUserAgent(), so builtin always wins
  • Custom agent loading: src/cli/hooks/useCustomAgents.ts — no conflict detection against builtin names

Suggested behavior

A few options (not mutually exclusive):

  1. Warn at load time — When a custom agent name collides with a builtin, log a warning so the user knows their agent will not be used.
  2. Custom agents override builtins — Let users intentionally replace builtin agents with their own. This gives power users more control.
  3. Block conflicting names — Reject custom agents that collide with builtin names, with a clear error message suggesting a rename.

Context

Discovered via internal feedback.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions