Was sind AI Skills & Tools

Wie AI agents verpackte Fähigkeiten nutzen — von function calls bis zu MCP servers. Ein praktischer Leitfaden für Entwickler, die mit LLMs arbeiten.

7 Minuten LesezeitAktualisiert: April 2026

🔧 Was ist ein Skill?

Im Kontext von AI-Agenten ist ein skill (auch genannt ein tool or function) ein verpacktes, wiederverwendbares Feature, das ein LLM aufrufen kann, um mit der Welt außerhalb seines Kontextfensters zu interagieren. Skills überbrücken die Lücke zwischen Sprachverständnis und realer Handlung.

Jeder Skill hat vier Komponenten:

  • Name — eine eindeutige Kennung, die das Modell verwendet, um auf den Skill zu verweisen (z. B., web_search)
  • Description — Fließtext in natürlicher Sprache, der erklärt, was der Skill tut und wann er verwendet werden sollte; das LLM liest dies, um zu entscheiden, wann der Skill aufzurufen ist
  • Eingabeschema — eine strukturierte Definition der Argumente (JSON Schema); das Modell füllt diese basierend auf der Aufgabe aus
  • Implementation — der eigentliche Code, der läuft: ein API-Aufruf, Datenbankabfrage, Shell-Befehl oder eine andere Operation

Beispiel: A get_weather Skill hat die Beschreibung "Holt aktuelles Wetter für eine Stadt", akzeptiert { "city": "string" } als Eingabe und ruft eine Wetter-API auf. Das LLM sieht niemals den API-Schlüssel oder den HTTP-Aufruf — es erhält lediglich das Ergebnis als Text zurück.

⚙️ Wie Tool-Aufrufe funktionieren

Wenn ein Agent Zugriff auf Skills hat, ruft das LLM sie nicht direkt auf — es requests einen Aufruf, indem es eine strukturierte Ausgabe erzeugt. Die Runtime (dein Anwendungscode) führt den tatsächlichen Aufruf aus und gibt das Ergebnis zurück. Hier ist der vollständige Zyklus:

  1. Tool-Registrierung — Dein Code sendet dem Modell eine Liste verfügbarer Skills mit ihren Beschreibungen und Schemata
  2. Modell-Reasoning — Das LLM liest die Aufgabe und die verfügbaren Tools, entscheidet, welches Tool aufzurufen ist und mit welchen Argumenten
  3. Tool-Aufruf-Anfrage — Das Modell gibt eine strukturierte "tool call"-Nachricht aus (z. B., { "tool": "web_search", "args": { "query": "current Gemini models" } })
  4. Execution — Dein Runtime-Code ruft die tatsächliche Funktion, API oder den Dienst auf
  5. Resultatinjektion — Das Ergebnis wird wieder zum Gesprächskontext hinzugefügt
  6. Fortgesetztes Reasoning — Das Modell liest das Ergebnis und ruft entweder ein weiteres Tool auf, stellt eine Folgefrage oder erzeugt die finale Antwort

Diese Schleife kann sich in einer einzigen Runde viele Male wiederholen. Eine komplexe agentische Aufgabe könnte 10–20 Tools hintereinander aufrufen, bevor eine endgültige Antwort erzeugt wird.

📊 Skills vs Plugins vs MCP Servers

Die Terminologie hat sich schnell entwickelt. So stehen die Konzepte historisch zueinander:

EraNameWie es funktionierteStatus
2023ChatGPT PluginsVom Benutzer installierbare Erweiterungen mit einer OpenAPI-Spezifikation; ChatGPT rief sie via HTTP aufVeraltet (ersetzt durch GPTs + Tools)
2023OpenAI Function CallingAPI-Ebene JSON Schema-Definitionen; das Modell erzeugt einen strukturierten Funktionsaufruf, dein Code führt ihn ausAktiv — umbenannt in "tool use"
2023–Tool Use / SkillsGleich wie Function Calling; Anthropic prägte den Begriff "tool use", andere nutzen "skills" oder "functions"Aktiv — aktueller Standard
2024–MCP ServersStandardisiertes Protokoll (Anthropic, Dez 2024) zum Verpacken und Verteilen von Tool-Servern; jeder MCP-Client kann sich mit jedem MCP-Server verbindenAktiv — wachsendes Ökosystem

Wesentlicher Unterschied: Traditionelles Tool Use wird inline in deinem Anwendungscode definiert. MCP-Server sind eigenständige Prozesse, die Tools über ein standardisiertes Protokoll bereitstellen — wodurch sie wiederverwendbar für verschiedene AI-Clients (Claude Desktop, Cursor, VS Code, benutzerdefinierte Agents) werden. Mehr dazu: Was ist MCP.

🗂️ Tool-Kategorien & Risikostufen

Nicht alle Tools bergen dasselbe Risiko. Eine Gruppierung nach Risikostufen hilft, dieAktionsraumund wo menschliche Checkpoints hinzugefügt werden sollten:

CategoryExamplesRiskRecommendation
Read-onlyweb_search, read_file, get_weather, list_dirLowAutonom zulassen; alle Aufrufe protokollieren
Schreiben (lokal)write_file, create_dir, edit_codeMediumBeschränke auf ein sandboxed Arbeitsverzeichnis
Netzwerk / Externsend_email, post_to_slack, call_apiMittel–HochHITL-Freigabe für irreversible Sendungen
OS / Shellrun_command, execute_script, install_packageHighAuf containerisierte Umgebung beschränken; HITL erforderlich
Destructivedelete_file, drop_table, revoke_accessCriticalImmer explizite menschliche Bestätigung verlangen

🏗️ Anatomie eines guten Skills

Die wichtigste Designentscheidung für einen Skill ist seine description. Das LLM liest Beschreibungen, um zu entscheiden, welches Tool aufzurufen ist — eine schlecht geschriebene Beschreibung führt zu falscher Toolauswahl, gescheiterten Aufrufen oder mehrdeutigen Argumenten.

Was eine Beschreibung effektiv macht

  • Sei eindeutig, wann es verwendet werden soll — "Verwende dieses Tool, wenn der Nutzer nach Echtzeitdaten oder aktuellen Ereignissen fragt" ist besser als "Durchsucht das Web"
  • Gib an, was es NICHT tut — "Gibt keine historischen Daten zurück, die älter als 30 Tage sind"
  • Beschreibe das Ausgabeformat — "Gibt ein JSON-Array von Suchergebnissen mit title, url und snippet Feldern zurück"
  • Halte es unter 200 Wörtern — Beschreibungen, die länger als ~200 Tokens sind, können die Aufmerksamkeit des Modells überwältigen, wenn viele Tools registriert sind

Prinzipien des Schema-Designs

  • Erforderlich vs optional — Markiere Felder nur als erforderlich, wenn es wirklich nötig ist; optionale Felder mit Defaults reduzieren Modellfehler
  • Verwende Enums für eingeschränkte Werte"format": {"enum": ["json", "markdown", "text"]} verhindert halluzinierte Werte
  • Bevorzuge idempotente Tools — Tools, die sicher wiederholt werden können (Lesevorgänge, Lookups), sind sicherer als einmalige Aktionen (Senden, Löschen)
  • Gib strukturierte Daten zurück — JSON-Antworten sind für das Modell leichter zu verarbeiten als unstrukturierte Textblöcke

💡 Praxisbeispiele

Skill-NameWas es tutWichtige ArgumenteRisk
web_searchFrage eine Suchmaschine ab und gib die Top-Ergebnisse zurückquery: string, num_results?: numberLow
read_fileLese eine Datei aus dem Workspace-Verzeichnispath: string, offset?: number, limit?: numberLow
write_fileErstelle oder überschreibe eine Dateipath: string, content: stringMedium
run_testsFühre die Test-Suite des Projekts aus und gib die Ergebnisse zurückfilter?: stringMedium
browser_screenshotNavigiere zu einer URL und gib einen Screenshot zurückurl: stringMedium
send_emailSende eine E-Mail an einen oder mehrere Empfängerto: string[], subject: string, body: stringHoch — immer HITL
run_shellFühre einen beliebigen Shell-Befehl auscommand: string, cwd?: stringHoch — Sandbox erforderlich

✅ Beste Vorgehensweisen

Minimale Berechtigungen

Gib jedem Agent nur die Tools, die er für seine spezifische Aufgabe benötigt. Ein Agent, der FAQ beantwortet, braucht nicht write_file or send_email. Je kleiner der Aktionsraum, desto kleiner der Explosionsradius, falls der Agent manipuliert wird. Siehe:Exzessive Agency.

Prüfe alle Tool-Aufrufe

Protokolliere jeden Tool-Aufruf mit seinen Argumenten und dem Ergebnis. Das ermöglicht Debugging, Kostenverteilung und Erkennung anomalem Verhaltens (z. B. ein Agent liest ~/.ssh/ wenn er nur auf das Projektverzeichnis zugreifen sollte). AgentOps-Plattformen wie LangSmith erleichtern dies.

Mensch-in-der-Schleife für irreversible Aktionen

Jede Aktion, die schwer oder unmöglich rückgängig zu machen ist — Nachrichten senden, Daten löschen, Einkäufe tätigen — sollte vor der Ausführung eine explizite menschliche Bestätigung erfordern. Baue HITL-Checkpoints in deine Agent-Runtime ein, nicht nur ins Prompt. Prompts können überschrieben werden; Code nicht.

Achte auf Tool-Poisoning

Wenn du Agenten erlaubst, MCP-Server dynamisch zu installieren oder zu entdecken, kann ein bösartiger Server ein Tool registrieren, dessendessen versteckte Anweisungen in der Beschreibung einbetten. Überprüfe Tool-Beschreibungen stets, bevor du sie in das Registry deines Agents aufnimmst. Siehe:Tool Poisoning.

Gib klare Fehlerantworten zurück

Wenn ein Tool fehlschlägt, gib einen strukturierten Fehler mit genügend Kontext zurück, damit das Modell sich erholen oder einen Eskalationspfad wählen kann — nicht einen rohen Ausnahme-Stacktrace. Beispiel: { "error": "rate_limited", "retry_after": 5 }. Ein gut beschriebener Fehler erlaubt es dem Agenten, erneut zu versuchen, ein Fallback-Tool zu verwenden oder den Nutzer elegant zu informieren.