비대화형 세션 시작하기

비대화형 세션은 대화형 세션을 시작하지 않고 명령줄에서 직접 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-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

출력 형식

--format 옵션은 bob run의 출력 방식을 제어합니다. 스크립트나 CI pipeline에서 출력을 캡처할 때 이 옵션을 사용하세요.

pretty (기본값)

터미널 표시에 적합한 사람이 읽기 쉬운 텍스트 출력입니다.

json

세션이 완료된 후 단일 JSON 객체를 내보냅니다. 프로그래밍 방식으로 처리하기 위해 전체 결과를 캡처할 때 이 형식을 사용하세요.

스키마:

필드유형설명
typestring항상 "result"
timestampstringISO 8601 (날짜-시간 표준) 완료 타임스탬프
statusstring"success" 또는 "error"
statsobject세션 통계 — 아래 필드 참조
stats.task_idstring완료된 작업의 고유 식별자
stats.total_tokensnumber사용된 총 토큰 수
stats.input_tokensnumber사용된 입력 토큰 수
stats.output_tokensnumber생성된 출력 토큰 수
stats.cache_read_tokensnumber캐시에서 읽은 토큰 수
stats.cache_write_tokensnumber캐시에 쓴 토큰 수
stats.cache_rationumber캐시 히트 비율
stats.duration_msnumber세션 지속 시간 (밀리초)
stats.session_costsnumber세션 총 비용
stats.tool_callsnumber수행된 도구 호출 수
last_messagestring최종 어시스턴트 메시지

예시:

bob run --format json "What is the entry point?" > result.json

stream-json

세션이 진행되는 동안 줄바꿈으로 구분된 JSON (NDJSON) — 줄당 하나의 이벤트 객체 — 을 내보냅니다. 출력을 pipeline으로 스트리밍하거나 실시간으로 이벤트를 처리할 때 이 형식을 사용하세요.

이벤트 유형:

이벤트 유형주요 필드설명
messagerole, content, isReasoning?사용자 또는 어시스턴트 메시지
tool_usetool_name, tool_id, parametersBob이 시작한 도구 호출
tool_resulttool_id, status, output?, error?도구가 반환한 결과
errorseverity, message비용/턴 제한 도달
resultstatus, 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-licenseIBM 라이선스 계약에 동의하고 메시지 없이 계속 진행
이 주제는 어떤가요?