Benutzerdefinierte Modi
Passe Bobs Verhalten an, indem du benutzerdefinierte Modi mit spezialisierten Rollen, Werkzeugeinschränkungen und Team-Workflows erstellst. Konfiguriere sie global oder pro Projekt im YAML-Format.
Warum benutzerdefinierte Modi verwenden
- Spezialisierung: Optimieren Sie Modi für bestimmte Aufgaben wie Dokumentationserstellung, Test-Engineering oder Sicherheitsüberprüfungen
- Sicherheit: Beschränken Sie Befehle oder Dateizugriff für sensible Operationen
- Teamzusammenarbeit: Teilen Sie standardisierte Workflows in Ihrem Team
- Experimentieren: Testen Sie verschiedene Konfigurationen, ohne andere Modi zu beeinflussen
Moduskomponenten
| Komponente | Beschreibung |
|---|---|
| Slug | Eindeutige Kennung, die intern und für modusspezifische Anweisungsdateien verwendet wird |
| Name | Anzeigename, der in der Bob-Oberfläche angezeigt wird |
| Rollendefinition | Kernidentität und Expertise, die Bobs Persönlichkeit und Verhalten definiert |
| Wann zu verwenden | (Optional) Anleitung, wann dieser Modus zu verwenden ist, wird vom Orchestrator für Aufgabenkoordination verwendet |
| Verfügbare Werkzeuge | Werkzeuggruppen und Dateizugriffsberechtigungen, die der Modus verwenden kann |
| Benutzerdefinierte Anweisungen | (Optional) Zusätzliche Verhaltensrichtlinien oder Regeln |
| Beschreibung | (Optional) Kurze Zusammenfassung, die in der Modusauswahl angezeigt wird |
| Erlaubte Subagenten | (Optional) Beschränkt, welche Subagenten-Voreinstellungen der Modus verwenden kann |
Wie man benutzerdefinierte Modi erstellt
Sie können benutzerdefinierte Modi erstellen, indem Sie das Einstellungsmenü verwenden oder Konfigurationsdateien manuell bearbeiten.
Das Einstellungsmenü verwenden
- Klicken Sie auf das -Symbol im Bob-Panel, um die Einstellungen zu öffnen.
- Wählen Sie die Registerkarte Modi.
- Klicken Sie auf die -Schaltfläche, um einen neuen Modus zu erstellen.
- Füllen Sie die Felder für Name, Slug, Speicherort, Rollendefinition, Wann zu verwenden (optional), Beschreibung (optional), Verfügbare Werkzeuge und Benutzerdefinierte Anweisungen aus.
- Klicken Sie auf Speichern.
Bob speichert den neuen Modus im YAML-Format. Sie können Dateityp-Einschränkungen für die edit-Werkzeuggruppe durch manuelle YAML-Konfiguration hinzufügen.
Konfigurationsdateien manuell bearbeiten
Sie können Moduskonfigurationsdateien im YAML-Format manuell bearbeiten:
- Globale Modi: Bearbeiten Sie
~/.bob/settings/custom_modes.yamlüber Einstellungen → Modi → Globale Modi bearbeiten - Projektmodi: Bearbeiten Sie
.bob/custom_modes.yamlin Ihrem Projekt. Klicken Sie auf Einstellungen → Modi → Projektmodi bearbeiten
Diese Dateien definieren ein Array von benutzerdefinierten Modi im YAML-Format.
Beispiel (~/.bob/settings/custom_modes.yaml oder .bob/custom_modes.yaml):
customModes:
- slug: docs-writer
name: 📝 Dokumentationsschreiber
description: Schreibt und überarbeitet Markdown-Dokumentation.
roleDefinition: Sie sind ein technischer Redakteur, der sich auf klare Dokumentation spezialisiert hat.
whenToUse: Verwenden Sie diesen Modus zum Schreiben und Bearbeiten von Dokumentation.
customInstructions: Konzentrieren Sie sich auf Klarheit und Vollständigkeit in der Dokumentation.
groups:
- read
- - edit
- fileRegex: ".*\\.(md|mdx)$"
description: Nur Markdown-Dateien
- skillModuskonfigurationseigenschaften
Verfügbare Werkzeuggruppen
read: Dateien und Verzeichnisse lesenedit: Dateien ändern (kann mitfileRegexeingeschränkt werden)execute: Terminal-Befehle ausführenmcp: Auf MCP-Server zugreifenskill: Skills ladenworkflow: Vordefinierte Workflows startentodo: Aufgaben-Todo-Listen aktualisierensubtask: Unteraufgaben erstellensubagent: Subagenten erzeugenmode: Zu einem anderen Modus wechseln
Dateieinschränkungen für das Bearbeitungswerkzeug
Beschränken Sie, welche Dateien ein Modus bearbeiten kann, mit fileRegex im YAML-Format:
groups:
- read
- - edit
- fileRegex: ".*\\.(js|ts)$"
description: Nur JavaScript- und TypeScript-DateienHäufige Regex-Muster
| Muster | Passt auf | Beispieldateien |
|---|---|---|
.*\.md$ | Markdown-Dateien | readme.md, docs/guide.md |
^src/.* | Dateien im src-Verzeichnis | src/app.js, src/components/button.tsx |
| `.*.(css | scss)$` | CSS- und SCSS-Dateien |
| `^(?!.*(test | spec)).*.(js | ts)$` |
Bitten Sie Bob, Regex-Muster für Sie zu generieren, anstatt sie manuell zu schreiben.
Wichtige Validierungsregeln
slugdarf nur Buchstaben, Zahlen und Bindestriche verwenden.- Halten Sie jeden
slugeindeutig. Doppelte Slugs können verhindern, dass Modi korrekt geladen werden. - Verwenden Sie nur unterstützte Gruppennamen. Unbekannte Gruppennamen gewähren keinen Zugriff.
- Wenn Sie
groupsweglassen, erhält der Modus keine gruppierten Werkzeuge. - Wenn Sie
allowedSubagentsfestlegen, sind nur die aufgelisteten Subagenten-Voreinstellungen in diesem Modus verfügbar. - Ungültige
fileRegex-Werte können verhindern, dass die Modusdatei geladen wird.
Modusspezifische Anweisungen hinzufügen
Sie können modusspezifische Anweisungen entweder mit einer Verzeichnisstruktur (bevorzugt) oder einer einzelnen Datei hinzufügen.
Bevorzugte Methode (Verzeichnisstruktur):
Alternative Methode (einzelne Datei):
.bobrules-{mode-slug}Die Verzeichnismethode hat Vorrang, wenn beide existieren. Dateien im Verzeichnis werden alphabetisch geladen und mit der customInstructions-Eigenschaft aus Ihrer Moduskonfiguration kombiniert.
Um modusspezifische Anweisungen hinzuzufügen:
- Erstellen Sie ein
.bob/rules-{mode-slug}/-Verzeichnis in Ihrem Projektstamm (oder eine.bobrules-{mode-slug}-Datei). - Fügen Sie Anweisungsdateien zum Verzeichnis hinzu (z.B.
01-style-guide.mdund02-formatting.txt).
Bob lädt diese Anweisungen automatisch, wenn Sie den Modus verwenden.
Wie man Standardmodi überschreibt
Sie können Standard-Bob-Modi (wie Agent, Ask oder Plan) überschreiben, indem Sie einen benutzerdefinierten Modus mit demselben Slug in Ihrer Projektkonfiguration erstellen.
Um einen Standardmodus zu überschreiben:
- Klicken Sie auf das -Symbol im Bob-Panel, um die Einstellungen zu öffnen.
- Wählen Sie die Registerkarte Modi.
- Klicken Sie auf Projektmodi bearbeiten, um die
.bob/custom_modes.yaml-Datei zu bearbeiten. - Fügen Sie Ihre Moduskonfiguration mit dem Slug des Standardmodus hinzu, den Sie überschreiben möchten:
customModes:
- slug: ask # Entspricht dem Standard-Ask-Modus
name: ❓ Ask
roleDefinition: Du bist ein kompetenter Assistent für diese React- und TypeScript-Codebasis.
whenToUse: Verwende diesen Modus, um Fragen zur Codebasis zu stellen.
customInstructions: Verweise immer auf relevante Dateien in deinen Antworten. Schlage den Ask-Modus vor, wenn der Benutzer Änderungen vornehmen möchte.
groups:
- read
- mcp
- skillProjektspezifische Überschreibungen haben Vorrang vor globalen Überschreibungen, die Vorrang vor Standardwerten haben.
YAML-Format
YAML ist das bevorzugte und empfohlene Format für benutzerdefinierte Modi:
YAML-Vorteile:
- Besser lesbar mit einrückungsbasierter Struktur
- Unterstützt Kommentare (
#) - Sauberere Mehrzeilen-String-Syntax
- Weniger Interpunktion erforderlich
- Einfacher zu bearbeiten und zu pflegen
Automatische Migration:
- Globale Modi: Automatisch von Legacy-
custom_modes.jsonzucustom_modes.yamlbeim Start migriert - Projektmodi: Beim Bearbeiten über die Benutzeroberfläche in YAML konvertiert
Während Legacy-JSON-Formatdateien aus Gründen der Abwärtskompatibilität weiterhin unterstützt werden, sollten alle neuen Modi im YAML-Format erstellt werden.
Mehr erfahren
Probiere es praktisch aus und erweitere Bobs Fähigkeiten, indem du einen benutzerdefinierten Product-Manager-Modus erstellst.
Dateien ignorieren
Kontrollieren Sie, auf welche Dateien Bob zugreifen kann, indem Sie eine `.bobignore`-Datei in Ihrem Projekt erstellen.
Agent-Personas
Erstelle wiederverwendbare Persona-Dateien, die die Rolle, den Fokus und den Tool-Zugriff eines subagents festlegen. Definiere, worauf ein subagent achtet, wie er seine Ausgabe formatiert und was er nicht tun darf.