Iniciar uma sessão interativa

As sessões interativas fornecem uma interface conversacional com Bob diretamente no terminal, permitindo assistência em tempo real nas tuas tarefas de desenvolvimento.

Sessão interativa do Bob Shell

Quando usar uma sessão interativa

As sessões interativas funcionam melhor para:

  • Sessões de programação exploratória.
  • Depuração e resolução de problemas.
  • Aprender novos conceitos ou tecnologias.
  • Tarefas que requerem múltiplas trocas.
  • Projetos onde precisas de rever as alterações antes de serem aplicadas.

Iniciar uma sessão interativa

Usa o subcomando bob chat para iniciar uma sessão interativa no terminal.

Sintaxe

bob chat [options]

Iniciar uma sessão

Abre uma nova janela de terminal.

Nota

Ao iniciar o Bob Shell pela primeira vez, tens de fazer login com o teu IBMid e aceitar o acordo de licença.

Navega até ao diretório principal do teu projeto.

Executa o seguinte comando para iniciar uma sessão interativa:

bob chat

Dicas para uma utilização eficaz

  • Sê específico nos teus pedidos para obteres respostas mais direcionadas.
  • Usa referências @ para fornecer contexto de código quando necessário.
  • Para tarefas complexas, divide-as em passos menores.
  • Usa slash commands para aceder rapidamente a funcionalidades comuns.
  • Ao trabalhar com bases de código grandes, direciona o Bob Shell para os ficheiros mais relevantes.

Utilização básica

Interagir com Bob Shell

  • Escreve as tuas instruções ou perguntas diretamente no terminal.
  • Prime Enter para enviar a mensagem ao Bob.
  • Bob Shell responde com a sua análise e sugestões.
  • Para a utilização de tools (como ler ou escrever ficheiros), serás convidado a aprovar ou recusar cada ação.

Aprovações de tools

Quando Bob Shell solicita usar uma tool, aparece um diálogo de aprovação. O diálogo disponibiliza as seguintes opções:

OpçãoDescrição
Approve OncePermitir esta chamada de tool específica. Serás solicitado novamente para chamadas futuras.
Approve <group> tools for taskPermitir todas as tools no mesmo grupo de tools para o resto da tarefa. Não aparece para tools MCP.
Always Allow Command for taskPermitir um comando shell específico para o resto da tarefa.
RejectRecusar a chamada de tool. Bob Shell não prossegue com a ação.

Também podes adicionar uma nota opcional ao aprovar ou recusar uma chamada. A nota é enviada ao modelo como contexto adicional.

Para alternar a aprovação automática sem abrir o diálogo de aprovação, prime Ctrl+F no macOS ou Alt+F no Windows, Linux e WSL.

Prime Escape para interromper o Bob enquanto uma resposta está a ser transmitida.

Conversas multi-turno

Bob Shell mantém o contexto ao longo da conversa, permitindo-te:

  • Fazer perguntas de acompanhamento.
  • Refinar pedidos anteriores.
  • Construir com base em respostas anteriores.

Referenciar ficheiros e recursos

Usa o símbolo @ para referenciar ficheiros no teu projeto:

Explain the functionality in @src/main.js

Isto diz ao Bob Shell para ler e analisar o ficheiro especificado antes de responder.

  • Os ficheiros são incorporados até 100 KB por ficheiro.
  • O conteúdo total incorporado em todas as menções @ está limitado a 500 KB.
  • Os diretórios mostram até 50 entradas.

Também podes referenciar recursos do Model Context Protocol (MCP) expostos por servidores conectados usando o formato server:resource-name:

@my-server:schema.json

Referenciar skills

Escreve $ seguido do nome de uma skill para abrir o seletor de skills e inserir uma referência de skill no teu prompt.

Ver alterações a ficheiros

Quando Bob Shell precisa de modificar ficheiros, mostra-te as alterações propostas no terminal com uma vista diff CLI.

Usar slash commands

Escreve / para aceder a um menu de comandos disponíveis:

  • Comandos integrados como /help para obter ajuda
  • Comandos de troca de modo como /mode ask
  • Comandos personalizados que criaste

Para uma lista completa dos comandos disponíveis, consulta Slash commands no Bob Shell.

Fila de mensagens

Quando Bob está a transmitir uma resposta, podes colocar mensagens adicionais na fila em vez de esperar. Prime Tab para colocar o input atual na fila. As mensagens em fila são enviadas automaticamente por ordem, assim que cada turno é concluído.

TeclaAção
TabColocar o input atual na fila (ou enviar imediatamente quando inativo)
Mover o foco para a lista da fila
EnterEditar o item em fila selecionado
Tab (na fila)Enviar o item selecionado imediatamente
Delete / BackspaceRemover o item selecionado da fila
Shift+K / Shift+JReordenar o item selecionado para cima / baixo

Rodapé de estado

O rodapé abaixo do campo de input mostra informações em tempo real sobre a sessão:

CampoDescrição
ModeNome do modo ativo (por exemplo, Agent Mode) — um sufixo (auto-approve) a vermelho aparece quando a aprovação automática está ativada
ContextTokens usados versus tamanho da janela de contexto, com uma percentagem
CostCusto acumulado para a tarefa atual em Bobcoins (🅞)

Gestão de sessões

Retomar uma sessão anterior

Podes retomar uma sessão anterior ao iniciar bob chat:

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

Para encontrar o ID de tarefa de uma sessão anterior, usa bob --list-tasks:

bob --list-tasks

Conectar a uma instância com nome

Usa --instance-id para conectar a uma instância com nome específico em vez de iniciar uma nova:

bob chat --instance-id my-project

Flags de utilidade geral

Alguns flags são invocados diretamente com bob, não com bob chat ou bob run. Os seguintes flags estão disponíveis:

FlagDescrição
--list-tasks [n|all]Listar tarefas guardadas para o workspace atual e sair. Por defeito 20. Passa um número ou all para controlar quantas são mostradas.
--limit <n>Número máximo de tarefas a mostrar com --list-tasks.
--show-licenseMostrar o acordo de licença IBM e sair.

Output legível por máquina

Quando stdout não é um TTY — por exemplo, quando redirecionas ou canalizas o output — --list-tasks muda de uma tabela legível por humanos para NDJSON, com um objeto JSON por linha.

Cada linha tem a seguinte forma:

{"id":"<uuid>","title":"<string>","status":"<string>","workspace":"<file-uri>","updatedAt":<unix-ms>}
CampoTipoDescrição
idstring (UUID)Identificador único da tarefa, utilizável com --resume
titlestringTítulo da tarefa, recorrendo à primeira mensagem, depois id
statusstringEstado da tarefa (active, completed, paused)
workspacestring (file URI)Caminho absoluto do workspace como URI file:
updatedAtnumberTimestamp da última atualização em milissegundos Unix

Exemplos

# Canalizar para jq
bob --list-tasks all | jq '.id'

# Guardar em ficheiro e depois processar
bob --list-tasks 100 > tasks.ndjson

# Mostrar o acordo de licença
bob --show-license

Opções

OpçãoDescrição
--instance-id <id>Conectar a uma instância com nome específico em vez de iniciar uma nova
--resume <task-id>Retomar uma tarefa anterior pelo ID da tarefa
--resume latestRetomar a tarefa mais recente
--mode <mode>Modo inicial (por exemplo, agent, plan, ask)
--log-level <level>Verbosidade do log: error, warn, info, debug ou trace
--auto-approveSuprimir prompts de aprovação de tools para a sessão. Não tem efeito em pastas não confiáveis.
--trustPersistir a pasta atual como confiável, ignorando o diálogo de confiança no primeiro acesso. Equivalente a selecionar manualmente "Confiar na pasta". Ver Pastas confiáveis.
--team-id <id>Executar sob um ID de equipa específico (necessário ao usar uma chave API do tipo general)
Como está este tópico?