Tool-Beschreibungen steuern die Auswahl
Das Modell wählt Tools anhand ihrer Beschreibungen, nicht ihrer Namen
Tool-Beschreibungen steuern die Auswahl ist eine kostenlose Claude Architect-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Claude Architect-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Claude Architect-Kurs umfasst insgesamt 4 Lektionen.
Das Modell liest, es rät nicht
Wenn Claude entscheidet, welches Tool aufgerufen werden soll, wählt es nicht anhand des Tool-Namens. Es liest die Beschreibung jedes Tools und überlegt, welches für die Aufgabe geeignet ist.
Das ist der wichtigste Grundsatz beim Tool-Design: Die Beschreibung ist der wichtigste Auswahlmechanismus. Ein Tool namens process_refund mit einer vagen Beschreibung ist schwerer korrekt auszuwählen als ein klar beschriebenes Tool mit einem unhandlichen Namen.
Wenn Sie zuverlässiges Verhalten erreichen möchten, sollten Sie Ihre Mühe in gute Beschreibungen investieren — nicht in ausgefallene Namen.
Ein Name ist keine Spezifikation
Namen sind kurz und mehrdeutig. Betrachten Sie zwei Tools: search_orders und lookup_order. Welches findet anhand einer ID eine Bestellung? Welches filtert eine Liste nach Datum? Anhand der Namen allein können Sie das nicht erkennen — und das Modell ebenfalls nicht.
Die Beschreibung vermittelt die eigentliche Bedeutung:
- Wofür das Tool gedacht ist (Zweck).
- Was es zurückgibt.
- Welche Eingaben es mit Beispielen erwartet.
- Seine Grenzfälle und Grenzen der Anwendbarkeit.
Benennen Sie das Tool sinnvoll, verlassen Sie sich aber niemals auf den Namen, um sein Verhalten eindeutig zu bestimmen.
Aufbau einer guten Beschreibung
Eine gute Tool-Beschreibung beantwortet alles, was das Modell benötigt, um das Tool korrekt auszuwählen und aufzurufen. Sie sollte Folgendes enthalten:
- Zweck — die eine Aufgabe, die dieses Tool erledigt.
- Rückgabewerte — was zurückkommt und in welcher Form.
- Eingabeformate mit Beispielen — konkrete Beispielargumente.
- Grenzfälle — leere Ergebnisse, nicht gefundene Einträge, Mehrdeutigkeiten.
- Grenzen der Anwendbarkeit — wann das Tool NICHT verwendet werden darf.
Die Klausel zu den Grenzen verhindert, dass zwischen ähnlichen Tools falsch geroutet wird.
lookup_order = {
"name": "lookup_order",
"description": (
"Fetch a single order by its exact order_id. "
"Returns status, items, total, and ship date. "
"order_id format: 'ORD-' + 8 digits, e.g. 'ORD-10293847'. "
"Returns an empty result (not an error) if no order matches. "
"Use this ONLY when you already have a specific order_id; "
"to find orders by customer or date, use search_orders instead."
),
"input_schema": {
"type": "object",
"properties": {"order_id": {"type": "string"}},
"required": ["order_id"],
},
}Vage Beschreibungen führen zu Fehlrouting
Der häufigste Fehler ist eine minimale oder mehrdeutige Beschreibung. Das ist ein typisches Anti-Muster in Prüfungen und meist die falsche Antwort, wenn gefragt wird, warum ein Tool falsch ausgewählt wurde.
Beachten Sie, was bei knappen Beschreibungen geschieht:
get_data: „Ruft Daten ab.“fetch_info: „Ruft Informationen ab.“
Bei der Aufgabe „Finden Sie die letzte Bestellung des Kunden“ kann das Modell diese beiden Tools nicht unterscheiden. Es ruft möglicherweise das falsche auf oder wechselt zwischen ihnen. Überlappende oder mehrdeutige Beschreibungen führen zu Fehlrouting — die Lösung sind präzisere, nicht überlappende Formulierungen, nicht ein umbenanntes Tool.
Klare Grenzen zwischen Tools ziehen
Wenn zwei Tools plausibel infrage kommen, muss jede Beschreibung ausdrücklich vom jeweils anderen Tool abgrenzen. Dadurch wird die Überschneidung beseitigt, die die Auswahl erschwert.
Beachten Sie, wie jede Beschreibung das jeweils andere Tool nennt und angibt, wann an dieses verwiesen werden soll. Diese gegenseitige Abgrenzung sorgt dafür, dass das Modell das richtige Tool verwendet.
tools = [
{
"name": "search_orders",
"description": (
"List orders matching a customer_id and/or date range. "
"Returns an array of order summaries (id, status, total). "
"Use to DISCOVER orders when you do not know the order_id. "
"For full details of one known order, use lookup_order."
),
},
{
"name": "lookup_order",
"description": (
"Fetch full details of ONE order by exact order_id. "
"Use only when the order_id is already known. "
"To find orders, use search_orders first."
),
},
]Grenzfälle in der Beschreibung dokumentieren
Grenzfälle gehören in die Beschreibung, weil sie die nachfolgenden Überlegungen des Modells beeinflussen, nicht nur den Aufruf selbst.
Zwei Unterscheidungen sind besonders wichtig:
- Ein Zugriffsfehler (das System war nicht erreichbar — ein erneuter Versuch ist möglicherweise sinnvoll) gegenüber einem gültigen leeren Ergebnis (keine Treffer — nicht erneut versuchen, sondern einfach melden).
- Was bei einer mehrdeutigen Eingabe geschieht — etwa bei mehreren passenden Kunden.
Wenn die Beschreibung sagt „gibt bei keiner passenden Bestellung ein leeres Ergebnis zurück“, behandelt das Modell „keine Ergebnisse“ nicht als Fehler, bei dem es einen neuen Versuch starten muss. Wenn dort steht „gibt mehrere Treffer zurück, wenn der Name nicht eindeutig ist“, weiß das Modell, dass es nach weiteren Identifikatoren fragen muss, statt zu raten.
Das Toolset klein halten
Selbst perfekte Beschreibungen verlieren an Wirkung, wenn es zu viele davon gibt. Die Auswahl ist eine Denksaufgabe, und mehr Optionen verwässern sie.
- 4–5 Tools pro Agent ist der optimale Bereich für eine zuverlässige Auswahl.
- Ab 18 oder mehr Tools nimmt die Zuverlässigkeit der Auswahl merklich ab.
Gute Beschreibungen und ein kleines Toolset ergänzen sich daher: Beschränken Sie die Tools jedes Agents auf seine Rolle und beschreiben Sie diese wenigen Tools anschließend präzise. Ein überladenes Toolset lässt sich nicht allein durch Formulierungen retten.
Tools auf die Rolle beschränken
Die Qualität der Beschreibung und das Prinzip der geringsten Berechtigung weisen in dieselbe Richtung. Ein Research-Subagent sollte kein Refund-Tool mitführen; ein schreibgeschützter Reviewer sollte weder Write noch Bash mitführen.
Die Beschränkung nach Rolle bewirkt zweierlei:
- Sie entfernt überlappende Kandidaten, sodass die verbleibenden Beschreibungen leichter voneinander zu unterscheiden sind.
- Sie hält jeden Agent nahe am optimalen Bereich von 4–5 Tools.
Weniger, für die Rolle relevante Tools bedeuten präzisere, nicht überlappende Beschreibungen — und genau das sorgt für eine korrekte Auswahl.
support_agent = AgentDefinition(
name="support",
description="Resolves customer order and refund requests.",
system_prompt="Verify identity, then resolve the request.",
allowed_tools=[
"get_customer",
"lookup_order",
"process_refund",
"escalate_to_human",
], # 4 role-scoped tools, each clearly described
)Beschreibungen wählen aus; tool_choice schränkt ein
Beschreibungen entscheiden, welches Tool geeignet ist. Der Parameter tool_choice ist ein davon unabhängiger Hebel, der einschränkt, ob und wie ein Tool aufgerufen wird:
"auto"— das Modell wählt Text oder ein Tool (die Auswahl wird weiterhin durch die Beschreibungen gesteuert)."any"— das Modell muss EIN Tool aufrufen; nützlich, um eine strukturierte Ausgabe zu garantieren.{"type":"tool","name":"X"}— erzwingt ein bestimmtes Tool.
Das Erzwingen eines Tools behebt keine schlechte Beschreibung — es entfernt lediglich die Auswahlmöglichkeit. Bei "auto" oder "any" liest das Modell weiterhin die Beschreibungen, um unter den Kandidaten auszuwählen; daher müssen die Formulierungen weiterhin klar sein.
resp = client.messages.create(
model="claude-sonnet-4-5",
max_tokens=1024,
tools=tools,
tool_choice={"type": "auto"}, # model selects by reading descriptions
messages=messages,
)Wo Tools enden und Ressourcen beginnen
In MCP sollte nicht alles ein Tool sein. Der Server stellt drei Primitive bereit, und die Wahl des richtigen Primitives sorgt dafür, dass Ihre Tool-Beschreibungen fokussiert bleiben:
- Tools — Aktionen, die etwas TUN (eine Rückerstattung veranlassen, eine Abfrage ausführen).
- Resources — schreibgeschützte Daten und Kontext, etwa Schemata oder Kataloge.
- Prompts — wiederverwendbare Vorlagen.
Wenn Sie ein schreibgeschütztes Schema oder einen Katalog als Resource statt als Tool modellieren, wird es vollständig aus dem Pool für die Aktionsauswahl entfernt. Dadurch gibt es einen mehrdeutigen Kandidaten weniger, der mit den anderen Einträgen in Ihren Beschreibungen konkurriert — das verbessert die Tool-Auswahl unmittelbar.
Auch Fehler auswählbar machen
Die Auswahl endet nicht nach dem ersten Aufruf — das Modell muss als Nächstes oft ein Recovery-Tool auswählen. Diese Wahl hängt von dem Fehler ab, den es zurückerhält.
Ein generischer Fehler wie "Operation failed" liefert dem Modell keine Grundlage für die Weiterleitung. Ein strukturierter MCP-Fehler schon:
isError: trueunderrorCategory(transient / validation / business / permission).isRetryable, einemessage, dieattempted_queryund allepartial_results.
Damit kann das Modell intelligent entscheiden: einen vorübergehenden Fehler erneut versuchen, ein Validierungsproblem beheben oder einen geschäftlichen bzw. Berechtigungsfehler eskalieren — statt stecken zu bleiben.
{
"isError": true,
"errorCategory": "transient",
"isRetryable": true,
"message": "Order service timed out",
"attempted_query": "lookup_order(order_id='ORD-10293847')",
"partial_results": null
}Schnelltest
Wenden Sie die Faktoren, die die Tool-Auswahl bestimmen, auf einen echten Fehlleitungsfehler an.
Zusammenfassung
Die wichtigsten Erkenntnisse zur Tool-Auswahl:
- Claude wählt Tools anhand ihrer Beschreibungen aus, nicht anhand ihrer Namen.
- Eine gute Beschreibung nennt Zweck, Rückgabewerte, Eingabeformate mit Beispielen, Sonderfälle und Grenzen der Anwendbarkeit.
- Überlappende oder mehrdeutige Beschreibungen führen zu Fehlleitungen; ziehen Sie klare Grenzen, die jedes Tool von seinen ähnlichen Tools abgrenzen.
- Dokumentieren Sie Sonderfälle in der Beschreibung — insbesondere leere Ergebnisse gegenüber Zugriffsfehlern und mehrdeutige Treffer.
- Beschränken Sie jeden Agenten auf 4–5 Tools; ab 18 oder mehr nimmt die Auswahlqualität ab. Richten Sie den Umfang der Tools an der Rolle aus.
tool_choice(auto / any / forced) schränkt das Aufrufen ein, ersetzt aber keine klare Beschreibung.- Modellieren Sie schreibgeschützte Daten als MCP-Resources und geben Sie strukturierte Fehler zurück, damit das Modell die Fehlerbehebung gezielt weiterleiten kann.
Lerne Python mit einem KI-Tutor — kostenlos
Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.
- Kurse
- 26
- Lektionen
- 104
Häufig gestellte Fragen
Ist die Lektion „Tool-Beschreibungen steuern die Auswahl“ kostenlos?
Ja — der vollständige Text von „Tool-Beschreibungen steuern die Auswahl“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Claude Architect-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Claude Architect-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Tool-Beschreibungen steuern die Auswahl“?
Das Modell wählt Tools anhand ihrer Beschreibungen, nicht ihrer Namen Du übst Claude Architect mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Claude Architect zu starten?
Keine Vorkenntnisse erforderlich. Claude Architect auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.
Wie lange dauert die Lektion „Tool-Beschreibungen steuern die Auswahl“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Claude Architect-Lektion Code schreiben und ausführen?
Ja. Jede Claude Architect-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Tool-Beschreibungen steuern die Auswahl
- Aufbau einer hervorragenden Beschreibung
- Überlappende Tools vermeiden
- Eingabeformate und Beispiele