Uruchamianie sesji interaktywnej

Sesje interaktywne zapewniają interfejs konwersacyjny z Bob bezpośrednio w terminalu, umożliwiając pomoc w czasie rzeczywistym przy zadaniach deweloperskich.

Sesja interaktywna Bob Shell

Kiedy używać sesji interaktywnej

Sesje interaktywne sprawdzają się najlepiej w przypadku:

  • Eksploracyjnych sesji kodowania.
  • Debugowania i rozwiązywania problemów.
  • Nauki nowych koncepcji lub technologii.
  • Zadań wymagających wielu wymian zwrotnych.
  • Projektów, w których musisz przeglądać zmiany przed ich zastosowaniem.

Uruchamianie sesji interaktywnej

Użyj podpolecenia bob chat, aby uruchomić sesję interaktywną w terminalu.

Składnia

bob chat [options]

Uruchamianie sesji

Otwórz nowe okno terminala.

Uwaga

Gdy uruchamiasz Bob Shell po raz pierwszy, musisz zalogować się za pomocą IBMid i zaakceptować umowę licencyjną.

Przejdź do głównego katalogu swojego projektu.

Uruchom następujące polecenie, aby rozpocząć sesję interaktywną:

bob chat

Wskazówki dotyczące efektywnego użycia

  • Bądź precyzyjny w swoich żądaniach, aby uzyskać bardziej trafne odpowiedzi.
  • Używaj odwołań @, aby zapewnić kontekst kodu w razie potrzeby.
  • W przypadku złożonych zadań dziel je na mniejsze kroki.
  • Używaj slash commands, aby szybko uzyskać dostęp do popularnych funkcji.
  • Podczas pracy z dużymi bazami kodu kieruj Bob Shell do najbardziej odpowiednich plików.

Podstawowe użycie

Interakcja z Bob Shell

  • Wpisuj instrukcje lub pytania bezpośrednio w terminalu.
  • Naciśnij Enter, aby wysłać wiadomość do Bob.
  • Bob Shell odpowiada swoją analizą i sugestiami.
  • W przypadku użycia narzędzi (np. odczytywania lub zapisywania plików) zostaniesz poproszony o zatwierdzenie lub odrzucenie każdej akcji.

Zatwierdzanie narzędzi

Gdy Bob Shell prosi o użycie narzędzia, pojawia się okno dialogowe zatwierdzenia. Okno dialogowe zapewnia następujące opcje:

OpcjaOpis
Approve OnceZezwól na wykonanie tego konkretnego wywołania narzędzia. Zostaniesz ponownie zapytany przy kolejnych wywołaniach.
Approve <group> tools for taskZezwól na wszystkie narzędzia w tej samej grupie narzędzi na czas trwania zadania. Nie jest wyświetlane dla narzędzi MCP.
Always Allow Command for taskZezwól na konkretne polecenie powłoki na czas trwania zadania.
RejectOdrzuć wywołanie narzędzia. Bob Shell nie kontynuuje akcji.

Możesz również dodać opcjonalną notatkę podczas zatwierdzania lub odrzucania wywołania. Notatka jest przekazywana do modelu jako dodatkowy kontekst.

Aby przełączyć automatyczne zatwierdzanie bez otwierania okna dialogowego, naciśnij Ctrl+F na macOS lub Alt+F na Windows, Linux i WSL.

Naciśnij Escape, aby przerwać Bob, gdy odpowiedź jest przesyłana strumieniowo.

Rozmowy wieloturowe

Bob Shell utrzymuje kontekst przez całą rozmowę, co pozwala:

  • Zadawać pytania uzupełniające.
  • Doprecyzowywać poprzednie żądania.
  • Budować na wcześniejszych odpowiedziach.

Odwoływanie się do plików i zasobów

Użyj symbolu @, aby odwołać się do plików w swoim projekcie:

Explain the functionality in @src/main.js

Informuje to Bob Shell o odczytaniu i przeanalizowaniu wskazanego pliku przed udzieleniem odpowiedzi.

  • Pliki są dołączane do kontekstu do 100 KB na plik.
  • Łączna ilość dołączonej treści ze wszystkich wzmianek @ jest ograniczona do 500 KB.
  • Katalogi pokazują do 50 pozycji.

Możesz też odwoływać się do zasobów Model Context Protocol (MCP) udostępnianych przez połączone serwery, używając formatu server:resource-name:

@my-server:schema.json

Odwoływanie się do umiejętności

Wpisz $, a następnie nazwę umiejętności, aby otworzyć wybierak umiejętności i wstawić odwołanie do umiejętności w swoim zapytaniu.

Przeglądanie zmian w plikach

Gdy Bob Shell musi zmodyfikować pliki, pokazuje proponowane zmiany w terminalu z widokiem diff CLI.

Używanie slash commands

Wpisz /, aby uzyskać dostęp do menu dostępnych poleceń:

  • Wbudowane polecenia, takie jak /help, w celu uzyskania pomocy
  • Polecenia przełączania trybów, takie jak /mode ask
  • Niestandardowe polecenia, które utworzyłeś

Aby zapoznać się z pełną listą dostępnych poleceń, zobacz Slash commands w Bob Shell.

Kolejka wiadomości

Gdy Bob aktywnie przesyła odpowiedź strumieniowo, możesz kolejkować dodatkowe wiadomości zamiast czekać. Naciśnij Tab, aby umieścić bieżące dane wejściowe w kolejce. Wiadomości w kolejce są wysyłane automatycznie w kolejności, gdy tylko każda tura dobiegnie końca.

KlawiszAkcja
TabDodaj bieżące dane do kolejki (lub wyślij natychmiast, gdy bezczynny)
Przenieś fokus na listę kolejki
EnterEdytuj wybrany element w kolejce
Tab (w kolejce)Wyślij wybrany element natychmiast
Delete / BackspaceUsuń wybrany element z kolejki
Shift+K / Shift+JZmień kolejność wybranego elementu w górę / w dół

Stopka statusu

Stopka poniżej pola wprowadzania pokazuje informacje o bieżącej sesji na żywo:

PoleOpis
ModeNazwa aktywnego trybu (na przykład Agent Mode) — czerwony sufiks (auto-approve) pojawia się, gdy automatyczne zatwierdzanie jest włączone
ContextZużyte tokeny w stosunku do rozmiaru okna kontekstu, z wartością procentową
CostSkumulowany koszt bieżącego zadania w Bobcoinach (🅞)

Zarządzanie sesją

Wznawianie poprzedniej sesji

Możesz wznowić poprzednią sesję podczas uruchamiania bob chat:

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

Aby znaleźć identyfikator zadania poprzedniej sesji, użyj bob --list-tasks:

bob --list-tasks

Przyłączanie do nazwanej instancji

Użyj --instance-id, aby przyłączyć się do konkretnej nazwanej instancji zamiast uruchamiać nową:

bob chat --instance-id my-project

Ogólne flagi narzędziowe

Niektóre flagi są wywoływane bezpośrednio za pomocą bob, a nie bob chat lub bob run. Dostępne są następujące flagi:

FlagaOpis
--list-tasks [n|all]Wyświetl zapisane zadania dla bieżącego workspace i zakończ. Domyślnie 20. Przekaż liczbę lub all, aby kontrolować, ile jest wyświetlanych.
--limit <n>Maksymalna liczba zadań do wyświetlenia za pomocą --list-tasks.
--show-licenseWyświetl umowę licencyjną IBM i zakończ.

Dane wyjściowe czytelne maszynowo

Gdy stdout nie jest TTY — na przykład podczas przekierowywania lub potokowania danych wyjściowych — --list-tasks przełącza się z tabeli czytelnej dla człowieka na NDJSON, z jednym obiektem JSON na wiersz.

Każdy wiersz ma następującą postać:

{"id":"<uuid>","title":"<string>","status":"<string>","workspace":"<file-uri>","updatedAt":<unix-ms>}
PoleTypOpis
idstring (UUID)Unikalny identyfikator zadania, możliwy do użycia z --resume
titlestringTytuł zadania, powrót do pierwszej wiadomości, następnie id
statusstringStatus zadania (active, completed, paused)
workspacestring (file URI)Bezwzględna ścieżka workspace jako URI file:
updatedAtnumberZnacznik czasu ostatniej aktualizacji w milisekundach Unix

Przykłady

# Potok do jq
bob --list-tasks all | jq '.id'

# Zapisz do pliku, a następnie przetwórz
bob --list-tasks 100 > tasks.ndjson

# Wyświetl umowę licencyjną
bob --show-license

Opcje

OpcjaOpis
--instance-id <id>Przyłącz do konkretnej nazwanej instancji zamiast uruchamiać nową
--resume <task-id>Wznów poprzednie zadanie według identyfikatora zadania
--resume latestWznów najnowsze zadanie
--mode <mode>Tryb startowy (na przykład agent, plan, ask)
--log-level <level>Szczegółowość logów: error, warn, info, debug lub trace
--auto-approvePomija monity o zatwierdzenie narzędzi dla sesji. Nie ma efektu w niezaufanych folderach.
--trustTrwale oznacza bieżący folder jako zaufany, pomijając okno dialogowe zaufania przy pierwszym dostępie. Równoważne ręcznemu wybraniu „Zaufaj folderowi". Zobacz Zaufane foldery.
--team-id <id>Uruchom pod określonym identyfikatorem zespołu (wymagane przy użyciu klucza API typu general)
Jak oceniasz ten temat?