Avviare una sessione interattiva

Le sessioni interattive forniscono un'interfaccia conversazionale con Bob direttamente nel tuo terminale, consentendo assistenza in tempo reale per le tue attività di sviluppo.

Sessione interattiva di Bob Shell

Quando usare una sessione interattiva

Le sessioni interattive funzionano meglio per:

  • Sessioni di codifica esplorative.
  • Debug e risoluzione dei problemi.
  • Apprendimento di nuovi concetti o tecnologie.
  • Task che richiedono più scambi bidirezionali.
  • Progetti in cui hai bisogno di rivedere le modifiche prima che vengano applicate.

Avviare una sessione interattiva

Usa il sottocomando bob chat per avviare una sessione interattiva nel tuo terminale.

Sintassi

bob chat [options]

Avviare una sessione

Apri una nuova finestra del terminale.

Nota

Quando avvii Bob Shell per la prima volta, devi accedere con il tuo IBMid e accettare il contratto di licenza.

Naviga nella directory principale del tuo progetto.

Esegui il seguente comando per avviare una sessione interattiva:

bob chat

Suggerimenti per un uso efficace

  • Sii specifico nelle tue richieste per ottenere risposte più mirate.
  • Usa i riferimenti @ per fornire contesto del codice quando necessario.
  • Per task complessi, suddividili in passaggi più piccoli.
  • Usa i comandi slash per accedere rapidamente alle funzionalità comuni.
  • Quando lavori con codebase di grandi dimensioni, indirizza Bob Shell verso i file più rilevanti.

Utilizzo di base

Interagire con Bob Shell

  • Digita le tue istruzioni o domande direttamente nel terminale.
  • Premi Invio per inviare il tuo messaggio a Bob.
  • Bob Shell risponde con la sua analisi e i suoi suggerimenti.
  • Per l'utilizzo degli strumenti (come la lettura o la scrittura di file), ti viene chiesto di approvare o rifiutare ogni azione.

Approvazioni degli strumenti

Quando Bob Shell richiede di usare uno strumento, appare un dialogo di approvazione. Il dialogo fornisce le seguenti opzioni:

OpzioneDescrizione
Approva una voltaConsenti questa specifica chiamata allo strumento. Ti verrà chiesto di nuovo per le chiamate future.
Approva gli strumenti <group> per il taskConsenti tutti gli strumenti nello stesso gruppo di strumenti per il resto del task. Non mostrato per gli strumenti MCP.
Consenti sempre il comando per il taskConsenti un comando shell specifico per il resto del task.
RifiutaNega la chiamata allo strumento. Bob Shell non procede con l'azione.

Puoi anche aggiungere una nota opzionale quando approvi o rifiuti una chiamata. La nota viene inoltrata al modello come contesto aggiuntivo.

Per attivare o disattivare l'approvazione automatica senza aprire la finestra di dialogo, premi Ctrl+F su macOS o Alt+F su Windows, Linux e WSL.

Premi Escape per interrompere Bob mentre la risposta è in streaming.

Conversazioni a più turni

Bob Shell mantiene il contesto durante tutta la conversazione, permettendoti di:

  • Fare domande di approfondimento.
  • Affinare le richieste precedenti.
  • Costruire sulle risposte precedenti.

Riferirsi a file e risorse

Usa il simbolo @ per fare riferimento ai file nel tuo progetto:

Explain the functionality in @src/main.js

Questo indica a Bob Shell di leggere e analizzare il file specificato prima di rispondere.

  • I file vengono incorporati fino a 100 KB per file.
  • Il contenuto totale incorporato tramite tutte le menzioni @ è limitato a 500 KB.
  • Le directory mostrano fino a 50 voci.

Puoi anche fare riferimento alle risorse Model Context Protocol (MCP) esposte dai server connessi usando il formato server:nome-risorsa:

@my-server:schema.json

Fare riferimento alle skill

Digita $ seguito dal nome di una skill per aprire il selettore di skill e inserire un riferimento alla skill nel tuo prompt.

Visualizzare le modifiche ai file

Quando Bob Shell deve modificare dei file, mostra le modifiche proposte nel terminale con una vista diff CLI.

Usare i comandi slash

Digita / per accedere a un menu dei comandi disponibili:

  • Comandi integrati come /help per assistenza
  • Comandi per cambiare modalità come /mode ask
  • Comandi personalizzati che hai creato

Per un elenco completo dei comandi disponibili, consulta Comandi slash in Bob Shell.

Coda messaggi

Quando Bob sta trasmettendo attivamente una risposta, puoi accodare messaggi aggiuntivi invece di aspettare. Premi Tab per accodare l'input corrente. I messaggi in coda vengono inviati automaticamente nell'ordine in cui si trovano non appena ogni turno viene completato.

TastoAzione
TabAccoda l'input corrente (o invia immediatamente quando inattivo)
Sposta il focus nell'elenco della coda
EnterModifica l'elemento in coda selezionato
Tab (nella coda)Invia immediatamente l'elemento selezionato
Delete / BackspaceRimuove l'elemento selezionato dalla coda
Shift+K / Shift+JRiordina l'elemento selezionato su / giù

Il footer sotto il campo di input mostra informazioni live sulla sessione:

CampoDescrizione
ModalitàNome della modalità attiva (per esempio, Agent Mode) — appare un suffisso rosso (auto-approve) quando l'approvazione automatica è abilitata
ContestoToken usati rispetto alla dimensione della finestra di contesto, con una percentuale
CostoCosto accumulato per il task corrente in Bobcoins (🅞)

Gestione delle sessioni

Riprendere una sessione precedente

Puoi riprendere una sessione precedente all'avvio di bob chat:

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

Per trovare l'ID del task di una sessione precedente, usa bob --list-tasks:

bob --list-tasks

Collegarsi a un'istanza con nome

Usa --instance-id per collegarti a una specifica istanza con nome invece di avviarne una nuova:

bob chat --instance-id my-project

Flag di utilità generale

Alcuni flag vengono invocati direttamente con bob, non con bob chat o bob run. Sono disponibili i seguenti flag:

FlagDescrizione
--list-tasks [n|all]Elenca i task salvati per il workspace corrente ed esci. Predefinito 20. Passa un numero o all per controllare quanti vengono mostrati.
--limit <n>Numero massimo di task da visualizzare con --list-tasks.
--show-licenseVisualizza il contratto di licenza IBM ed esci.

Output leggibile dalla macchina

Quando stdout non è un TTY — per esempio, quando reindirizzi o incanali l'output — --list-tasks passa da una tabella leggibile dall'uomo a NDJSON, con un oggetto JSON per riga.

Ogni riga ha la seguente forma:

{"id":"<uuid>","title":"<string>","status":"<string>","workspace":"<file-uri>","updatedAt":<unix-ms>}
CampoTipoDescrizione
idstring (UUID)Identificatore univoco del task, utilizzabile con --resume
titlestringTitolo del task, che ricade sul primo messaggio, poi id
statusstringStato del task (active, completed, paused)
workspacestring (file URI)Percorso assoluto del workspace come URI file:
updatedAtnumberTimestamp dell'ultimo aggiornamento in millisecondi Unix

Esempi

# Incanalare in jq
bob --list-tasks all | jq '.id'

# Salvare su file e poi elaborare
bob --list-tasks 100 > tasks.ndjson

# Visualizzare il contratto di licenza
bob --show-license

Opzioni

OpzioneDescrizione
--instance-id <id>Collegati a una specifica istanza con nome invece di avviarne una nuova
--resume <task-id>Riprendi un task precedente tramite il suo ID
--resume latestRiprendi il task più recente
--mode <mode>Modalità di avvio (per esempio, agent, plan, ask)
--log-level <level>Livello di verbosità dei log: error, warn, info, debug o trace
--auto-approveSopprime i prompt di approvazione degli strumenti per la sessione. Non ha effetto nelle cartelle non attendibili.
--trustPersiste la cartella corrente come attendibile, saltando il dialogo di fiducia al primo accesso. Equivalente a selezionare manualmente "Considera attendibile la cartella". Vedi Cartelle attendibili.
--team-id <id>Esegui sotto un ID team specifico (richiesto quando si usa una chiave API di tipo general)
Come valuti questo argomento?