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.

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.
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 chatSuggerimenti 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:
| Opzione | Descrizione |
|---|---|
| Approva una volta | Consenti questa specifica chiamata allo strumento. Ti verrà chiesto di nuovo per le chiamate future. |
Approva gli strumenti <group> per il task | Consenti 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 task | Consenti un comando shell specifico per il resto del task. |
| Rifiuta | Nega 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.jsQuesto 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.jsonFare 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
/helpper 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.
| Tasto | Azione |
|---|---|
Tab | Accoda l'input corrente (o invia immediatamente quando inattivo) |
↑ | Sposta il focus nell'elenco della coda |
Enter | Modifica l'elemento in coda selezionato |
Tab (nella coda) | Invia immediatamente l'elemento selezionato |
Delete / Backspace | Rimuove l'elemento selezionato dalla coda |
Shift+K / Shift+J | Riordina l'elemento selezionato su / giù |
Footer di stato
Il footer sotto il campo di input mostra informazioni live sulla sessione:
| Campo | Descrizione |
|---|---|
| Modalità | Nome della modalità attiva (per esempio, Agent Mode) — appare un suffisso rosso (auto-approve) quando l'approvazione automatica è abilitata |
| Contesto | Token usati rispetto alla dimensione della finestra di contesto, con una percentuale |
| Costo | Costo 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 latestPer trovare l'ID del task di una sessione precedente, usa bob --list-tasks:
bob --list-tasksCollegarsi 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-projectFlag di utilità generale
Alcuni flag vengono invocati direttamente con bob, non con bob chat o bob run. Sono disponibili i seguenti flag:
| Flag | Descrizione |
|---|---|
--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-license | Visualizza 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>}| Campo | Tipo | Descrizione |
|---|---|---|
id | string (UUID) | Identificatore univoco del task, utilizzabile con --resume |
title | string | Titolo del task, che ricade sul primo messaggio, poi id |
status | string | Stato del task (active, completed, paused) |
workspace | string (file URI) | Percorso assoluto del workspace come URI file: |
updatedAt | number | Timestamp 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-licenseOpzioni
| Opzione | Descrizione |
|---|---|
--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 latest | Riprendi 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-approve | Sopprime i prompt di approvazione degli strumenti per la sessione. Non ha effetto nelle cartelle non attendibili. |
--trust | Persiste 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) |
Disinstallazione
Rimuovi Bob Shell dal tuo sistema usando il metodo appropriato per la tua installazione.
Avviare una sessione non interattiva
Le sessioni non interattive forniscono un metodo per usare Bob Shell direttamente dalla riga di comando senza entrare in una sessione interattiva. Usale per l'automazione, lo scripting e i task di elaborazione in batch.