비대화형 세션 시작하기
비대화형 세션은 대화형 세션을 시작하지 않고 명령줄에서 직접 Bob Shell을 사용하는 방법을 제공합니다. 자동화, 스크립팅 및 일괄 처리 작업에 사용하세요.
비대화형 세션 사용 시기
비대화형 세션은 다음과 같은 경우에 가장 적합합니다:
- Bob Shell을 자동화 스크립트에 통합하기.
- 단일 명령으로 여러 파일 처리하기.
- 대화형 세션을 시작하지 않고 빠른 인사이트 얻기.
- 코드에서 문서 생성하기.
- 구조화된 JSON 출력이 필요한 CI/CD pipeline.
비대화형 세션 시작하기
bob run 서브커맨드를 사용하여 명령줄에서 Bob Shell을 비대화형으로 실행하세요.
문법
bob run [options] [prompt...]stdin을 통해 프롬프트를 파이프할 수도 있습니다:
echo "Explain this project" | bob run효과적인 사용 팁
- 대용량 파일이나 프로젝트를 처리할 때 분석할 파일을 구체적으로 지정하세요.
- 스크립트에서 신뢰할 수 있는 파싱을 위해
--format json또는--format stream-json을 사용하세요. - 자동화된 워크플로에서 리소스 사용을 제한하려면
--max-cost와--max-turns를 사용하세요. - 여러 줄 프롬프트의 경우 파일에 저장하고
bob run으로 파이프하세요:
cat prompt.txt | bob run기본 사용법
프롬프트 직접 실행
bob run "Explain this project"콘텐츠를 입력으로 파이프하기
텍스트 콘텐츠를 Bob Shell에 파이프할 수 있습니다:
cat buildError.txt | bob run "Explain this build error"결과를 파일에 저장
결과를 저장하기 위해 출력을 리다이렉트하세요:
bob run "Review @bigFile.java" > review.md프로젝트 파일 참조하기
@ 기호를 사용하여 프로젝트의 파일을 참조하세요:
bob run "Summarize the functionality in @src/main.js"비용 및 턴 제한 설정
bob run --max-cost 0.50 --max-turns 10 "Refactor @app.js"세션 관리
이전 세션 재개하기
bob run --resume <task-id> "Continue from where we left off"
bob run --resume latest "Keep going"일반 유틸리티 플래그
일부 플래그는 bob run이나 bob chat이 아닌 bob으로 직접 호출됩니다. 저장된 작업을 나열하려면 다음 명령을 실행하세요:
bob --list-tasks다음 플래그를 사용할 수 있습니다:
| 플래그 | 설명 |
|---|---|
--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출력 형식
--format 옵션은 bob run의 출력 방식을 제어합니다. 스크립트나 CI pipeline에서 출력을 캡처할 때 이 옵션을 사용하세요.
pretty (기본값)
터미널 표시에 적합한 사람이 읽기 쉬운 텍스트 출력입니다.
json
세션이 완료된 후 단일 JSON 객체를 내보냅니다. 프로그래밍 방식으로 처리하기 위해 전체 결과를 캡처할 때 이 형식을 사용하세요.
스키마:
| 필드 | 유형 | 설명 |
|---|---|---|
type | string | 항상 "result" |
timestamp | string | ISO 8601 (날짜-시간 표준) 완료 타임스탬프 |
status | string | "success" 또는 "error" |
stats | object | 세션 통계 — 아래 필드 참조 |
stats.task_id | string | 완료된 작업의 고유 식별자 |
stats.total_tokens | number | 사용된 총 토큰 수 |
stats.input_tokens | number | 사용된 입력 토큰 수 |
stats.output_tokens | number | 생성된 출력 토큰 수 |
stats.cache_read_tokens | number | 캐시에서 읽은 토큰 수 |
stats.cache_write_tokens | number | 캐시에 쓴 토큰 수 |
stats.cache_ratio | number | 캐시 히트 비율 |
stats.duration_ms | number | 세션 지속 시간 (밀리초) |
stats.session_costs | number | 세션 총 비용 |
stats.tool_calls | number | 수행된 도구 호출 수 |
last_message | string | 최종 어시스턴트 메시지 |
예시:
bob run --format json "What is the entry point?" > result.jsonstream-json
세션이 진행되는 동안 줄바꿈으로 구분된 JSON (NDJSON) — 줄당 하나의 이벤트 객체 — 을 내보냅니다. 출력을 pipeline으로 스트리밍하거나 실시간으로 이벤트를 처리할 때 이 형식을 사용하세요.
이벤트 유형:
| 이벤트 유형 | 주요 필드 | 설명 |
|---|---|---|
message | role, content, isReasoning? | 사용자 또는 어시스턴트 메시지 |
tool_use | tool_name, tool_id, parameters | Bob이 시작한 도구 호출 |
tool_result | tool_id, status, output?, error? | 도구가 반환한 결과 |
error | severity, message | 비용/턴 제한 도달 |
result | status, stats, last_message | 세션 종료 시 내보내는 최종 요약 |
Pipeline 예시:
bob run --format stream-json "Audit @src/" \
| grep '"type":"result"' \
| jq '.last_message'bob run으로 비대화형 실행 시 모든 도구가 사전 승인됩니다. 실행 중에 도구 호출 승인 메시지가 표시되지 않습니다.
옵션
| 옵션 | 설명 |
|---|---|
--format <format> | 출력 형식: pretty (기본값), json, 또는 stream-json |
--mode <mode> | 시작 모드 (예: agent, plan, ask) |
--max-cost <bobcoins> | 세션이 중지되기 전 Bobcoins 기준 최대 지출 금액 |
--max-turns <n> | 세션이 중지되기 전 최대 에이전트 턴 수 |
--disable-mcp | 이 세션의 모든 MCP 서버 비활성화 |
--disable-subagents | 이 세션의 서브에이전트 생성 비활성화 |
--disable-tool-groups <groups> | 특정 도구 그룹 비활성화 (쉼표로 구분, 예: execute,mcp) |
--workspace <path> | 워크스페이스 루트 디렉토리 재정의 |
--log-level <level> | 로그 상세도: error, warn, info, debug, 또는 trace |
--resume <task-id> | task ID로 이전 작업을 재개합니다 |
--resume latest | 가장 최근 작업을 재개합니다 |
--team-id <id> | 특정 팀 컨텍스트로 실행 (general 유형의 API key 사용 시 필수) |
--trust | 현재 폴더를 신뢰할 수 있는 폴더로 표시 |
--accept-license | IBM 라이선스 계약에 동의하고 메시지 없이 계속 진행 |