[00:00:06] Moin Kai!
[00:00:07] Moin Trutz!
[00:00:09] Unser Thema heute sind Skills.
[00:00:11] Gott sei Dank nicht unsere Skills, sondern die von unseren Agenten.
[00:00:15] Ich habe gehört, du hast dich damit ein bisschen intensiver beschäftigt die letzten Tage, Wochen.
[00:00:21] Das stimmt, denn ich hatte so ein bisschen Skill-Issues, glaube ich.
[00:00:25] Ich habe gemerkt, dass ich nicht immer genau das erreicht habe, was ich erreichen wollte,
[00:00:29] speziell wenn es darum geht, bei AMALYTIX irgendwie komplexere Features zu implementieren.
[00:00:34] Und dann habe ich mich mal näher mit dem gesamten Prozess beschäftigt und so ein paar Skills gebaut,
[00:00:40] die mir doch helfen, eigentlich diesen Prozess von der Idee bis hin zur Implementierung noch ein bisschen besser zu gestalten.
[00:00:47] Was sind Skills?
[00:00:49] Ich glaube, Zusammenfassung oder man kann es so verstehen, dass man mit Skills seinem Agenten,
[00:00:55] sei es der Coding-Agent oder der Chat-Agent oder was auch immer man gerade da an KI vor sich hat,
[00:01:01] dass man dem System, dem Agenten mit Skills beibringen kann, wie bestimmte Dinge normalerweise funktionieren sollen.
[00:01:08] Dass man nicht immer alles neu erklären muss, sondern dass der Agent tatsächlich eine Idee hat,
[00:01:14] wenn man bestimmte Sachen gerne machen möchte, dass er eine Idee hat, wie ich selber das gerne hätte.
[00:01:19] Das ist, glaube ich, so die Kurzfassung für Skills, oder?
[00:01:22] Ja, kann man so beschreiben. Letztlich sind es einfache Textdateien mit Prozessbeschreibungen.
[00:01:27] Man kann dem Ganzen natürlich noch ein paar Tools ergänzen, die dann irgendwas tun. Das geht natürlich auch.
[00:01:32] Aber in meinem Fall sind es eigentlich nur reine Markdown-Textdateien, die beschreiben,
[00:01:38] wie bestimmte Phasen im Entwicklungsprozess ablaufen sollen.
[00:01:42] Und wenn man das einmal sauber definiert hat, dann kann man die halt immer wieder anwenden.
[00:01:47] Also ich glaube, es eignet sich vor allem für wiederkehrende Aufgaben.
[00:01:50] Genau, das ist, glaube ich, der Punkt. Und das nicht nur für Coding-Agenten, das funktioniert auch für alles andere.
[00:01:55] Und ich glaube, heute gucken wir mal ein bisschen drauf, was du für Erfahrungen gemacht hast, wo ich Skills verwende.
[00:02:01] Und ganz klar am Ende mit der deutlichen Empfehlung probiert das mal aus, oder?
[00:02:05] Absolut, ja genau. Auch wenn es jetzt gleich ein bisschen Coding-spezifisch wird, darum geht es mir gar nicht.
[00:02:09] Ich würde es nur anhand des Beispiels einfach mal machen.
[00:02:12] Aber eigentlich, wie du sagst, kann man es überall anwenden, wo wiederkehrende Aufgaben auftreten.
[00:02:17] Und in meinem Fall war es halt so, dass man Features auf ganz unterschiedliche Weise entwickeln kann.
[00:02:22] Man kann in Claude Code in diesen Planungsmodus gehen und dann skizziert man die Idee und dann macht er einen Plan draus.
[00:02:28] Das liest sich doch erstmal super. Und dann sagt man ja, dann mach das doch mal.
[00:02:31] Und ich habe halt gemerkt, dass ich irgendwie keinen so richtig strukturierten Prozess hatte.
[00:02:35] Mal habe ich es so rum gemacht, mal habe ich erst ein Dokument erstellt.
[00:02:38] Und ich habe gemerkt, dass die Ergebnisse am Ende unterschiedlich gut waren.
[00:02:42] Sagen wir es mal so. Denn Clode liefert ja immer ab.
[00:02:45] Es ist ja nie so, dass er sagt, habe ich nicht verstanden, kann ich nicht.
[00:02:48] Er wird ja immer das umsetzen, was du ihm sagst.
[00:02:50] Und das Problem ist halt, wenn man unklare Anforderungen definiert, dann sind ja auch die Ergebnisse entsprechend unklar.
[00:02:56] Und da habe ich bei manchen Sachen gemerkt am Ende erst, das war nicht richtig sauer.
[00:03:00] Das hat schon am Anfang, glaube ich, nicht gut angefangen, weil ich ihm halt nicht alles erzählt habe, was ich gerne hätte.
[00:03:05] Denn er kann ja auch nichts raten.
[00:03:06] Wenn er nicht weiß, was er machen soll, wo er soll, dann wissen wir, dass er es implementieren soll.
[00:03:09] Also habe ich mir nochmal überlegt, wie kann man das besser runterbrechen?
[00:03:12] Und was ich auch gemerkt habe, ist, wenn man versucht, zu viel in einer Session zu machen,
[00:03:17] also sprich, wenn das Kontextfenster sehr, sehr voll wird und obwohl die ja bis zu eine Million Tokens reingehen können,
[00:03:23] irgendwann fangen die halt an, Dinge zu vergessen.
[00:03:25] Also ein zweites Ziel bei mir war auch, diesen gesamten Prozess von der Idee bis zum Feature runterzubrechen
[00:03:32] in mehrere Phasen, die immer getrennt voneinander ablaufen können,
[00:03:36] sodass ich immer eine frische Phase starten kann, um zu vermeiden, dass irgendwann dieser Kontext-Rot beginnt.
[00:03:41] Sprich, das Kontextfenster ist so voll, dass er sich nicht mal an die Dinge vom Anfang erinnert.
[00:03:45] Das war so das zweite Ziel. Das hatte ich mal irgendwo bei anderen Entwicklern gesehen,
[00:03:48] dass die das so machen. Das fand ich eigentlich eine ganz sinnvolle Idee.
[00:03:52] Und was ich da jetzt gemacht habe, ist, ich habe mich ein bisschen inspirieren lassen von anderen Skills.
[00:03:57] Das ist, glaube ich, generell ein guter Tipp.
[00:03:59] Guck mal, was es andere für Skills veröffentlicht haben.
[00:04:03] Und das Besondere ist ja, passt die an euch an?
[00:04:05] Weil unsere App AMALYTIX ist ja halt sehr speziell.
[00:04:08] Da gibt es ja ganz unterschiedliche Anforderungen, die wir da erfüllen müssen.
[00:04:12] Das kann man natürlich dann alles sehr gut in so einen Skill reinpacken.
[00:04:14] Und bislang habe ich nur so Skills von anderen aus probiert, die halt so eher generisch waren.
[00:04:19] Es gibt da zum Beispiel OpenSpec, verlinke ich mal in der Beschreibung,
[00:04:22] oder Matt Pocock ist sehr bekannt.
[00:04:24] Ich glaube, er taucht immer in diesem Top Ten auf, in GitHub aktuell mit seinen Skills.
[00:04:28] Und da habe ich mal so ein paar probiert, aber keiner hat so richtig zu mir gepasst.
[00:04:32] Da waren immer so Punkte, wo ich dachte, so will ich es jetzt aber nicht.
[00:04:35] Und dann habe ich gedacht, warum mache ich mir nicht mein eigenes Skillset?
[00:04:39] Und dann habe ich halt angefangen, das in unterschiedliche Phasen zu packen.
[00:04:44] Und angefangen mit einem Explore-Skill, habe ich den bei mir genannt,
[00:04:48] wo es erst mal nur darum geht, die Idee, die ich im Kopf habe, zu spezifizieren.
[00:04:53] Was soll genau eigentlich passieren?
[00:04:55] So aus der Nutzer-Sicht erst mal, noch überhaupt nicht technisch,
[00:04:57] sondern wirklich nur, was wollen wir hier eigentlich jetzt genau bauen?
[00:05:00] Und was mir da sehr geholfen hat, war auch eine Idee von diesem Matt Pocock.
[00:05:04] Der hat so ein Grill-Me-Skill.
[00:05:06] Das heißt, der fragt dich so lange Löcher in den Bauch,
[00:05:09] bis er glaubt, wirklich verstanden zu haben, was du willst.
[00:05:12] Und das fand ich sehr hilfreich.
[00:05:13] Denn häufig beginnt ja so eine Idee nur mit so zwei, drei Absätzen,
[00:05:16] wo man sagt, ich hätte gerne ein Feature, das macht X, Y, Z.
[00:05:19] Und das ist auch ein Gut für den Start.
[00:05:21] Aber dann geht es ja darum, das noch auszudifferenzieren,
[00:05:23] Edge-Cases zu besprechen.
[00:05:24] Was passiert, wenn das passiert?
[00:05:26] So aus User-Sicht.
[00:05:27] Und dieser Grill-Me-Skill hat halt wirklich erst mal viele, viele Fragen gestellt,
[00:05:30] die dann alle sukzessive beantwortet.
[00:05:32] Und am Ende entsteht dann ein Dokument, welches diese Idee nochmal komplett beschreibt.
[00:05:36] Also eine Markdown-Datei ist das Endprodukt.
[00:05:39] Und die ist dann letztlich verantwortlich für den nächsten Schritt.
[00:05:43] Und das ist dann der Planungsschritt.
[00:05:46] Den habe ich halt Plan genannt.
[00:05:48] Und der nimmt praktisch das Ergebnis der Vorstufe
[00:05:51] und bricht das jetzt runter in die technische Umsetzung.
[00:05:54] Wie wird das jetzt konkret programmiert?
[00:05:56] Und das startet auch tatsächlich dann in einer frischen Session.
[00:05:59] Das heißt, nachdem dieses Anforderungsdokument fertiggestellt wurde,
[00:06:02] lösche ich einmal komplett das Kontextfenster,
[00:06:05] fange mit einer frischen Session an und sage,
[00:06:07] guck mal hier, das ist meine Idee,
[00:06:09] rufe jetzt diesen Planungsskill auf
[00:06:11] und der bricht dann diese Idee runter in unterschiedliche Schritte,
[00:06:14] in einzelne Schritte.
[00:06:16] Lass mich da nochmal kurz fragen.
[00:06:18] Das heißt, der erste Schritt, Explore,
[00:06:21] das heißt, am Ende möchtest du in der Markdown-Datei niedergeschrieben haben,
[00:06:26] was denn jetzt deine Diskussion mit dem Agenten so ergeben hat.
[00:06:29] Und das ist, glaube ich, der wichtige Punkt.
[00:06:32] Der Kontext kann ganz viele Rechts- und Linksabbiegungen haben,
[00:06:35] wurde gesagt, das ist ja die Richtung lieber nicht.
[00:06:37] Oder wo der Agent dich auch irgendwie darauf hingewiesen hat,
[00:06:40] dass das nicht so schlau ist oder da noch was fehlt und all diese Sachen.
[00:06:43] Das heißt, das Ganze schmeißt man dann quasi weg und nimmt nur das Ergebnis.
[00:06:47] Die Zusammenfassung von dieser ganzen Diskussion da,
[00:06:50] schreibt das in eine Markdown-Datei und nimmt das mit in den nächsten Schritt.
[00:06:54] Das heißt, du verlierst, du nimmst aus dem Kontext,
[00:06:57] aus deiner ersten Session nimmst du genau das, was wichtig ist,
[00:07:00] nimmst du mit in dieser Markdown-Datei und alles andere schmeißt du weg
[00:07:03] und der Kontext ist dann wieder clean
[00:07:05] und den Kontext, den du mitnimmst, steckt in dieser einen Datei.
[00:07:09] Und damit das genau so ist, hast du ein Skill geschrieben.
[00:07:12] Ich glaube, da gehen wir ganz am Ende mal drauf ein.
[00:07:14] Das heißt, jetzt einmal so gehen wir durch die Schritte, glaube ich,
[00:07:16] und dann ist die Frage auch, was macht denn diesen Skill aus?
[00:07:19] Was steht denn da drin und wobei hilft der tatsächlich?
[00:07:23] Aber das heißt, das ist immer so erster Schritt fertig.
[00:07:25] Irgendwie das Ergebnis von dem Schritt nimmst du mit in eine neue Session
[00:07:28] mit dem gleichen Agenten und machst da dann den nächsten Schritt.
[00:07:33] Das ist so die Idee.
[00:07:35] Und dann kann man sich diese Dokumente auch nochmal durchlesen
[00:07:37] und vielleicht nochmal Anmerkungen hinzufügen etc.
[00:07:39] Aber genau, dass es am Ende das Endprodukt ist,
[00:07:41] so eine Datei, wo dann drinsteht, was eigentlich die Idee ist.
[00:07:43] Und wie gesagt, noch gar nicht unbedingt technisch.
[00:07:45] Er guckt sich natürlich dann im Vorfeld schon so ein bisschen an.
[00:07:47] Was haben wir denn sonst so gemacht in dem Bereich?
[00:07:49] Und wie hängt denn das und das zusammen vielleicht?
[00:07:51] Und fragt dann halt.
[00:07:52] Aber die Idee ist erstmal, überhaupt die Idee zu spezifizieren.
[00:07:54] Und wirklich, weil man hat das zwar so irgendwie alles implizit im Kopf.
[00:07:57] Und man denkt doch, ich weiß doch, was ich will.
[00:07:59] Aber das weiß der Marketingagent ja nicht.
[00:08:01] Also und das alles mal implizit runterzuschreiben,
[00:08:03] das kann so ein Agent auch deutlich besser,
[00:08:05] als wenn ich jetzt anfange, irgendwie da runterzutippen.
[00:08:08] Und manchmal nutze ich dann auch so für diese Ideenphase,
[00:08:11] vielleicht da spreche ich mich auch einfach mal aus
[00:08:13] und nutze so ein Transkriptionstool und spreche einfach ins Mikro rein
[00:08:16] und erzähle mal wirklich runter so ganz unstrukturiert,
[00:08:19] was ich da so im Kopf habe.
[00:08:21] Und er nimmt das dann und strukturiert diese Idee dann.
[00:08:24] Genau, das ist die Idee.
[00:08:26] Genau, und dann geht es ja in den nächsten Schritt.
[00:08:28] Und das ist ja eigentlich dann die technische Umsetzung.
[00:08:30] Und die ist ja manchmal auch relativ komplex.
[00:08:32] Je nachdem, wie umfangreich das Feature ist,
[00:08:34] sind ja ganz viele verschiedene Bereiche der App betroffen.
[00:08:36] Das Backend, das Frontend, verschiedene Bereiche im Backend.
[00:08:39] Tabellen müssen, Datenmodelle müssen entwickelt werden.
[00:08:42] Und meine Erfahrung ist auch,
[00:08:44] wenn man versucht, zu viel auf einmal zu machen,
[00:08:46] dann tun sich Agenten manchmal auch schwer.
[00:08:48] Und dann vergessen sie vielleicht das,
[00:08:49] was man denen eben noch erzählt hat im Anforderungsdokument.
[00:08:51] Deswegen war hier auch klar die Idee,
[00:08:53] mach dir eine To-Do-Liste, die immer den aktuellen Stand enthält
[00:08:56] und breche jede Aufgabe runter in unterschiedliche Tasks.
[00:08:59] Dann kommen am Ende vielleicht zehn Tasks raus.
[00:09:02] Und die kann er dann Stück für Stück abarbeiten.
[00:09:04] Und auch hier wieder jeder Task in einer eigenen Session,
[00:09:07] sodass jede Taskbeschreibung eigentlich alle Informationen enthält,
[00:09:10] die er wissen muss, um das Ding entsprechend umzusetzen.
[00:09:13] Und er kann sich natürlich auch jedes Mal wieder
[00:09:15] irgendwie das Anforderungsdokument durchlesen,
[00:09:17] das übergreifende Plandokument und natürlich die jeweilige Taskbeschreibung.
[00:09:21] Nimmst du denn, das heißt, du machst Explore,
[00:09:24] dann machst du einen Plan mit zehn Tasks oder wie viel auch immer sind.
[00:09:28] Und dann nimmst du Task 1, sagst neuen frischen Kontext,
[00:09:31] so Task 1 umsetzen, danach neuer Kontext, Task 2 umsetzen.
[00:09:37] Nimmst du aus diesen Task-Sessions denn noch was mit in den nächsten Tasks?
[00:09:41] Weil im Zweifel wurde ja auch noch mal was anders realisiert,
[00:09:43] als es ursprünglich mal geplant war im Task vielleicht.
[00:09:46] Das heißt, wie nimmst du das mit?
[00:09:49] Das stimmt, ja. Also am Ende, der letzte Schritt, glaube ich, des Agenten ist,
[00:09:52] wenn er den Task umgesetzt hat, dann schreibt er noch mal in die Taskbeschreibung rein,
[00:09:56] was er am Ende wirklich gemacht hat und was er wirklich umgesetzt hat
[00:09:59] und dass man so eine Art Logbuch noch mal hat.
[00:10:02] Er aktualisiert natürlich auch die To-Do-Liste.
[00:10:04] Und ich habe ihn auch gebeten, du, wenn da Sachen auftreten,
[00:10:07] wo du eine Annahme getroffen hast oder wo vielleicht noch mal eine Produktentscheidung getroffen werden muss,
[00:10:11] dann halte die noch mal fest in einer separaten Datei.
[00:10:14] Die nenne ich bei mir irgendwie Open-Items-Markdown.
[00:10:17] Und da schreibt er dann immer regelmäßig rein.
[00:10:19] Übrigens, ich habe mich jetzt hier für den Weg entschieden.
[00:10:21] Wenn du das anders hättest, dann sag Bescheid, sodass ich immer weiß,
[00:10:24] weil ich will ja auch nicht zu Tode gegrillt werden.
[00:10:26] Das hatte ich auch mal. Das war ein anderer Skill.
[00:10:28] Der hat mich vier Stunden lang Fragen gestellt.
[00:10:30] Da habe ich irgendwann gesagt, nee, also das reicht jetzt auch.
[00:10:33] Du musst mich nur wirklich die wichtigen Dinge fragen und jetzt nicht jedes Detail.
[00:10:36] Du kannst erst mal eine gute Annahme treffen.
[00:10:38] Und nachher, wenn man es testet, dann merkt man ja, wo man vielleicht noch mal anpassen muss.
[00:10:42] Also diese Balance zu finden, wie viel gebe ich rein?
[00:10:44] Wie viel fragt er mich?
[00:10:46] Das habe ich dann auch mal für meinen Geschmack angepasst.
[00:10:48] Aber das ist ja jeder anders.
[00:10:50] Aber in der Tat, er schreibt noch so ein paar Dinge nebenbei mit.
[00:10:52] Das stimmt.
[00:10:54] Okay. Und dann?
[00:10:56] Dann ist er irgendwann fertig.
[00:10:57] Fertig?
[00:10:58] Fertig implementiert.
[00:10:59] Und dann ist der nächste Schritt, dass man dann noch mal so eine Art Codereview macht.
[00:11:02] Dass jemand noch mal drüber geht und sich wirklich noch mal alles im Gesamtkontext anschaut.
[00:11:06] Also was alles jetzt entwickelt wurde.
[00:11:08] Und da habe ich auch gemerkt, da kann man, also sprich, und da mache ich zwei Dinge.
[00:11:14] Also einmal neue, klar frische Session, dann Codereview.
[00:11:16] Das heißt, er guckt sich alles noch mal an.
[00:11:18] Er startet aber auch gleichzeitig ein zweites Sprachmodell, nämlich Codex.
[00:11:21] Ich arbeite häufig mit Claude Code.
[00:11:22] Und dann ist Codex praktisch sozusagen die zweite Arztmeinung.
[00:11:25] Die startet er auch im Hintergrund.
[00:11:27] Konsolidiert dann die Beobachtungen und setzt dann oder fixt dann die Dinge, die er in der Implementierung halt falsch gemacht hat.
[00:11:34] Und da tauchen echt viele Sachen auf.
[00:11:36] Also es ist nicht so, nur weil man jetzt einen tollen Planungsprozess hat, dass alles bis dahin glatt durchläuft.
[00:11:40] Der findet schon richtige Bugs dann auch, die nachher sonst im Produktivbetrieb Probleme verursacht hätten.
[00:11:46] Und meine Erfahrung ist auch, das kann man beliebig oft wiederholen.
[00:11:49] Ich habe sogar einmal, zweimal Fable gestartet und gesagt, nimm fünf Subagenten, die alle das Gleiche machen.
[00:11:56] Konsolidier die Ergebnisse und sag mir, was du herausgefunden hast.
[00:11:59] Und das Gleiche dann noch mal für Codex.
[00:12:01] Und auch hier wieder fünf Subagenten.
[00:12:03] Und jeder Subagent findet andere Sachen.
[00:12:05] Das ist halt einfach in der Natur der Sache begründet, dass diese Agenten ja nicht ganz deterministisch arbeiten.
[00:12:09] Die gehen ja nicht alle immer den gleichen Weg.
[00:12:11] Sondern mal der eine biegt mal hier ab, der andere guckt mal mehr dahin.
[00:12:14] Und das war für mich auch nochmal so ein Learning, dass man eigentlich auch zehn Code Reviews machen kann.
[00:12:18] Und die finden immer wieder was Neues.
[00:12:20] Man muss dann natürlich entscheiden, was ist jetzt wirklich wichtig und was ist jetzt ein super Edge Case, wo man sagt, ja, stimmt, könnte sein.
[00:12:26] Ist jetzt aber erst mal nicht entscheidend.
[00:12:28] Das fand ich auch gar nicht so leicht, zu entscheiden, wie oft mache ich den Schritt jetzt.
[00:12:33] Aber irgendwann ist auch das abgeschlossen.
[00:12:35] Und dann erstellt er auch da nochmal eine Datei, die heißt Code Review.
[00:12:38] Und was ich auch gemerkt habe, ist, dass man auch ruhig nochmal da reinschreiben soll, warum er Sachen geändert hat.
[00:12:43] Im Nachgang vielleicht nochmal.
[00:12:45] Und es kann sein, dass du den zweiten Code Review startest und er will das wieder zurückdrehen, weil er irgendwie eine andere Meinung ist.
[00:12:50] Wenn er aber die Begründung sieht, dann weiß er, ah, okay, das war der Grund.
[00:12:53] Dann lasse ich das mal so stehen.
[00:12:55] Oder er sagt, nee, nee, der Bugfix war dumm, weil wir haben vorher doch gesagt, das und das ist eigentlich richtig.
[00:13:00] Also ist gar nicht so trivial, aber am Ende kommt man halt zumindest zu einem Ergebnis, das man nochmal gut testen kann.
[00:13:06] Okay, das sind die Skills, die du nutzt?
[00:13:10] Kommt danach noch was oder soll man darauf eingehen, wie so ein Skill aufgebaut ist, was man tun muss, um damit loszulegen?
[00:13:17] Genau, also es gibt ja noch so ein paar Follow-up-Skills, weil irgendwo schreibt er dann, wenn ich sage, jetzt bin ich mit dem Testen auch durch,
[00:13:23] es läuft alles so, wie ich das möchte, dann habe ich so ein Deployment oder so ein Chip-Skill.
[00:13:27] Der schreibt mir dann nochmal genau auf, was ich jetzt machen muss, damit das Ganze live gehen kann.
[00:13:30] Weil manche müssen auch bestimmte Dienste starten, bestimmte Datenbanken kreieren, was auch immer.
[00:13:36] Und dann gibt es noch so Spezial-Skills.
[00:13:38] Wenn ich jetzt sage, kannst du mir daraus mal irgendwie eine News schreiben für unser Tool, dass ich das meinen Kunden schicken kann.
[00:13:44] Oder kannst du mir eine Landingpage dazu bauen, wenn das so ein richtig dickes Feature ist, wo wir sagen, das müssen wir auf der Homepage jetzt auch bewerben.
[00:13:49] Dann kann er mir auch da auf Basis unseres Templates eine ganze Seite hinzaubern.
[00:13:54] Er kann, wenn er will, Screenshots erstellen, indem er Playwright startet.
[00:14:00] Aber ich glaube, wichtig ist einfach nur, dass man für sich erkennt, was sind wiederkehrende Aufgaben, die man häufiger macht.
[00:14:04] Und dass man die eigentlich nur einmal gut beschreiben muss.
[00:14:06] Und dann kann man sie halt immer wieder nutzen. Und das ist eigentlich der Vorteil.
[00:14:09] Aber am Ende sind es ja alles nur Prompts, die eine bestimmte Struktur haben.
[00:14:13] Und diese Skills sind natürlich auch aufeinander abgestimmt, sodass der nächste Skill weiß, was er vom vorherigen erwarten kann und was er weitergeben muss.
[00:14:19] Aber am Ende sind es letztlich nur Prompts und Markteinurteile.
[00:14:24] Cloud Code und auch andere Coding-Agenten kommen ja schon mit Basisskills.
[00:14:30] Der Agent bringt ja schon Skills mit, die man normalerweise über einfach Slash und dann irgendein Skill aufrufen kann.
[00:14:38] Und das ist ja auch der Weg, wie man dann seine eigenen da reinbringt.
[00:14:41] Die ruft man dann über Kommandozeile Slash und dann, wie man sie auch immer benannt hat, auf.
[00:14:45] Würdest du nochmal kurz darauf eingehen, vielleicht deinen Explore-Skill, wie der genau aussieht?
[00:14:50] Wir haben schon gesagt, eigentlich ist eine Markdown-Datei ein Prompt, den man sich auch in eine Textdatei schreiben kann und einfach irgendwie in das Chatfenster copy-pasten kann, wenn man möchte.
[00:15:01] Aber wie ist der so aufgebaut? Wie kommt man dazu, dass der tatsächlich die Fragen in dem Detail gerade stellt, die du richtig findest?
[00:15:08] Und am Ende auch tatsächlich, hast du ja eben gesagt, kommt am Ende das Anforderungsdokument raus.
[00:15:14] Das hast du ja mit Sicherheit auch irgendwie im Skill beschrieben, dass das entstehen soll, oder?
[00:15:18] Genau. Ich habe jetzt gar nicht mehr ganz genau vor Augen, was da alles genau drinsteht, weil ich habe letztlich auch Claude Code genutzt und mir diesen Skill-App schreiben lassen.
[00:15:25] Ich habe ihm so drei, vier andere Beispiel-Skills gegeben, die ich ganz gut finde, so von der Grundidee her.
[00:15:30] Ich habe gesagt, welche Aspekte ich davon gerne übernehmen möchte.
[00:15:32] Aber im Prinzip steht da nur sinngemäß Folgendes drin, dass er sagt, hier hat ihr wahrscheinlich eine vage Idee im Kopf, die ist aber noch nicht ausformuliert und nicht zu Ende gedacht.
[00:15:43] Die muss jetzt nochmal irgendwie verfeinert und ausdetailliert werden.
[00:15:47] Und frag eben irgendwie so viele Fragen, dass wichtige Anforderungen schon von Beginn an klar sind.
[00:15:52] Alles, was man später noch leicht ändern kann, trifft da erstmal eine Annahme und erstellt daraus dieses Anforderungsdokument.
[00:16:01] Also ich glaube, viel mehr ist es auch nicht.
[00:16:03] Es ist sicherlich noch ein bisschen im Detail und legt das dort ab.
[00:16:06] Und ich habe auch so eine Ordnerstruktur mir anlegen lassen und sage hier, wenn es noch keinen Ordner dafür gibt, für diese Idee oder für dieses Feature, dann leg nochmal so einen speziellen Ordner an.
[00:16:14] Diese ganzen Dokumente, die müssen ja alle in einer Ordnerstruktur liegen, sodass der nächste Skill weiß, wo er nachgucken muss, wenn er dieses Feature sucht.
[00:16:21] Also ich gebe ihm praktisch dann auch immer den Namen des Features mit, damit er weiß, das liegt alles im AX-Spec-Ordner-Foldername des Features etc.
[00:16:31] Solche Sachen stehen da auch drin.
[00:16:33] Also so eine Ordnerkonvention, die ist einmal zentral abgelegt und damit jeder weiß, wo er hier hinarbeiten soll und wo er was findet.
[00:16:40] Aber im Prinzip ist es das.
[00:16:42] Also die Aufgabe und dann habe ich auch gesagt, stell mir wichtige Fragen, aber bitte nicht alles.
[00:16:46] Und am Ende, Herr Zeuge, wenn du glaubst, alles verstanden zu haben, dann schreib dieses Dokument.
[00:16:51] Das ist im Wesentlichen der Skill.
[00:16:53] Hast du auch AMALYTIX-spezifische Dinge da reingeschrieben im Planungstool?
[00:17:01] Keine Ahnung, war es technische Anforderungen oder bestimmte Dinge, die vielleicht nicht verändert werden sollten oder die eine bestimmte technologische Ausrichtung oder Konstruktion haben müssen?
[00:17:13] Sowas würdest du dann auch in den Skill beschreiben?
[00:17:16] Wir haben natürlich vieles auch im Agents-MD-File drin, also sozusagen dem übergreifenden Dokument, was sich jeder Agent erstmal durchliest.
[00:17:22] Aber genau, da stehen auch so Sachen drin, wenn ich die mal vergesse, dann weiß er, dass er das machen muss.
[00:17:27] Zum Beispiel haben wir ja auf der einen Seite eine Benutzeroberfläche, die man ganz normal durchklicken kann.
[00:17:31] Wir haben aber auch immer so einen Agenten und wir müssen eigentlich immer versuchen, dass beide das Gleiche können.
[00:17:36] Also unser Ziel ist, dass der Agent das Gleiche sieht, wie letztlich der Benutzer.
[00:17:39] Insofern, wie irgendwo auch mal hinterlegt und denkt daran, auch wenn es trotzdem nicht sagt, wir müssen, wenn wir was Neues bauen, dem Agenten das auch beibringen.
[00:17:46] Dann muss ich ihm das nicht explizit sagen.
[00:17:48] Dann weiß er, okay, neues Feature, das heißt, wir brauchen für den Agenten auch irgendwie Zugriff auf diese Tabelle oder eine Beschreibung, wie er das findet, wie er sich die SQL-Abfragen da zurechtbauen kann.
[00:17:57] So, das muss ich dann nicht jedes Mal mitdichten.
[00:17:59] Und solche Sachen sind schon drin.
[00:18:00] Und das macht, glaube ich, einen sehr guten Skill auch auf, dass er halt wirklich auf deine persönlichen Anforderungen zugeschnitten ist, auf dein Projekt.
[00:18:07] Deswegen liegen meine Skills jetzt auch nicht global in meinem CLOT-Global-Ordner, sondern wirklich nur in diesem AMALYTIX-Ordner, weil die Skills eignen sich eigentlich nur speziell jetzt für diesen AMALYTIX-Entwicklungsprozess.
[00:18:19] Man hat aber auch die Möglichkeit, Skills global abzulegen.
[00:18:21] Ich glaube, das liegt dann in seinem persönlichen User-Ordner.
[00:18:25] Da gibt es dann auch so einen Skills-Ordner.
[00:18:27] Und egal, wo ich dann Claude Code aufrufe, hat er dann Zugriff auf diese Skills.
[00:18:30] Aber meine liegen jetzt im Projekt-Ordner.
[00:18:32] Aber das ist abhängig vom Skill selber.
[00:18:37] Und die Skills funktionieren ja nicht nur für den Coding-Agenten.
[00:18:42] Die können wir ja ganz normal für den Chat-Agenten auch, den ich jetzt über meine Desktop-App oder über das Web-UI irgendwie zugreife und mit dem Chatbot ganz normal chatte für alltägliche Aufgaben.
[00:18:53] Da funktioniert es ja auch.
[00:18:55] Nutze ich auch einige Skills.
[00:18:59] Und da ist, glaube ich, auch nochmal ein spannender Fall, dass so Skills auch nicht explizit aufgerufen werden müssen, zwingend.
[00:19:07] Also kannst du sagen, so führe mir diesen Skill aus.
[00:19:10] Du kannst aber genauso Skills formulieren und sagen, und der Agent sucht sich selber den passenden Skill für die Aufgabe, die du ihm gerade gibst.
[00:19:19] Also ein Thema, was ich auf jeden Fall habe, ist irgendwie Akquise-Gespräche vorbereiten.
[00:19:24] Das heißt irgendwie interessant, mach einen Termin mit uns zu einem bestimmten Thema.
[00:19:28] Und das möchte ich vorbereiten.
[00:19:30] Da habe ich einen Skill geschrieben, wo ich in das Chatfenster einfach nur sage, bereite Termin mit Firma X und Person Y zum Thema Z vor.
[00:19:41] Und dann sucht der, in meinem Fall sucht Claude irgendwie, ob da ein Skill passt.
[00:19:47] Findet das typischerweise auch, dass der Skill Akquise-Termin vorbereiten ganz gut passt.
[00:19:52] Und da ist dann tatsächlich beschrieben, wie das Ganze laufen soll.
[00:19:56] Das heißt, geh auf die Webseite, such bestimmte Sektionen von der Webseite.
[00:20:02] Das heißt irgendwie immer über uns.
[00:20:04] Das heißt Informationen über das Unternehmen.
[00:20:06] Wie groß ist das?
[00:20:07] Wie viele Mitarbeitende?
[00:20:08] Durchsuch auch, guck auch, ob da News sind.
[00:20:10] Das heißt, da ist so ein bisschen strukturiert, wie man so eine Webseite durchsuchen kann.
[00:20:13] Das, was man eigentlich irgendwie auch einem Mitarbeiter, einer Mitarbeiterin erklären würde.
[00:20:17] Ich bereite mir bitte den Termin vor und gucke auf der Webseite, gucke in den News-Kanälen, ob die Ansprechperson, welche Rolle die hat.
[00:20:24] Ob die irgendwelche News-Artikel auf der Seite hat.
[00:20:26] Ob die sich zu Themen geäußert hat etc.
[00:20:29] Und das ist so in dem Skill dann beschrieben.
[00:20:32] Das heißt, ich habe da wirklich so Schritt 1, 2, 3, 4, 5, 6, 7 beschrieben.
[00:20:36] Geht dann durch und das Ergebnis.
[00:20:38] Und das ist noch der zweite spannende Teil.
[00:20:40] Der eine ist, ich muss es nicht explizit aufrufen, sondern ich sage einfach, bereite Termin mit Firma und Person vor.
[00:20:45] Dann denkt er schon, okay, den Skill nutze ich hier.
[00:20:48] Und das Ergebnis ist immer das gleiche.
[00:20:50] Das heißt, ich habe auch beschrieben, wie dieser HTML-One-Pager, das ist so das Format, was ich dann gerne nutze.
[00:20:55] Das heißt, eine HTML-Seite, wo alles draufsteht.
[00:20:58] Wie das aussehen soll.
[00:20:59] Das heißt, was sind die Informationen, die ich gerne da hätte.
[00:21:02] Das heißt, auch Deckung mit Themen.
[00:21:05] Das heißt, was sind so die Dinge, die uns gerade interessieren.
[00:21:07] Und die können sich auch so ein bisschen wandeln.
[00:21:09] Je nach über das Jahr, je nach Phase, je nach Unternehmen etc. ist das so ein bisschen anders.
[00:21:16] Das heißt, bei diesen Skills kann man auch noch Kontext mitgeben.
[00:21:20] Das heißt, ich habe einmal so diese Skill.md-Datei, wo der normale Ablauf.
[00:21:24] Da beschreibe ich, was kann der Skill.
[00:21:26] Und dann, wie soll das Ganze ablaufen.
[00:21:28] Das kommt am Ende raus.
[00:21:29] Das ist eine ganz normale Beschreibung.
[00:21:31] Und da kann man auch nochmal unter Markdown-Dateien einbinden.
[00:21:34] Das heißt, ich kann jetzt sagen, aktuelle Produkte ist in der Product.md.
[00:21:39] Da sind dann unsere Produkte kurz skizziert, damit der Agent bei der Vorbereitung auch direkt abgleichen kann.
[00:21:44] Okay, was könnte die Firma und diese Person tatsächlich am meisten interessieren.
[00:21:49] Wo ist der Match am größten?
[00:21:50] Vielleicht aber auch irgendwie Themen, die mich besonders interessieren.
[00:21:53] Das heißt, man kann diesem Skill auch noch Informationen mitgeben.
[00:21:56] Und der Skill kann auch dann Web-Recherche etc. einbeziehen.
[00:22:03] Das heißt, man muss nicht nur die Webseite des Unternehmens nehmen,
[00:22:07] sondern kann auch tatsächlich eine generelle Web-Suche zu dem Unternehmen, zu der Person machen.
[00:22:12] Man kann LinkedIn.
[00:22:13] LinkedIn ist ein bisschen tricky.
[00:22:14] Die lassen Agenten nicht so gerne auf ihre Seite.
[00:22:17] Da kann man relativ wenig abgreifen.
[00:22:21] Aber generell irgendwelche Newsportale oder so.
[00:22:23] Das heißt, dieser Skill macht innerhalb von ein paar Minuten.
[00:22:29] Der ist dann auch ein bisschen beschäftigt.
[00:22:30] Aber ich stoße ihn einmal an, der läuft.
[00:22:32] Und am Ende habe ich eine One-Pager-Vorbereitung für den Termin,
[00:22:35] sehr spezifisch auf das, was für uns interessant ist, zugeschnitten.
[00:22:39] Was vorher eine Person mindestens eine halbe Stunde, vielleicht eine Stunde beschäftigt hätte.
[00:22:45] Und in der Qualität, in der ich es vom Agenten bekomme, auch länger als eine Stunde beschäftigt hätte.
[00:22:51] Weil die Webseite vom Unternehmen komplett durchsuchen, andere Newsquellen durchsuchen etc.
[00:22:57] Hätte viel zu lange gedauert, konnten wir früher auch nicht machen in der Detailtiefe.
[00:23:01] Heute geht das.
[00:23:03] Das heißt, Sachen, die ich ihm gerne mitgeben würde, Zugriff auf meine Mails hat er sowieso nicht.
[00:23:09] Aber Dinge, die ich gerne mitgeben würde, sind dann eigentlich Teil von dem Skill.
[00:23:13] Also die hänge ich mit an den Skill dran.
[00:23:15] Oder ich sage ihm, suche auf der Webseite unsere Homepage oder unsere Produktseite.
[00:23:20] Suche da die passenden Produkte raus.
[00:23:22] Das kann man natürlich auch immer machen.
[00:23:24] Oder Kollegen, die haben da wilde Dinge automatisiert.
[00:23:27] Wenn man das irgendwie intensiv vorantreiben will.
[00:23:30] Da gibt es schon wilde Sachen, die man wirklich automatisieren kann.
[00:23:34] Eigentlich immer, wenn man sagt, ich habe eine Standardaufgabe, die ich aber nicht irgendwie gelöst haben möchte,
[00:23:39] sondern eigentlich so, wie ich es mir vorstelle, in dem gleichen Ausgabeformat, mit den gleichen Quellen usw.
[00:23:45] Dann beschreibe ich das in einem Skill.
[00:23:47] Das können auch im Zweifel nur Teilschritte sein.
[00:23:52] Ich führe eine Diskussion mit dem Agenten, mache eine Marktrecherche oder Ähnliches und sage ihm dann,
[00:23:58] okay, fass mal die Ergebnisse von unserer Diskussion jetzt in einem HTML-OnePager zusammen.
[00:24:03] Dann könnte ich mir auch einen Skill schreiben, der nur definiert, wenn ich sage HTML-OnePager, was bedeutet das denn?
[00:24:09] Was hätte ich denn da gerne drin?
[00:24:11] Dann muss ich nicht immer erklären, wie das aussehen soll.
[00:24:13] Was mir wichtig ist, wenn ich sage, fass mir das in einem HTML-OnePager zusammen.
[00:24:18] Dann kann ich das da definieren.
[00:24:20] Alles, was ich irgendwie beschreiben kann, wo ich sage, das ist eine Aufgabe, die kommt immer mal wieder
[00:24:25] und da möchte ich gerne, dass sie so gelöst ist, wie ich mir das vorstelle, dann kann man ein Skill machen.
[00:24:31] Das ist ein total guter Mechanismus, um den Agenten schon extrem zu individualisieren.
[00:24:37] Ich kann das Modell nicht nachtrainieren und der muss nicht zwingend lernen aus dem, was ich tue,
[00:24:41] sondern wenn ich eine bestimmte Art und Weise habe, wie etwas passieren soll,
[00:24:45] dann kann ich das einfach in einem Skill beschreiben.
[00:24:48] Wer Lust hat, nicht immer alles neu zu machen, der entwickelt sich ein paar Skills
[00:24:52] und muss dann nicht immer alles wiederholen.
[00:24:56] Ja, genau. Das ist auch alles, was du dem Agenten in der aktuellen Diskussion mitgeben kannst.
[00:25:03] Erstelle mir einen HTML-OnePager, wo das drin ist.
[00:25:07] Aber wenn ich das immer gleich oder immer ähnlich gerne hätte,
[00:25:11] dann kann ich das auch einmal sauber beschreiben und dann reicht das.
[00:25:15] Das ist ein extrem mächtiges Tool, das man sehr weit vorantreiben kann.
[00:25:20] Vor allem, weil es auch implizit aufgerufen wird.
[00:25:23] Der Agent guckt, was gerade in die Aufgabe passt, die ich hier vor mir habe.
[00:25:28] Und wenn er etwas findet, dann nutzt er das.
[00:25:30] Das führt auch manchmal zu Dingen, wo er es nutzt, wo er es eigentlich nicht nutzen sollte.
[00:25:34] Das gehört natürlich auch dazu.
[00:25:36] Aber der Mehrwert ist größer als die Schwierigkeiten, die dabei auftauchen könnten,
[00:25:41] wenn es nicht ganz eindeutig ist.
[00:25:44] Ich spreche noch drei Tipps zum Abschluss.
[00:25:46] Was mir total geholfen hat, ist, einmal Code selber zu nutzen, um die Skills zu schreiben.
[00:25:50] Die können das meistens nochmal in einer tieferen Detailtiefe schreiben,
[00:25:54] als man selber vorformuliert hätte.
[00:25:55] Dann zweitens, sich ruhig mal bestehende Skills von anderen anschauen.
[00:25:58] Was haben die da so gemacht? Was kann man an guten Ideen vielleicht übernehmen?
[00:26:01] Was ich auch gemacht habe, nach dem ersten, zweiten Durchlauf des Skills,
[00:26:05] habe ich dann nochmal Feedback gegeben und gemerkt, das hat nicht so gut geklappt.
[00:26:08] Da hast du die Datei nicht gefunden. Da hast du dich da vertan.
[00:26:11] Oder da hast du vergessen, vorher noch das zu machen, obwohl das ja im Skill drinsteht.
[00:26:15] Dann wird das vielleicht nochmal an anderer Stelle betont.
[00:26:17] Also man kann so iterativ die Skills auch immer wieder weiter verbessern.
[00:26:21] Und das fand ich, hat sehr gut funktioniert.
[00:26:24] Beim nächsten Durchlauf hat das dann schon deutlich besser funktioniert.
[00:26:29] Auf jeden Fall einen KI-Agenten nutzen, um die Skills zu schreiben, ist gut.
[00:26:33] Mache ich auch immer so.
[00:26:35] Ich glaube, es ist wichtig, nicht nur bei den Skills, auch bei allen anderen Dingen,
[00:26:38] auch mal das Ergebnis zu lesen.
[00:26:40] Wie du eben gesagt hast, diese Zwischenergebnisse, was da so rauskommt,
[00:26:43] auch einfach mal lesen und mal kritisch reviewen.
[00:26:45] So holt man am meisten raus.
[00:26:47] Man kann es natürlich alles blind machen.
[00:26:49] Aber ich glaube, genau an diesen Zwischenschritten mal zu checken,
[00:26:52] ist das genau das, was ich meine und wo es hingehen soll.
[00:26:55] Dann steigert das den Wert einfach nochmal deutlich von dem, was der Agent da macht.
[00:27:01] Unbedingt. Auch, weil es anstrengend ist.
[00:27:03] Also man muss ja wirklich fast nur noch viel lesen, Feedback geben,
[00:27:06] noch mehr lesen, nochmal Feedback geben.
[00:27:08] Und das ist manchmal anstrengend, das merke ich manchmal selber.
[00:27:10] Ich würde am liebsten sagen, ja passt schon, komm weiter, let’s go.
[00:27:13] Aber ich glaube, wenn man da sich nochmal die Mühe gibt und Feedback gibt,
[00:27:17] und das ist manchmal gar nicht so leicht, weil der Agent taucht plötzlich in so ein Detail ab,
[00:27:20] wo du gar nicht weißt, wo redest du jetzt eigentlich gerade ganz genau.
[00:27:23] Und dann sage ich auch nochmal, kannst du das nochmal in einfachen Worten formulieren,
[00:27:26] was du meinst, weil diese Agenten haben ja auch so eine ganz eigene Sprache.
[00:27:30] Aber gut, jetzt driften wir so ein bisschen ab.
[00:27:33] Aber ich habe auch gemerkt, wenn man seine eigenen Skills baut,
[00:27:36] so geht es mir zumindest, ich bin total verliebt in diese Skills.
[00:27:38] Ich nutze sie jetzt die ganze Zeit, weil ich weiß, die sind angepasst auf meinen Use Case.
[00:27:42] Und das ist jetzt nicht irgendein Skill von jemand anderem,
[00:27:45] wo ich gar nicht so ganz genau weiß, was der eigentlich macht.
[00:27:47] Das hatte ich halt auch. Manchmal installiert man sich Skills von anderen.
[00:27:51] Aber wenn man nicht weiß, wie das zusammenhängt, was da berücksichtigt,
[00:27:54] wenn man die nicht durchgelesen hat, aber wenn man weiß, die habe ich für mich gebaut,
[00:27:57] ich bin total verliebt und mache das jetzt zumindest bei größeren Themen,
[00:28:01] ist natürlich auch klar, dass man jetzt nicht für jeden kleinen Bugfix
[00:28:04] oder für jede Mini-Aufgabe immer erstmal einen eigenen Skill braucht.
[00:28:07] Manche Themen kann man auch mal so eben runterpromten.
[00:28:10] Aber wenn es wiederkehrende Aufgaben sind, würde ich es jedem empfehlen, das mal zu testen.
[00:28:14] Auf jeden Fall. Also klare Empfehlung von uns.
[00:28:17] Guckt euch die Skills an, lest Skills von anderen, baut euch eure eigenen
[00:28:21] und holt noch viel mehr aus den Karrieregängen raus.
[00:28:24] Absolut unsere Empfehlung. Skills 10 von 10, würde ich sagen.
[00:28:27] Auf jeden Fall. Alles klar.
[00:28:31] Trutz. Verstanden. Danke dir. Bis zum nächsten Mal.
[00:28:34] Ciao.