No way to scope an externally-registered tool away from sub-agents
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
Direzione di ricerca
Inizia tracciando SessionConfig.tools e ResumeSessionConfig.tools fino a Tool, DefaultAgentConfig, CustomAgentConfig e alla configurazione dei sub-agent integrati. Confronta i design proposti per la disponibilità a livello di Tool e l'esclusione a livello di agente; il lavoro è completo quando uno strumento registrato può rimanere disponibile per l'agente principale, pur non essendo disponibile per i sub-agent integrati, senza rimuovere tali agenti.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
An SDK consumer registers external tools via SessionConfig.tools / ResumeSessionConfig.tools. Those tools reach the default agent and are inherited by sub-agent runs, including built-in ones (task, explore, …). There is no supported way to express "this tool is for the top-level agent only."
The existing controls are asymmetric
DefaultAgentConfig.excluded_toolshides a tool from the default agent while keeping it available to sub-agents — precisely the opposite of what's needed. (Its own doc comment says so: "hide tools from the default agent while keeping them available to custom sub-agents that list them in theirCustomAgentConfig::tools".)CustomAgentConfig.toolsis a per-custom-agent allowlist, so it only constrains agents the consumer defines. Built-in sub-agents can't be reached this way.excluded_builtin_agentsremoves the sub-agent outright — far too coarse, and it disables capability the consumer still wants.
Why this is general
Many externally-registered tools are either:
- UI-bound — they drive a picker, a canvas, an editor, or another foreground surface that only exists for the conversation the user is actually looking at. A background sub-agent has nothing to drive.
- Acting with the user's authority in a third-party system — posting messages, filing tickets, sending mail, spending money. Autonomous invocation from a delegated worker is the wrong default.
Neither of those is specific to one embedder; both follow from the tool being executed outside the agent loop, on behalf of a user who is present in exactly one conversation.
Ask
A way to declare this at registration. Two shapes seem plausible:
- A field on
Tool, e.g.availability:session(default) |primary-agent-only. - A
DefaultAgentConfig-symmetric sub-agent config carryingexcluded_tools.
The Tool-level field seems stronger: the constraint belongs to the tool rather than to one agent's configuration, so it keeps holding as new built-in agents are added, and a consumer registering a tool doesn't have to enumerate the agent set to protect it.
Current workaround
Refusing the invocation after the fact — the host answers the tool call with a failure instead of executing it. That works, but it costs a model turn, hands the model an error it may retry against, and gives no way to express that the tool simply isn't available in that context. The tool stays in the sub-agent's tool list either way.
- Lingua principale
- TypeScript
- Stelle
- 10.5k
- Fork
- 1.5k
- Merge medio
- 1g 7h
- PR unite (30g)
- 98
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di github/copilot-sdk
-
documentation
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 92/100
github/copilot-sdk#2804 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
github/copilot-sdk#2798 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
github/copilot-sdk#2793 ·
I maintainer di solito rispondono entro 1 giorno
-
agentic-workflows
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
github/copilot-sdk#2782 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
github/copilot-sdk#2781 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di github/copilot-sdk
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
Doist/todoist-cli#576 ·
I maintainer di solito rispondono entro 1 giorno
-
🐛 Bug supabase/cli
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
CopilotKit/aimock#491 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
agilepathway/label-checker#710 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno