github / github/copilot-cli

bug: 'web'/'search' tool-category aliases silently resolve to no bound tool in headless --agent dispatch

Aperta
#4,023 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
area:agents area:non-interactive area:tools
Lingua principale
Shell
Stelle
11.2k
Fork
1.9k
Merge medio
14h 16m
PR unite (30g)
6

Descrizione

## Summary

When an agent's frontmatter declares tools using the category aliases `web` or
`search`, those aliases silently resolve to **no bound tool at all** when the
agent is dispatched headlessly via `copilot --agent -p ... --allow-all-tools`.
There is no error or warning — the agent simply has no web-fetch/web-search
capability, which is easy to miss since nothing fails loudly.

Other category aliases in the same position work correctly: `read` → `view`,
`edit` → `edit`, `shell` → `powershell`, `agent` → `task/read_agent/list_agents`.
Only `web` and `search` are affected.

## Environment

- GitHub Copilot CLI 1.0.68 (Windows)
- Invocation: `copilot --agent -p "" --allow-all-tools`

## Repro

Agent frontmatter:
```yaml
---
name: tool-probe
tools:
- read
- web
- search
---
```

Dispatch:
```
copilot --agent tool-probe -p "List every tool you have available to you right now, one per line, then stop." --allow-all-tools
```

**Observed bound tools:** view, skill, sql — no web/search tool at all.

Changing the frontmatter to the literal tool names instead of the category aliases:

```yaml
tools:
- read
- web_fetch
- web_search
```

**Observed bound tools:** view, web_fetch, web_search, skill, sql — correct.

## Impact

Any agent relying on the documented web/search category aliases for web
access has zero web tooling in headless dispatch, with no error surfaced
anywhere. We found this affected 5 of our own agent specs (including a
Chief-of-Staff-style orchestrator whose own web lookups were silently broken)
before switching to literal tool names as a workaround.

## Suggested fix

Category-alias resolution for web/search should map to web_fetch/web_search
in headless --agent dispatch mode the same way shell correctly maps to
powershell and read maps to view.

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia tracciando la risoluzione degli alias di categoria per gli strumenti frontmatter durante il dispatch headless --agent, usando la riproduzione documentata di web/search. Confronta questi alias con read e shell, quindi verifica il comportamento letterale di web_fetch/web_search. Il lavoro è completato quando web e search associano gli strumenti previsti nel dispatch headless e il fallimento silenzioso è coperto da un controllo di regressione.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
shell
Ambito
cli
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Tranquilla
Chiarezza
Abbastanza chiara
Idoneità per principianti
68/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.