Die wichtigsten Punkte
- Sie können jetzt Tools an Skills binden. Tool-Schemata bleiben außerhalb des Kontexts, bis der Agent den Skill liest, an den sie gebunden sind, und bei Modellen, die neue Tools mitten in einer Konversation akzeptieren, bleibt durch das Hinzufügen der Prompt-Cache erhalten.
- Apps können Skills zur Laufzeit anheften, sodass die Anweisungen vor dem ersten Modellaufruf im Kontext sind, ohne
read_fileRoundtrips. - Skills können mitten im Thread neu geladen werden, sodass ein langlebiger Agent hinzugefügte, bearbeitete oder gelöschte Skills übernimmt, ohne einen neuen Thread zu starten.
Skills sind eine der besten Möglichkeiten, einem Agenten Domänenwissen zu vermitteln. Ein Skill ist ein Ordner mit Anweisungen, Skripten und Referenzdateien, der einem Agenten beibringt, wie man Dinge tut – etwa die Vorbereitung auf ein Kundengespräch oder die Auswertung von Anrufprotokollen so, wie es Ihr Vertriebsteam macht. Agent Skills sind ein offener Standard , der mit jedem Modell funktioniert und von Dutzenden Agentenprodukten unterstützt wird. Man muss auch kein Techniker sein, um einen zu schreiben: Im Kern ist ein Skill eine Markdown-Datei.
Skills funktionieren dank progressiver Offenlegung. Der Agent sieht anfangs nur den Namen und die Beschreibung jedes Skills und liest die vollständigen Anweisungen erst, wenn eine Aufgabe sie erfordert. Das hält den Kontext klein, und Context Engineering ist der Schlüssel zum Bau effektiver Agenten.
Mit steigender Nutzung verändern sich die Anforderungen der Teams an Skills. Wir sehen, dass Unternehmens-Skill-Registries auf Tausende von Skills anwachsen, die team- und agentenübergreifend geteilt werden. Wir haben die Skill-Unterstützung in Deep Agents überarbeitet, um einige häufige Anliegen zu adressieren:
- Binden von Tools an Skills: an einen Skill gebundene Tools werden erst geladen, wenn der Agent diesen Skill liest.
- Angeheftete Skills: wenn ein Nutzer ausdrücklich einen Skill anfordert, wie
/meeting-prep, kann Ihre App ihn vor dem nächsten Modellaufruf laden. - Neuladen von Skills: ein langlebiger Thread kann neue oder geänderte Skills übernehmen, ohne neu zu starten.
Wie Skills funktionieren
Ein Skill ist ein Verzeichnis mit einer SKILL.md Datei: YAML-Frontmatter mit name und description, gefolgt von den Anweisungen, denen der Agent folgt. Ein Skill kann auch unterstützende Dateien unter scripts/, references/bündeln, und assets/ (spec).

In diesem Beitrag verwenden wir durchgehend unseren GTM-Agenten als laufendes Beispiel. Er basiert auf Deep Agents, und seine Bibliothek mit mehr als 50 Skills deckt die wiederkehrende Arbeit eines Vertrieblers ab, wie meeting-prep, call-transcripts, und competitive-intel-card.
Skills werden auf drei Ebenen geladen:
- Entdeckung. Beim Start sieht der Agent den
nameund diedescriptionjedes Skills in seinem Systemprompt. - Aktivierung. Wenn eine Aufgabe zu einem Skill passt, liest der Agent die vollständige
SKILL.mdmitread_file. - Ausführung. Der Agent folgt den Anweisungen und liest Skripte oder Referenzdateien nur, wenn diese dazu auffordern.

Solange ein Skill nicht verwendet wird, kostet er eine Zeile im Systemprompt, sodass eine Bibliothek Verweise auf eine Fülle von Skills enthalten kann, ohne den Kontext zu überladen. Nun wollen wir uns die Verbesserungen ansehen, die wir an Deep Agents vorgenommen haben.
Tools an Skills binden
Skills sagen einem Agenten oft, wie er bestimmte Tools verwenden soll, und einige Tools funktionieren erst dann richtig, wenn der Agent diese Anweisungen gelesen hat. Bislang wurden Skills und Tools getrennt offengelegt. Man konnte Tool-Schemata mit Tool-Sucheaus dem Kontext heraushalten, aber nichts verknüpfte ein Tool mit dem Skill, der es erklärt: Der Agent konnte ein Tool finden und aufrufen, ohne seinen Skill zu lesen, oder den Skill lesen und trotzdem nach seinen Tools suchen müssen.
Jetzt kann man Tools an einen Skill binden, sodass ein Skill und seine Tools zusammen offengelegt werden. Ein gebundenes Tool wird erst dann zum Kontext hinzugefügt, wenn der Agent seinen Skill liest, und ein Aufruf davor schlägt als unbekanntes Tool fehl. Das hält den Kontext schlank, und es bedeutet, dass der Agent gelesen hat, wie man ein Tool verwendet, bevor er es aufrufen kann. In unserem GTM agent, call-transcripts wird erklärt, wie man Anrufe durchsucht und Transkripte liest, daher ist es der natürliche Ort, um diese Tools zu binden.
Listen Sie die Tools im Frontmatter des Skills unter metadata.include_tools:

Übergeben Sie diese Tools an SkillsMiddleware statt an den Agenten:
![Python: create_deep_agent with SkillsMiddleware(tools=[search_calls, get_transcript])](/journal-media/ai-hub/782c21d07a32a59d13500559e149f1f95bbd3be12182c7b3449871803f5ea71d.webp)

Das Hinzufügen von Tools mitten in einer Konversation bedeutete früher, die Tool-Liste der Anfrage zu bearbeiten, was den Prompt-Cache ungültig macht. Anthropic und OpenAI lassen neuere Modelle nun Tools mitten in einer Konversation akzeptieren, sodass Deep Agents auf diesen Modellen die gebundenen Tools eines Skills direkt nach dem Lesen des Skills hinzufügt und der zwischengespeicherte Präfix intakt bleibt (Anthropic - und OpenAI -Integrationsdokumentation). Auf anderen Modellen werden die Tools wie bisher an die Anfrage angehängt.
Eine Liste deckt die meisten Skills ab. Für mehr Kontrolle kann ein Skill statt Tool-Namen ein Label auflisten, und eine Funktion, die Sie an SkillsMiddleware übergeben, wandelt jedes Label in Tools um. Das ermöglicht Ihnen:
- Eine ganze Tool-Gruppe offenzulegen, wie alle Tools auf einem MCP-Server, unter einem Namen, ohne jedes Tool im Skill aufzulisten.
- Tools an Laufzeit-Berechtigungen zu koppeln. Die Funktion erhält die Runtime des Graphen und kann daher prüfen, wer der Nutzer ist, und nur die Tools zurückgeben, die er verwenden darf.
Hier erhält call-transcripts jedes Tool auf dem calls-MCP-Server, und pipeline-forecast erhält CRM-Tools, aber nur Manager können die Prognose aktualisieren:


Siehe Add tools to skills für mehr Details.
Angepinnte Skills
Manchmal weiß der Nutzer bereits, welchen Skill er möchte. In unserem GTM-Agenten kann ein Vertriebsmitarbeiter /meeting-prep for my Acme call tomorroweingeben. Ohne Pinning sieht das Modell nur die Beschreibung des Skills und muss ihn erst lesen. Das fügt einen zusätzlichen Round Trip hinzu, bevor die Arbeit beginnt, und das Modell lädt nicht garantiert den richtigen Skill. Mit angepinnten Skillsfindet Ihre App die Skill-Namen in der Nachricht (oder parst sie aus einer UI) und übergibt sie in pinned_skills, und die Middleware fügt die Anweisungen jedes Skills vor dem nächsten Modellaufruf zur Konversation hinzu. Deep Agents parst Nachrichten nicht selbst, daher wählen Sie die Syntax:



Das reduziert die Latenz und macht das Verhalten vorhersehbarer: Die Anweisungen sind garantiert im Kontext enthalten, und die gebundenen Tools eines angehefteten Skills kommen mit ihm. Jeder angeheftete Skill wird einmalig als getaggte Nachricht hinzugefügt, sodass frühere Nachrichten sich nie ändern, der Prompt-Cache gültig bleibt und eine Chat-UI den Skill als Label statt als vollständigen Text anzeigen kann.
Skills während eines laufenden Threads neu laden
Skills werden am Anfang jedes Threads geladen und im Agent-Zustand gespeichert, sodass jeder spätere Zug denselben Skillsatz wiederverwendet. Sie können diese Liste jetzt ungültig machen , indem Sie skills_metadata auf None setzen, wenn Sie den Agenten aufrufen. Fügt ein Teammitglied einen competitive-intel-card Skill zur Bibliothek hinzu, kann die Anwendung beschließen, die Liste der Skills ungültig zu machen, und der nächste Durchlauf durchsucht jede Quelle erneut:


Ein Neuladen, das neue Skills findet, ändert den Systemprompt, was den Prompt-Cache ungültig macht. Bei einem Thread, der länger untätig war, ist diese Kosten meist bereits gezahlt: Provider-Caches laufen typischerweise innerhalb von Minuten bis zu einer Stunde Inaktivität ab (Anthropic, OpenAI), sodass der Cache kalt ist, bis der Mitarbeiter zurückkommt.
Da der Reset nur eine Eingabe an den Lauf ist, können Sie die Kontrolle auch an Benutzer übergeben. Zum Beispiel über einen /reload Befehl auf der Client-Seite:
Sie können auch von update_state oder aus Middleware heraus zurücksetzen, sodass Ihre Anwendung steuert, wann ein Neuladen der Skills erfolgt. Siehe Reload skills.
Get started
Skills sind der branchenübliche Mechanismus, um einen Agenten mit strukturiertem Domänenwissen auszustatten. Diese Updates machen den Betrieb im großen Maßstab einfacher: Tools werden nur geladen, wenn ein Skill sie benötigt, die von einem Workflow benötigten Skills werden vorab geladen, und lang laufende Threads bleiben aktuell, wenn sich Ihre Bibliothek ändert. Und da Skills ein offener Standard sind, funktionieren die von Ihrem Team geschriebenen Skills modell- und agentenübergreifend.
Alle diese Funktionen sind in der neuesten deepagentsverfügbar. Lesen Sie die Skills-Dokumentation , um loszulegen, und teilen Sie uns Ihre Meinung mit – über GitHub-Issues, das Forumoder auf X.
Danksagungen
Dank geht an Rich Scarrott für die Leitung der Entwicklung dieser neuen Funktionen und an Hunter Lovell für die Überprüfung des Features und des Blogbeitrags!
