대화형 세션 시작하기

대화형 세션은 터미널에서 직접 Bob과 대화할 수 있는 인터페이스를 제공하여 개발 작업을 실시간으로 지원합니다.

Bob Shell 대화형 세션

대화형 세션 사용 시기

대화형 세션은 다음과 같은 경우에 가장 적합합니다:

  • 탐색적 코딩 세션
  • 디버깅 및 문제 해결
  • 새로운 개념이나 기술 학습
  • 여러 번의 주고받음이 필요한 작업
  • 변경 사항이 적용되기 전에 검토가 필요한 프로젝트

대화형 세션 시작하기

bob chat 서브커맨드를 사용하여 터미널에서 대화형 세션을 시작하세요.

문법

bob chat [options]

세션 시작하기

새 터미널 창을 여세요.

참고

Bob Shell을 처음 시작할 때는 IBMid로 로그인하고 라이선스 계약에 동의해야 합니다.

프로젝트의 메인 디렉토리로 이동하세요.

다음 명령어를 실행하여 대화형 세션을 시작하세요:

bob chat

효과적인 사용 팁

  • 더 정확한 응답을 얻으려면 요청을 구체적으로 작성하세요.
  • 필요한 경우 @ 참조를 사용하여 코드 컨텍스트를 제공하세요.
  • 복잡한 작업은 더 작은 단계로 나누세요.
  • 슬래시 명령어를 사용하여 일반적인 기능에 빠르게 접근하세요.
  • 대규모 코드베이스를 작업할 때는 가장 관련성 높은 파일로 Bob Shell을 안내하세요.

기본 사용법

Bob Shell과 상호작용하기

  • 터미널에 지시사항이나 질문을 직접 입력하세요.
  • Enter를 눌러 Bob에게 메시지를 전송하세요.
  • Bob Shell이 분석 결과와 제안을 응답합니다.
  • 도구 사용(파일 읽기 또는 쓰기 등)에 대해서는 각 작업을 승인하거나 거부하도록 메시지가 표시됩니다.

도구 승인

Bob Shell이 도구 사용을 요청하면 승인 대화 상자가 표시됩니다. 대화 상자에는 다음 옵션이 있습니다:

옵션설명
Approve Once이 특정 도구 호출을 진행하도록 허용합니다. 이후 호출에 대해서는 다시 메시지가 표시됩니다.
Approve <group> tools for task작업의 나머지 기간 동안 동일한 도구 그룹의 모든 도구를 허용합니다. MCP 도구에는 표시되지 않습니다.
Always Allow Command for task작업의 나머지 기간 동안 특정 셸 명령어를 허용합니다.
Reject도구 호출을 거부합니다. Bob Shell이 해당 작업을 진행하지 않습니다.

승인 또는 거부 시 선택적 메모를 추가할 수 있습니다. 메모는 추가 컨텍스트로 모델에 전달됩니다.

승인 대화 상자를 열지 않고 자동 승인을 전환하려면 macOS에서는 Ctrl+F를, Windows, Linux, WSL에서는 Alt+F를 누르세요.

응답이 스트리밍되는 동안 Bob을 중단하려면 Escape를 누르세요.

멀티턴 대화

Bob Shell은 대화 전체에서 컨텍스트를 유지하여 다음을 가능하게 합니다:

  • 후속 질문하기
  • 이전 요청 수정하기
  • 이전 응답을 바탕으로 발전시키기

파일 및 리소스 참조하기

@ 기호를 사용하여 프로젝트의 파일을 참조하세요:

Explain the functionality in @src/main.js

이 명령은 응답하기 전에 Bob Shell이 지정된 파일을 읽고 분석하도록 지시합니다.

  • 파일은 파일당 최대 100 KB까지 인라인으로 삽입됩니다.
  • 모든 @ 참조의 총 인라인 콘텐츠는 500 KB로 제한됩니다.
  • 디렉토리는 최대 50개 항목을 표시합니다.

server:resource-name 형식을 사용하여 연결된 서버에서 제공하는 Model Context Protocol (MCP) 리소스도 참조할 수 있습니다:

@my-server:schema.json

스킬 참조하기

$ 다음에 스킬 이름을 입력하면 스킬 선택기가 열리고 프롬프트에 스킬 참조를 삽입할 수 있습니다.

파일 변경 사항 보기

Bob Shell이 파일을 수정해야 할 때 제안된 변경 사항을 CLI diff 보기로 터미널에 표시합니다.

슬래시 명령어 사용

/를 입력하면 사용 가능한 명령어 메뉴가 표시됩니다:

  • /help와 같은 내장 명령어
  • /mode ask와 같은 모드 전환 명령어
  • 사용자가 만든 사용자 지정 명령어

사용 가능한 명령어의 전체 목록은 Bob Shell의 슬래시 명령어를 참조하세요.

메시지 대기열

Bob이 응답을 스트리밍하는 중에도 기다리지 않고 추가 메시지를 대기열에 넣을 수 있습니다. Tab을 눌러 현재 입력을 대기열에 추가하세요. 대기열에 있는 메시지는 각 턴이 완료되는 즉시 순서대로 자동 전송됩니다.

동작
Tab현재 입력을 대기열에 추가 (유휴 상태일 때는 즉시 전송)
대기열 목록으로 포커스 이동
Enter선택한 대기 항목 편집
Tab (대기열에서)선택한 항목 즉시 전송
Delete / Backspace대기열에서 선택한 항목 제거
Shift+K / Shift+J선택한 항목 위/아래로 순서 변경

상태 표시줄

입력 필드 아래의 표시줄에는 세션 정보가 실시간으로 표시됩니다:

필드설명
Mode활성 모드 이름 (예: Agent Mode) — 자동 승인이 활성화된 경우 빨간색 (auto-approve) 접미사가 표시됩니다
Context사용된 토큰 수 대 컨텍스트 창 크기 (백분율 포함)
Cost현재 작업의 누적 비용 (Bobcoins 단위, 🅞)

세션 관리

이전 세션 재개하기

bob chat 시작 시 이전 세션을 재개할 수 있습니다:

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

이전 세션의 task ID를 찾으려면 bob --list-tasks를 사용하세요:

bob --list-tasks

이름이 지정된 인스턴스에 연결하기

새 인스턴스를 시작하는 대신 특정 이름의 인스턴스에 연결하려면 --instance-id를 사용하세요:

bob chat --instance-id my-project

일반 유틸리티 플래그

일부 플래그는 bob chat이나 bob run이 아닌 bob으로 직접 호출됩니다. 다음 플래그를 사용할 수 있습니다:

플래그설명
--list-tasks [n|all]현재 워크스페이스의 저장된 작업을 나열하고 종료합니다. 기본값은 20입니다. 표시할 개수를 제어하려면 숫자 또는 all을 전달하세요.
--limit <n>--list-tasks로 표시할 최대 작업 수입니다.
--show-licenseIBM 라이선스 계약을 표시하고 종료합니다.

기계 판독 가능 출력

stdout이 TTY가 아닌 경우(예: 출력을 파이프하거나 리디렉션하는 경우) --list-tasks는 사람이 읽을 수 있는 테이블에서 NDJSON으로 전환되며, 한 줄에 하나의 JSON 객체가 표시됩니다.

각 줄의 형식은 다음과 같습니다:

{"id":"<uuid>","title":"<string>","status":"<string>","workspace":"<file-uri>","updatedAt":<unix-ms>}
필드유형설명
idstring (UUID)--resume과 함께 사용할 수 있는 고유 작업 식별자
titlestring작업 제목, 첫 번째 메시지로 대체되고 그 다음 id로 대체됨
statusstring작업 상태 (active, completed, paused)
workspacestring (file URI)file: URI로 표시된 워크스페이스의 절대 경로
updatedAtnumberUnix 밀리초 단위의 마지막 업데이트 타임스탬프

예제

# jq로 파이프
bob --list-tasks all | jq '.id'

# 파일에 저장한 후 처리
bob --list-tasks 100 > tasks.ndjson

# 라이선스 계약 표시
bob --show-license

옵션

옵션설명
--instance-id <id>새 인스턴스를 시작하는 대신 특정 이름의 인스턴스에 연결합니다
--resume <task-id>task ID로 이전 작업을 재개합니다
--resume latest가장 최근 작업을 재개합니다
--mode <mode>시작 모드 (예: agent, plan, ask)
--log-level <level>로그 상세도: error, warn, info, debug, 또는 trace
--auto-approve세션 동안 도구 승인 프롬프트를 억제합니다. 신뢰할 수 없는 폴더에서는 효과가 없습니다.
--trust현재 폴더를 신뢰할 수 있는 폴더로 영구 저장하여 첫 번째 액세스 시 신뢰 대화 상자를 건너뜁니다. 수동으로 "폴더 신뢰"를 선택하는 것과 동일합니다. 신뢰할 수 있는 폴더를 참조하세요.
--team-id <id>특정 팀 ID로 실행합니다 (general 유형의 API 키를 사용할 때 필요)
이 주제는 어떤가요?