Einführung
Das Verbinden von MCP-Servern und anderen externen Tools mit Copilot CLI ist leistungsstark, aber jedes Tool, das Sie hinzufügen, ist mit Kosten verbunden: Seine Definition nimmt Platz im Kontextfenster des Modells ein, und eine lange Liste von Tools erschwert es dem Agenten, das richtige auszuwählen. Beim Laden von Tools bei Bedarf (oder "Toolsuche") wird verhindert, dass das Kontextfenster durch Definitionen für Tools, die der Agent nicht verwendet, überladen wird. Der Agent beginnt mit nur seinen integrierten Tools und einer Möglichkeit, den Rest nachzuschlagen, und lädt dann nur zusätzliche Tools, wenn sie zum Ausführen einer Aufgabe benötigt werden.
Die Toolsuche behebt zwei Probleme, die mit einer wachsenden Anzahl von Tools verbunden sind:
- Verschwendeter Kontext. Schon ein paar Dutzend Tool-Definitionen können 10–20K Token verbrauchen, bevor der Agent überhaupt etwas getan hat.
- Verringerte Genauigkeit der Werkzeugauswahl. Sobald mehrere Dutzend Werkzeuge gleichzeitig sichtbar sind, greift das Modell eher zum falschen.
Was während einer Sitzung geschieht
Jedes Mal, wenn Sie eine Eingabeaufforderung eingeben, überprüft die CLI den aktuellen Toolbestand und entscheidet, ob die Toolsuche verwendet werden soll. Bei weniger als etwa 30 Tools lohnt sich die Einsparung durch die Toolsuche nicht, daher überspringt Copilot CLI die Toolsuche vollständig und lädt einfach alles.
Wenn die Toolsuche verwendet wird, werden zunächst nur die integrierten Tools der CLI geladen. Alles andere – MCP-Tools und andere externe Tools – wird zurückgehalten. Der Agent kann sehen, dass es diese Tools gibt und ungefähr, wofür sie gedacht sind, jedoch sind ihre vollständigen Definitionen noch nicht geladen.
Wenn der Agent einen Schritt erreicht, der ein Tool benötigt, das nicht geladen wurde, führt er eine schnelle Suche über die verfügbaren Tools aus und zieht die nächstgelegenen Übereinstimmungen in den Kontext. Diese Werkzeuge stehen dann für den Rest der Konversation zur Verfügung, sodass die Suche für jedes davon nur beim ersten Bedarf erfolgt.
Diese erste Abfrage kostet zwar einen zusätzlichen Austausch mit dem Modell, aber dieser Mehraufwand zahlt sich vielfach aus, weil Sie bei jeder späteren Interaktion den Kontext klein halten.
Tools, die immer geladen werden
Eine Handvoll Tools überspringen die Toolsuche und sind sofort bereit:
- Copilot CLIs integrierte Werkzeuge (grep, glob, bash, edit usw.).
- Tools von einem MCP-Server, den Sie mit
deferTools: "never"konfiguriert haben. Siehe Die Tools eines MCP-Servers immer geladen halten weiter unten in diesem Artikel. - Von einem benutzerdefinierten Agent geladene Tools. Weitere Informationen finden Sie unter Konfigurieren der Toolverzögerung in benutzerdefinierten Agents weiter unten in diesem Artikel.
Deaktivieren der Toolsuche
Die Toolsuche ist standardmäßig aktiviert und schaltet sich automatisch ein, wenn Sie ein unterstütztes Modell verwenden und genug verbundene Tools haben, damit sich ihr Einsatz lohnt. Um die Toolsuche zu deaktivieren und wieder alle Tools zu laden, setzen Sie toolSearch: false in Ihren persönlichen Einstellungen. Siehe GitHub Copilot CLI-Konfigurationsverzeichnis.
Unterstützte Modelle
| Familie | Unterstützte Versionen |
|---|---|
| Claude (Anthropic) | Mythos Preview, Fable, Sonnet 4.0+, Opus 4.0+ (nicht Haiku) |
| GPT (OpenAI) | GPT-5.4 und höher |
Auf jedem anderen Modell werden alle Tools vorab geladen.
Das ständige Geladenhalten der Tools eines MCP-Servers
Manchmal möchten Sie möglicherweise, dass die Tools eines bestimmten MCP-Servers immer vor dem Agent stehen, z. B. ein Server, dessen Tools ständig verwendet werden, oder einen Server, auf dem der zusätzliche Suchschritt nicht wert ist. Jeder MCP-Server verfügt über eine deferTools Einstellung, die Folgendes steuert:
"auto"(Standard) – die Tools des Servers verhalten sich wie jede andere und können zurückgestellt werden, sobald Sie den Schwellenwert überschritten haben."never"— die Tools des Servers sind immer in der Toolliste des Agents enthalten, auch wenn die Toolsuche für alles andere aktiv ist.
Die einfachste Möglichkeit zum Festlegen ist die Verwendung des /mcp edit Schrägstrichbefehls. Setzen Sie in dem Formular zum Bearbeiten des MCP-Servers Tools zurückstellen auf Nie. Sie können sie auch direkt in ~/.copilot/mcp-config.json:
{
"mcpServers": {
"my-server": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@example/mcp-server"],
"deferTools": "never",
"tools": ["*"]
}
}
}
Konfigurieren der Toolverzögerung in benutzerdefinierten Agents
Wenn ein benutzerdefinierter Agent seine Tools anhand des Namens auflistet, werden diese Tools immer geladen, damit der Agent sie sofort verwenden kann. Das ist in der Regel das, was Sie möchten. Wenn ein Agent jedoch eine große Anzahl von Tools deklariert und bei einem bestimmten Durchlauf nur einige davon verwendet, können Sie diese Liste an die Toolsuche zurückgeben, damit die Tools bei Bedarf gefunden werden, anstatt alle auf einmal zu laden.
Fügen Sie bei einem Markdown-Agenten (.github/agents/*.md) deferred-tool-loading: true zum Frontmatter hinzu:
---
name: my-agent
description: Works with a large catalog of tools
tools:
- some_mcp_tool
- another_mcp_tool
# ...many more
deferred-tool-loading: true
---
Agent instructions here.
Beachten Sie Folgendes in Bezug auf die deferred-tool-loading Einstellung:
- Es hat nur auswirkungen, wenn die Toolsuche aktiv ist (d. a. auf einem unterstützten Modell mit ausreichend Tools, um den Schwellenwert zu überschreiten).
- Es ist nur für Agenten wichtig, die ihre Tools benennen. Agents, die die
*Wildcard verwenden, verwenden bereits die Toolsuche.
Optimierung von Werkzeugen für die Suche nach Tools
Die Toolsuche gleicht das, was der Agent zu tun versucht, mit dem Namen, der Beschreibung sowie den Parameternamen und -beschreibungen jedes Tools ab. Klare, präzise Formulierungen sorgen dafür, dass ein Tool bei den richtigen Anfragen angezeigt wird:
- Benennen Sie Tools für ihre Aufgaben, damit sie einfacher zu finden sind.
- Schreiben Sie Beschreibungen mit Begriffen, nach denen Menschen tatsächlich suchen, statt mit vagen Begriffen.