github / github/copilot-cli

🐛 Repo `.claude/agents/*/AGENT.md` `model:` field overrides session model for Copilot custom agents, breaking subagent spawns on BYOK providers

Ouverte
#4,437 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

area:agents area:models
Langage dominant
Shell
Étoiles
11.2k
Forks
1.9k
Merge moyen
14 h 16 min
PR mergées (30 j)
6

Description

Describe the bug

When a repository ships a Claude-Code agent definition in .claude/agents/<name>/AGENT.md with a model: field, the GitHub Copilot CLI honors that model: value as the default model for the Copilot custom agent of the same name — even when the agent is launched from .github/agents/<name>.md and even when the session runs on a different model.

On a BYOK provider (e.g. Ollama) where that model (sonnet, opus, …) is not served, spawning the agent as a task-tool subagent silently fails: the orchestrator reports Agent completed but produced no response. (or a Model '...' not found on provider ... (HTTP 404)), with no error surfaced to the caller.

Repro

  1. Session started with COPILOT_MODEL=deepseek-v4-flash:cloud (Ollama BYOK) and --model deepseek-v4-flash:cloud.
  2. Repo contains:
    • .github/agents/developer.md — a Copilot custom agent (no model: field).
    • .claude/agents/developer/AGENT.md — a Claude-Code agent with model: sonnet.
  3. Orchestrator (agent_type: test-orch, tool task) spawns task(agent_type: developer, mode: sync, ...).

Result: subagent fails / displays as Developer(sonnet), no response. Removing the model: sonnet line from .claude/agents/developer/AGENT.md, or moving the agent to user scope ~/.copilot/agents/, makes it inherit the session model and work.

Evidence (local bisect)

  • With .claude/agents/developer/AGENT.md (model: sonnet) present → Developer(sonnet), subagent fails.
  • Removing only the model: sonnet line → Developer(deepseek-v4-flash:cloud), subagent works.
  • Removing the whole .claude/agents/ dir → same fix.
  • User-level .copilot/agents/developer.md (no .claude counterpart, no model:) → inherits session model, works.
  • Passing model: deepseek-v4-flash:cloud explicitly to the task tool → overrides the .claude model, works.

The changelog confirms repo-level .claude/agents are intentionally discovered as custom agents, but honoring their Claude-specific model: hint for Copilot agents appears unintended and is the trigger.

Expected behaviour

Option A: .claude/agents/*/AGENT.md model: is treated as a Claude-Code-only hint and is ignored by the Copilot CLI (agents inherit the session model like .github/agents/*.md do).

Option B: a configuration flag/setting to ignore .claude models or force session-model inheritance for subagents.

Environment

  • Copilot CLI 1.0.79, macOS.
  • Provider: Ollama BYOK via COPILOT_PROVIDER_BASE_URL, COPILOT_PROVIDER_WIRE_API=responses, COPILOT_MODEL.

Related

  • #3266 (background task agents silently substitute requested model)
  • #2758 (opt-out for the cost-multiplier guard that clamps subagent model to session model)

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par retracer comment .claude/agents/*/AGENT.md au niveau du dépôt est découvert et comment son champ model est mappé vers les Copilot custom agents ; comparez-le avec .github/agents/developer.md et ~/.copilot/agents/developer.md. Reproduisez le problème avec Ollama BYOK et task(agent_type: developer), puis vérifiez que le sous-agent hérite du modèle de la session et renvoie une réponse lorsque le modèle Claude n’est pas disponible.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
ollama, shell
Domaine
ai, cli
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
Calme
Clarté
Plutôt claire
Accessibilité débutants
50/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.