Skills in Bob Shell erstellen und verwenden
Erstelle einen wiederverwendbaren Skill, der Bob Shell einen wiederholbaren Changelog-Eintrag-Workflow beibringt, rufe ihn dann explizit auf und lass Bob ihn automatisch aktivieren.
Bob Shell Skills in IBM sind wiederverwendbare Anweisungssets, die in einer SKILL.md-Datei gespeichert sind und Bob einen wiederholbaren Workflow beibringen. In diesem Tutorial baust du einen changelog-entry-Skill, der Keep a Changelog-Einträge zu CHANGELOG.md hinzufügt, rufst ihn explizit mit $changelog-entry auf und beobachtest, wie Bob ihn automatisch aktiviert, wenn ein Prompt zur Beschreibung des Skills passt.
Skills ersparen dir das erneute Eingeben derselben Formatierungsregeln oder Checklisten in jedem Prompt. Du definierst den Workflow einmal, und Bob befolgt ihn, wann immer der Skill zutrifft.
Voraussetzungen
Bob Shell
Installiere Bob Shell v2.x oder neuer und melde dich an.
Git
Du brauchst Git, um das Beispiel-Repository zu klonen.
- Falls du es noch nicht hast, klone den Galaxium Travels-Demo-Code.
git clone https://github.com/IBM/galaxium-travels - Obwohl nicht zwingend erforderlich, empfiehlt es sich, zuerst Ein Projekt mit /init und AGENTS.md starten und Effektive Prompts für Bob Shell schreiben abzuschließen.
Einen changelog-entry-Skill erstellen
Bob Shell lädt Skills aus Ordnern, die eine SKILL.md-Datei enthalten. Projekt-Skills befinden sich in .bob/skills/ im Projektstammverzeichnis, sodass Git sie zusammen mit der Codebasis verwaltet und dein Team sie verwenden kann. Globale Skills befinden sich in ~/.bob/skills/ und gelten für alle deine Projekte.
Den Skill-Ordner erstellen
Wechsle in das Stammverzeichnis von Galaxium Travels und erstelle einen Ordner für den Skill:
cd galaxium-travels
mkdir -p .bob/skills/changelog-entryDie SKILL.md-Datei schreiben
Erstelle .bob/skills/changelog-entry/SKILL.md mit folgendem Inhalt. Du kannst einen beliebigen Texteditor verwenden oder den Befehl so wie er ist ausführen:
cat > .bob/skills/changelog-entry/SKILL.md <<'EOF'
---
name: changelog-entry
description: Adds an entry to CHANGELOG.md using the Keep a Changelog format, creating the file if it does not exist, so change history stays consistent and release-ready.
---
Add an entry to CHANGELOG.md using the Keep a Changelog format (https://keepachangelog.com/).
- If CHANGELOG.md does not exist, create it at the project root with this structure before adding an entry:
# Changelog
All notable changes to this project are documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
## [Unreleased]
- Add new entries under the `## [Unreleased]` section, under one of these subheadings: `### Added`, `### Changed`, `### Fixed`, `### Removed`. Create the subheading if it is not already present under `## [Unreleased]`.
- Write each entry as a single bullet point in the imperative mood ("Add", not "Added"), starting with a capital letter, with no trailing period.
- Base the entry on the actual diff, not on the wording of the request. Run `git diff` to review what changed before writing the entry.
- Only edit CHANGELOG.md. Do not stage or commit the change.
EOFDas Front Matter definiert zwei Pflichtfelder:
name: Der Name des Skills. Passe ihn an den Ordnernamen an, denn Bob Shell verwendet den Ordnernamen, um auf den Skill zu verweisen, z. B.$changelog-entry.description: Was Bob liest, um zu entscheiden, ob der Skill auf eine Anfrage zutrifft, wenn du ihn nicht namentlich referenzierst. Wenn du ihn weglässt, verwendet Bob stattdessen die erste Zeile der Anweisungen – schreibe daher immer eine klare Beschreibung.
Alles unterhalb der schließenden --- ist der Satz von Anweisungen, den Bob befolgt, wenn der Skill aktiviert wird.
Bob Shell starten
Starte eine interaktive Sitzung im Agent-Modus aus dem Stammverzeichnis von Galaxium Travels:
bob chat --mode agentDer Agent-Modus gibt Bob den Tool-Zugriff, den er benötigt, um Skills zu aktivieren und Dateien zu bearbeiten. Wenn Bob Shell fragt, ob du dem Ordner vertraust, vertraue dem Ordner, damit Bob die Skills des Projekts laden kann.
Den Skill direkt aufrufen
Referenziere den Skill namentlich, damit du die Anweisungen sehen kannst, denen Bob folgt.
README.md bearbeiten
Bitte Bob, eine kleine, risikoarme Änderung vorzunehmen, damit du etwas zum Protokollieren hast:
Add a one-line note to the end of the README.md that says "Powered by IBM Bob."Bob zeigt die vorgeschlagene Änderung als Diff an. Wähle Approve, um die Bearbeitung anzuwenden.
Die Änderung mit dem Skill protokollieren
Gib $ ein, um den Skill-Picker zu öffnen, und wähle dann changelog-entry. Bob Shell fügt die Skill-Referenz in deinen Prompt ein:
$changelog-entry Add a changelog entry for this change.Bob bittet um Erlaubnis, den Skill zu verwenden und Dateien zu bearbeiten. Genehmige jede Anfrage. Bob lädt den changelog-entry-Skill und erstellt CHANGELOG.md, da das Projekt keines hat. Bob fügt dann einen Eintrag ähnlich dem folgenden hinzu:
## [Unreleased]
### Added
- Add "Powered by IBM Bob." note to the end of README.mdDen ersten Changelog-Eintrag überprüfen
Bitte Bob, dir den Changelog zu zeigen:
Show me @CHANGELOG.mdDer Eintrag stimmt mit dem Changelog-Eintrag überein, den Bob in Die Änderung mit dem Skill protokollieren generiert hat.
Bob den Skill automatisch aktivieren lassen
Nimm eine zweite Änderung vor und bitte Bob, sie zu protokollieren, ohne den Skill namentlich zu erwähnen. Bob kann anhand der Beschreibung des Skills erkennen, dass er zutrifft, und ihn von selbst aktivieren.
Den Gesprächsverlauf löschen
Gib den /clear-Slash-Befehl ein, um den Gesprächsverlauf zurückzusetzen, sodass Bob keine Erinnerung an die vorherige Skill-Referenz hat:
/clearEine zweite README.md-Bearbeitung vornehmen
Bitte Bob, eine zweite Bearbeitung vorzunehmen:
Add a one-line comment above the main heading in README.md that says "Galaxium Travels".Genehmige die Bearbeitung, wenn du dazu aufgefordert wirst.
Die Änderung protokollieren, ohne den Skill zu nennen
Bitte Bob, die Änderung zu protokollieren, ohne den Skill zu nennen:
Add an entry to CHANGELOG.md in Keep a Changelog format.Bob erkennt, dass die Anfrage zur Beschreibung des changelog-entry-Skills passt, und aktiviert ihn ohne eine $changelog-entry-Referenz. Genehmige die Skill- und Dateibearbeitungsanfragen, wenn du dazu aufgefordert wirst. Bob fügt einen weiteren Eintrag im gleichen Format hinzu.
Beide Changelog-Einträge überprüfen
Bitte Bob, dir den Changelog zu zeigen:
Show me @CHANGELOG.mdDer Changelog enthält jetzt zwei Einträge unter ## [Unreleased], ähnlich dem folgenden:
## [Unreleased]
### Added
- Add "Powered by IBM Bob." note to the end of README.md
- Add "Galaxium Travels" comment above the main heading in README.mdDeine Skills verwalten
Jeder Skill ist ein Ordner auf der Festplatte, daher verwaltest du Skills mit deinen üblichen Dateiwerkzeugen:
- Skills auflisten: Schau in
.bob/skills/für Projekt-Skills und~/.bob/skills/für globale Skills. Wenn beide Speicherorte einen Skill mit demselben Namen enthalten, hat der Projekt-Skill Vorrang. - Einen Skill bearbeiten: Bearbeite seine
SKILL.md-Datei. Du kannst dem Skill-Ordner auch unterstützende Dateien hinzufügen, z. B. Vorlagen oder Checklisten. - Auf einen Skill verweisen: Gib
$ein oder gib/skillsin Bob Shell ein, um eine Skill-Referenz in deinen Prompt einzufügen.
Fehlerbehebung
Der Skill erscheint nicht im $-Picker
Bestätige, dass der Dateipfad .bob/skills/changelog-entry/SKILL.md ist, das Front Matter name und description enthält und der Ordner vertrauenswürdig ist. Weitere Details findest du unter Vertrauenswürdige Ordner. Der Skill-Ordnername muss lowercase kebab-case sein, z. B. changelog-entry. Bob überspringt Ordner mit ungültigen Namen, ohne einen Fehler anzuzeigen. Starte Bob Shell nach dem Hinzufügen eines Skills neu.
Bob aktiviert den Skill nicht automatisch
Bob gleicht Anfragen mit der description des Skills ab. Formuliere den Prompt neu, sodass Wörter aus der Beschreibung vorkommen, oder referenziere den Skill direkt mit $changelog-entry.
Nächste Schritte
In diesem Tutorial hast du gelernt, wie Skills es dir ermöglichen, einen Workflow einmal zu definieren und Bob ihn konsistent anwenden zu lassen. Du kannst einen Skill explizit mit $<skill-name> referenzieren oder Bob ihn automatisch anhand seiner Beschreibung aktivieren lassen.
Um Vorlagen und unterstützende Dateien zu einem Skill hinzuzufügen, lies Skills.
Um eine spezialisierte Persona mit eigener Rolle, Anweisungen und Tool-Zugriff zu erstellen, lies Benutzerdefinierte Modi.