00:00:00Wenn man mit Cloud Code, Codex oder anderen agentenbasierten Engineering-Tools arbeitet, ist ein
00:00:05wirklich wichtiges Konzept, das von all diesen Tools unterstützt wird und das Sie verstehen und nutzen sollten,
00:00:12das Konzept der Agenten-Skills. Man kann sie leicht ignorieren, weil es nur ein Haufen Markdown-Dateien sind oder
00:00:18weil die Einrichtung mühsam sein kann, aber meiner Erfahrung nach lohnt es sich. Vor ein paar Tagen gab es
00:00:24einen Post von jemandem aus dem Cloud-Code-Team, also von Anthropic, in dem er die
00:00:31verschiedenen Arten von Skills teilte, die sie intern verwenden, denn man kann tatsächlich zwischen
00:00:37verschiedenen Arten von Skills unterscheiden, die man erstellen möchte. Am Ende sind es zwar alles nur Markdown-Dateien,
00:00:42auch wenn man noch etwas mehr hinzufügen kann – darauf komme ich noch zurück –, aber der Inhalt dieser Dateien
00:00:49kann natürlich sehr unterschiedlich sein. Dieser Screenshot hier und der gesamte Post können einen ziemlich
00:00:56überwältigen und dazu führen, dass man gar nichts macht, weil man denkt: „Okay, wenn ich eine Woche lang
00:01:02Skills einrichten muss, lasse ich es lieber ganz bleiben.“ Deshalb möchte ich in diesem Video eine Alternative anbieten.
00:01:08Ich denke, man kann sich einfach auf drei Kernarten von Skills konzentrieren, die wichtig sind und zu besseren
00:01:15Ergebnissen führen. Übrigens, wie erwähnt, unterstützen all diese Tools Skills. In meinen Kursen erkläre ich,
00:01:20wie man sie einrichtet, aktiv aufruft und Skills für Cloud Code oder Codex erstellt. Wenn Sie diese
00:01:26Kurse oder Zugang zu all meinen Kursen inklusive zukünftiger Inhalte haben möchten, läuft gerade
00:01:31eine Aktion für die Jahresmitgliedschaft. Damit erhalten Sie vollen Zugriff auf alle meine
00:01:35Kurse zum supergünstigen Preis. Link unten. Aber zurück zu diesen
00:01:41Skills: Es sind einfach Markdown-Dateien, die an einem speziellen Ort gespeichert werden. Der
00:01:46genaue Ort hängt vom Tool ab, aber letztendlich dienen sie als Prompt-Vorlagen oder
00:01:52zusätzlicher Kontext, der in Ihre agentenbasierten Engineering-Sessions eingefügt werden kann. Die
00:02:01erste Art von Skill ist die Dokumentation oder der Wissens-Skill, würde ich sagen. Was meine ich damit?
00:02:09Hier bin ich in meinem academy.com-Projekt, also dem Projekt meiner Website, und dort habe ich einige
00:02:15Agenten-Skills, die im Grunde nur eine Art Dokumentation oder Wissen sind, das ich dem KI-Agenten hier zur Verfügung stelle.
00:02:25Zum Beispiel etwas TypeScript-Wissen hier, Wissen über fortgeschrittenere
00:02:33TypeScript-Funktionen, vielleicht neuere Features wie das „satisfies“-Keyword, das es ja noch nicht
00:02:40seit 10 Jahren gibt. Dinge, die der KI-Agent wissen oder an die er erinnert werden soll, weil er sie
00:02:50vielleicht nicht als Erstes nutzt, da er in seinen Trainingsdaten eventuell noch nicht so viel davon gesehen hat.
00:02:58So etwas findet man eigentlich auch in der offiziellen TypeScript-Dokumentation. Der Punkt
00:03:04ist nur, dass der Agent wahrscheinlich nicht von selbst die offizielle
00:03:11TypeScript-Dokumentation konsultiert, wenn man es ihm nicht explizit sagt. Daher habe ich lieber meinen eigenen Skill,
00:03:17und dieser Skill hat Metadaten. Die Metadaten sind wichtig, denn die Idee hinter den Skills ist,
00:03:24dass nicht jedes Mal alle verfügbaren Skills in das Kontextfenster geladen werden. Stattdessen werden nur
00:03:30die Metadaten geladen, und der KI-Agent entscheidet dann je nach Prompt und Aufgabe,
00:03:37welchen Skill er genauer lesen möchte. Je nach Tool kann man Skills auch aktiv aufrufen,
00:03:43aber die Hauptidee ist, dass der Agent sie basierend auf den Metadaten selbstständig lädt.
00:03:47Hier habe ich also Metadaten, mit denen ich dem Agenten eine Vorstellung davon gebe,
00:03:55wann er diesen Skill nutzen soll. Das ist also eine Art von Skill: die Bereitstellung zusätzlicher Dokumentation
00:04:02oder Wissen, das der Agent vielleicht nicht hat, etwa weil man mit einer Bibliothek arbeitet,
00:04:08die brandneu ist und nicht in den Trainingsdaten war, oder bei der man weiß, dass er nicht viel
00:04:13darüber weiß und man ihn darauf aufmerksam machen will. Das wäre die erste Skill-Kategorie.
00:04:18Die zweite Art von Skill betrifft Verhaltensweisen, Best Practices, Ansätze und so weiter. Die Idee
00:04:29dahinter ist, dass man bei der Arbeit an einem Projekt natürlich bestimmte Vorlieben bezüglich
00:04:37des Codestils oder der Vorgehensweise hat. Ich habe zum Beispiel diesen Skill für „sauberen, modernen
00:04:45React-Code“. Da geht es weniger darum, React-Features zu dokumentieren, sondern vielmehr
00:04:50darum, Regeln festzulegen, denen der Agent beim Schreiben von React-Code folgen soll, damit bestimmte
00:04:59Anti-Patterns zumindest seltener vorkommen. Für mich erzeugen KI-Agenten im Moment
00:05:08oft Code, der nicht immer von höchster Qualität ist. Man kann natürlich darüber streiten, ob
00:05:13einem die Codequalität überhaupt wichtig ist. Dazu habe ich auf einem anderen Kanal ein Video gemacht. Ich würde sagen,
00:05:18es ist wichtig, weil die Qualität entscheidend dafür ist, ob man den Code vernünftig reviewen kann. Es kann
00:05:23Auswirkungen auf die Performance haben und darauf, wie leicht der Code zu warten oder zu erweitern ist.
00:05:29Wenn man also bestimmte Verhaltensweisen oder Muster wünscht, dann ist so ein
00:05:36Verhaltens-Skill interessant, in dem man ihm sagt, wie er guten React-Code schreibt, dass er
00:05:43„useEffect“ vermeiden soll und wie er das anstellt. Hier geht es also weniger um
00:05:50zusätzliche Dokumentation, sondern um Verhaltensanweisungen. Das Interessante
00:05:55an diesem Skill ist, dass ich hier Verweise auf Dateien mit mehr Details habe, etwa eine Datei
00:06:02über „useEffect“, denn all diese Skill-Dateien werden, wie gesagt, „lazy“ geladen. Man kann
00:06:09in einer Skill-Datei auf eine andere Datei verweisen, wie diese „useEffect.md“ im Referenz-Ordner,
00:06:15und die KI entscheidet dann, diese Datei nur zu laden, wenn sie wirklich mit „useEffect“ arbeitet
00:06:21oder etwas damit zu tun hat. Dort habe ich dann mehr Details über die Anti-Patterns,
00:06:27die sie kennen sollte. Solche Skills einzurichten, lohnt sich oft auch deshalb,
00:06:33weil ich sie einfach in jedes React-Projekt kopieren kann. Ich muss sie nicht jedes Mal neu schreiben,
00:06:39und sie führen zu besserem Code. Das ist die zweite Art von Skills, die ich empfehle. Man muss sich
00:06:45nicht sofort alle möglichen Muster ausdenken; gehen Sie einfach Schritt für Schritt vor. Wenn
00:06:52Sie merken, dass der KI-Agent in Ihrem Projekt ständig etwas macht, das Sie nicht wollen,
00:06:58fügen Sie einen Skill hinzu. Überlegen Sie sich eine gute Beschreibung, damit der Skill im richtigen Moment geladen wird,
00:07:04und packen Sie Ihre Anweisungen hinein. Nutzen Sie es, um Probleme zu beheben. Mit der Zeit
00:07:11bauen Sie sich eine Skill-Bibliothek mit Ihren spezifischen Best Practices und Verhaltensweisen auf,
00:07:17die Sie dann in künftigen Projekten nutzen können. Sehen Sie es nicht als riesige, einschüchternde Voraufgabe,
00:07:22sondern bauen Sie diese Basis Schritt für Schritt auf. Kommen wir zur dritten Art,
00:07:29das ist eine andere Kategorie: funktionsgesteuerte Skills. Bisher ging es um Dokumentation
00:07:37und Verhaltensregeln. Aber diese Engineering-Tools wie Cloud Code oder Codex
00:07:43können noch viel mehr. Sie können natürlich Code schreiben, aber das ist in Projekten nicht alles.
00:07:49Da sie Code schreiben können, können sie im Grunde alles auf Ihrem Computer tun, wenn Sie wollen.
00:07:55Man kann sie zum Beispiel PDF-Dokumente analysieren lassen. Ich habe einige globale Skills auf meinem System,
00:08:03die nicht nur aufs Programmieren beschränkt sind. Man könnte einen Skill einrichten, der dem
00:08:09Agenten erklärt, wie er ein Bild generiert. Was meine ich damit? Nun, es gibt
00:08:16verschiedene Dienste oder APIs, mit denen man Bilder oder Videos per KI generieren kann, wie etwa fal.ai –
00:08:24das ist übrigens kein gesponsertes Video. Es gibt auch Replicate und andere Dienste. Wenn
00:08:29man nun ein Bild generieren möchte, etwa ein Dummy-Bild für eine Website oder
00:08:34ein Bild, das man ausdrucken und an die Wand hängen will, kann man diese
00:08:41Dienste nutzen. Man könnte Codex, Cloud Code oder den PI-Agenten – den ich sehr mag – bitten,
00:08:49ein Bild zu erstellen. Standardmäßig wird das wahrscheinlich scheitern, da diese Engineering-Tools
00:08:54keine eingebaute Bildgenerierung haben. Aber wenn man ihnen den richtigen Skill gibt – was immer noch
00:09:00nur eine Markdown-Datei ist –, kann man darin beschreiben, wie sie mit einer Drittanbieter-API
00:09:06interagieren sollen, um ein Bild zu erzeugen. Das bloße Beschreiben der Interaktion ist eine Möglichkeit,
00:09:12aber man kann noch einen Schritt weiter gehen: Skills können auch Skripte enthalten. Nicht alle brauchen das, aber mein
00:09:18„Generate Image“-Skill tut es. Dieses Skript wurde ehrlich gesagt von einer KI geschrieben – es war „Vibe Coding“.
00:09:26Hier habe ich Skripte, die mit der fal-API interagieren, also
00:09:34diesem Bildgenerierungsdienst. Ich habe einfach deren Dokumentation in einen Prompt gepackt und einem KI-Agenten gesagt:
00:09:40„Schreib mir ein Tool, das diese API von fal nutzen kann, um Bilder zu generieren.“ So entstand
00:09:49ein kleines CLI-Tool, ein Skript, das die API anspricht und Bilder mit verschiedenen Parametern
00:09:56erzeugen kann. Die „skill.md“-Datei erklärt dann einfach nur, wie man dieses Skript benutzt.
00:10:02Sie verweist darauf, sagt dem Agenten, wie er es ausführt, welche Parameter nötig sind und so weiter.
00:10:08Dann habe ich hier die .env-Datei mit meinem fal-Key. Wenn das Skript über „bun“ aufgerufen wird –
00:10:18was ich der KI in der Markdown-Datei sage –, wird die .env-Datei automatisch geladen. Ich muss
00:10:23meinem Agenten also keinen Zugriff auf den Key geben. Ich muss nicht sagen: „Generiere bitte ein Bild, hier ist
00:10:29übrigens der Key.“ Stattdessen sage ich einfach: „Generiere ein Bild.“ Der Agent wird dank der
00:10:34Beschreibung diesen Skill bei Bedarf laden und lernt dann, dass er einfach nur ein
00:10:39Skript ausführen muss, ohne sich um die Implementierungsdetails zu kümmern. Das ist eine weitere
00:10:45Art von Skill, die ich sehr interessant finde – und nicht nur fürs Programmieren. Man könnte natürlich auch
00:10:52skriptbasierte Skills haben, die den Code formatieren oder was auch immer. Aber generell,
00:10:57da man diese Agenten für weit mehr als nur Code-Erzeugung nutzen kann, ist dies
00:11:02definitiv eine weitere wichtige Skill-Kategorie. Insgesamt würde ich sagen: Verkomplizieren Sie
00:11:08es nicht, aber unterschätzen Sie es auch nicht. Bauen Sie Ihre Skill-Bibliothek nach und nach auf. Es gibt
00:11:14übrigens auch Skill-Verzeichnisse wie skills.sh, wo man Skills von anderen Leuten durchsuchen kann.
00:11:21Dazu zwei wichtige Anmerkungen: Das kann sehr nützlich sein, aber ich würde nicht sagen:
00:11:29„Okay, ich baue ein React-Projekt mit Tailwind und Better Auth usw., also suche ich nach allen Skills,
00:11:35die dafür interessant sein könnten, und installiere sie alle in mein Projekt.“ Das könnte
00:11:40kontraproduktiv sein, weil man immer mehr Metadaten in das Kontextfenster lädt,
00:11:47obwohl einige dieser Skills vielleicht gar keine Rolle spielen. Das sollte man beachten. Ich würde nicht
00:11:53versuchen, alle theoretisch möglichen Skills hinzuzufügen. Seien Sie selektiv und konzentrieren Sie sich auf
00:11:57Dinge, die die KI ständig falsch macht oder bei denen Sie wissen, dass zusätzliche Dokumentation
00:12:04nötig sein wird. Das ist der eine Punkt. Der andere Punkt bei diesen Verzeichnissen ist natürlich,
00:12:09dass man Skills einbindet, die von anderen geschrieben wurden. Diese Skills sind, wie wir gelernt haben, Prompts.
00:12:16Wenn einer dieser Prompts bösartig ist, könnte das ein Problem sein. Das kann zu einem Prompt-Injection-Angriff
00:12:22führen, dessen sollte man sich bewusst sein. Einige Verzeichnisse wie skills.sh führen meines Wissens
00:12:28Scans durch, um die Gefahr von Prompt-Injections zu verringern, aber man ist nie zu 100 %
00:12:36sicher. Deshalb gilt: Wann immer Sie einen Skill von jemand anderem verwenden,
00:12:40lesen Sie ihn. Er ist dazu da, dass Sie ihn prüfen und schauen, ob etwas
00:12:47Bösartiges darin steckt. Nur als kleine Warnung. Aber ansonsten: Nutzen Sie Skills. Haben Sie nicht das
00:12:54Gefühl, sofort ein super komplexes System bauen zu müssen. Spielen Sie damit herum und behalten Sie diese
00:13:00drei Kernarten von Skills im Hinterkopf.