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

대화형 세션 사용 시기
대화형 세션은 다음과 같은 경우에 가장 적합합니다:
- 탐색적 코딩 세션
- 디버깅 및 문제 해결
- 새로운 개념이나 기술 학습
- 여러 번의 주고받음이 필요한 작업
- 변경 사항이 적용되기 전에 검토가 필요한 프로젝트
대화형 세션 시작하기
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-license | IBM 라이선스 계약을 표시하고 종료합니다. |
기계 판독 가능 출력
stdout이 TTY가 아닌 경우(예: 출력을 파이프하거나 리디렉션하는 경우) --list-tasks는 사람이 읽을 수 있는 테이블에서 NDJSON으로 전환되며, 한 줄에 하나의 JSON 객체가 표시됩니다.
각 줄의 형식은 다음과 같습니다:
{"id":"<uuid>","title":"<string>","status":"<string>","workspace":"<file-uri>","updatedAt":<unix-ms>}| 필드 | 유형 | 설명 |
|---|---|---|
id | string (UUID) | --resume과 함께 사용할 수 있는 고유 작업 식별자 |
title | string | 작업 제목, 첫 번째 메시지로 대체되고 그 다음 id로 대체됨 |
status | string | 작업 상태 (active, completed, paused) |
workspace | string (file URI) | file: URI로 표시된 워크스페이스의 절대 경로 |
updatedAt | number | Unix 밀리초 단위의 마지막 업데이트 타임스탬프 |
예제
# 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 키를 사용할 때 필요) |