Starten einer interaktiven Sitzung

Interaktive Sitzungen bieten eine Konversationsschnittstelle zu Bob direkt in deinem Terminal und ermöglichen Echtzeitunterstützung bei deinen Entwicklungsaufgaben.

Bob Shell interaktive Sitzung

Wann eine interaktive Sitzung sinnvoll ist

Interaktive Sitzungen eignen sich am besten für:

  • Explorative Coding-Sitzungen.
  • Debugging und Fehlerbehebung.
  • Erlernen neuer Konzepte oder Technologien.
  • Aufgaben, die mehrere Hin-und-Her-Austausche erfordern.
  • Projekte, bei denen du Änderungen vor der Anwendung prüfen möchtest.

Interaktive Sitzung starten

Verwende den Unterbefehl bob chat, um eine interaktive Sitzung in deinem Terminal zu starten.

Syntax

bob chat [options]

Sitzung starten

Öffne ein neues Terminalfenster.

Hinweis

Wenn du Bob Shell zum ersten Mal startest, musst du dich mit deiner IBMid anmelden und die Lizenzvereinbarung akzeptieren.

Navigiere zum Hauptverzeichnis deines Projekts.

Führe den folgenden Befehl aus, um eine interaktive Sitzung zu starten:

bob chat

Tipps für effektive Nutzung

  • Sei spezifisch in deinen Anfragen, um gezieltere Antworten zu erhalten.
  • Verwende @-Referenzen, um bei Bedarf Code-Kontext bereitzustellen.
  • Teile komplexe Aufgaben in kleinere Schritte auf.
  • Nutze Slash-Befehle, um schnell auf häufige Funktionen zuzugreifen.
  • Weise Bob Shell bei großen Codebasen auf die relevantesten Dateien hin.

Grundlegende Verwendung

Mit Bob Shell interagieren

  • Gib deine Anweisungen oder Fragen direkt im Terminal ein.
  • Drücke Enter, um deine Nachricht an Bob zu senden.
  • Bob Shell antwortet mit seiner Analyse und Vorschlägen.
  • Bei der Tool-Nutzung (z. B. Lesen oder Schreiben von Dateien) wirst du aufgefordert, jede Aktion zu genehmigen oder abzulehnen.

Tool-Genehmigungen

Wenn Bob Shell ein Tool verwenden möchte, erscheint ein Genehmigungsdialog. Der Dialog bietet folgende Optionen:

OptionBeschreibung
Approve OnceDiesen spezifischen Tool-Aufruf zulassen. Du wirst bei zukünftigen Aufrufen erneut gefragt.
Approve <group> tools for taskAlle Tools in derselben Tool-Gruppe für den Rest der Aufgabe zulassen. Wird für MCP-Tools nicht angezeigt.
Always Allow Command for taskEinen bestimmten Shell-Befehl für den Rest der Aufgabe zulassen.
RejectDen Tool-Aufruf ablehnen. Bob Shell führt die Aktion nicht aus.

Du kannst beim Genehmigen oder Ablehnen eines Aufrufs auch eine optionale Notiz hinzufügen. Die Notiz wird dem Modell als zusätzlicher Kontext weitergeleitet.

Um Auto-Approve umzuschalten, ohne den Genehmigungsdialog zu öffnen, drücke Ctrl+F auf macOS oder Alt+F auf Windows, Linux und WSL.

Drücke Escape, um Bob während des Streamens einer Antwort zu unterbrechen.

Mehrstufige Konversationen

Bob Shell behält den Kontext während der gesamten Konversation bei und ermöglicht dir:

  • Folgefragen zu stellen.
  • Frühere Anfragen zu verfeinern.
  • Auf früheren Antworten aufzubauen.

Dateien und Ressourcen referenzieren

Verwende das Symbol @, um auf Dateien in deinem Projekt zu verweisen:

Explain the functionality in @src/main.js

Bob Shell liest und analysiert die angegebene Datei, bevor es antwortet.

  • Dateien werden bis zu 100 KB pro Datei eingebettet.
  • Der gesamte eingebettete Inhalt über alle @-Erwähnungen hinweg ist auf 500 KB begrenzt.
  • Verzeichnisse zeigen bis zu 50 Einträge an.

Du kannst auch Model Context Protocol (MCP)-Ressourcen, die von verbundenen Servern bereitgestellt werden, im Format server:resource-name referenzieren:

@my-server:schema.json

Skills referenzieren

Gib $ gefolgt von einem Skill-Namen ein, um den Skill-Picker zu öffnen und eine Skill-Referenz in deine Eingabe einzufügen.

Dateiänderungen anzeigen

Wenn Bob Shell Dateien ändern muss, werden die vorgeschlagenen Änderungen im Terminal als CLI-Diff-Ansicht dargestellt.

Slash-Befehle verwenden

Gib / ein, um ein Menü verfügbarer Befehle aufzurufen:

  • Integrierte Befehle wie /help zur Hilfe
  • Moduswechselbefehle wie /mode ask
  • Von dir erstellte benutzerdefinierte Befehle

Eine vollständige Liste der verfügbaren Befehle findest du unter Slash-Befehle in Bob Shell.

Nachrichtenwarteschlange

Wenn Bob gerade eine Antwort streamt, kannst du weitere Nachrichten in die Warteschlange stellen, anstatt zu warten. Drücke Tab, um die aktuelle Eingabe in die Warteschlange zu stellen. Nachrichten in der Warteschlange werden automatisch der Reihe nach gesendet, sobald jede Runde abgeschlossen ist.

TasteAktion
TabAktuelle Eingabe in die Warteschlange stellen (oder sofort senden, wenn inaktiv)
Fokus in die Warteschlangenliste verschieben
EnterAusgewähltes Element in der Warteschlange bearbeiten
Tab (in der Warteschlange)Ausgewähltes Element sofort senden
Delete / BackspaceAusgewähltes Element aus der Warteschlange entfernen
Shift+K / Shift+JAusgewähltes Element nach oben / unten verschieben

Statusfußzeile

Die Fußzeile unterhalb des Eingabefelds zeigt Live-Sitzungsinformationen:

FeldBeschreibung
ModeName des aktiven Modus (z. B. Agent Mode) — ein roter (auto-approve)-Zusatz erscheint, wenn Auto-Approve aktiviert ist
ContextVerwendete Tokens im Verhältnis zur Kontextfenstergröße, mit Prozentangabe
CostAkkumulierte Kosten für die aktuelle Aufgabe in Bobcoins (🅞)

Sitzungsverwaltung

Vorherige Sitzung fortsetzen

Du kannst eine vorherige Sitzung beim Start von bob chat fortsetzen:

bob chat --resume <task-id>
bob chat --resume latest

Um die Task-ID einer früheren Sitzung zu finden, verwende bob --list-tasks:

bob --list-tasks

An eine benannte Instanz anhängen

Verwende --instance-id, um an eine bestimmte benannte Instanz anzuhängen statt eine neue zu starten:

bob chat --instance-id my-project

Allgemeine Utility-Flags

Einige Flags werden direkt mit bob aufgerufen, nicht mit bob chat oder bob run. Die folgenden Flags sind verfügbar:

FlagBeschreibung
--list-tasks [n|all]Gespeicherte Aufgaben für den aktuellen Workspace auflisten und beenden. Standardmäßig 20. Übergib eine Zahl oder all, um zu steuern, wie viele angezeigt werden.
--limit <n>Maximale Anzahl der mit --list-tasks anzuzeigenden Aufgaben.
--show-licenseDie IBM-Lizenzvereinbarung anzeigen und beenden.

Maschinenlesbarer Output

Wenn stdout kein TTY ist — zum Beispiel beim Pipen oder Umleiten der Ausgabe — wechselt --list-tasks von einer menschenlesbaren Tabelle zu NDJSON, mit einem JSON-Objekt pro Zeile.

Jede Zeile hat folgende Form:

{"id":"<uuid>","title":"<string>","status":"<string>","workspace":"<file-uri>","updatedAt":<unix-ms>}
FeldTypBeschreibung
idstring (UUID)Eindeutige Aufgaben-ID, verwendbar mit --resume
titlestringAufgabentitel, fällt zurück auf erste Nachricht, dann id
statusstringAufgabenstatus (active, completed, paused)
workspacestring (file URI)Absoluter Workspace-Pfad als file:-URI
updatedAtnumberZeitstempel der letzten Aktualisierung in Unix-Millisekunden

Beispiele

# In jq pipen
bob --list-tasks all | jq '.id'

# In Datei speichern und dann verarbeiten
bob --list-tasks 100 > tasks.ndjson

# Lizenzvereinbarung anzeigen
bob --show-license

Optionen

OptionBeschreibung
--instance-id <id>An eine bestimmte benannte Instanz anhängen statt eine neue zu starten
--resume <task-id>Eine vorherige Aufgabe anhand der Task-ID fortsetzen
--resume latestDie zuletzt bearbeitete Aufgabe fortsetzen
--mode <mode>Startmodus (z. B. agent, plan, ask)
--log-level <level>Protokoll-Ausführlichkeit: error, warn, info, debug oder trace
--auto-approveTool-Genehmigungsdialoge für die Sitzung unterdrücken. Hat keine Auswirkung in nicht vertrauenswürdigen Ordnern.
--trustDen aktuellen Ordner dauerhaft als vertrauenswürdig markieren und den ersten Vertrauensdialog überspringen. Entspricht der manuellen Auswahl von „Ordner vertrauen". Siehe Vertrauenswürdige Ordner.
--team-id <id>Unter einer bestimmten Team-ID ausführen (erforderlich bei Verwendung eines API-Schlüssels vom Typ general)
Wie ist dieses Thema?