에이전트 시나리오
맥 주문 → 빌드 → 실패 수정·재빌드 → 남은 시간·연장
에이전트 시나리오 직접 확인하기펼쳐보기
1. 맥을 사서 빌드
catalog로 상품과available_now를 봅니다. 0이면join_waitlist.create_order {tier, hours: 24}→pay_url을 사용자에게 링크로 보여 주고 "열어서 동의·결제해 주세요"라고 말합니다.wait_order를 status가ready가 될 때까지 반복합니다(한 번에 최대 60초).expired면 다시 주문합니다.build {script: "xcodebuild -scheme App test"}: 현재 폴더를 올리고 끝날 때까지 기다립니다.
{"tool":"create_order","arguments":{"tier":"<catalog.tiers[0].id>","hours":24}}
→ {"order_no":"RT-…","status":"awaiting_payment","pay_url":"https://xenoci.com/…","next_step":"Show pay_url to the user …"}2. 실패 원인을 고치고 재빌드
- build 결과가 실패(isError)면
failure와failure_excerpt의file·line·message를 읽습니다. - 더 필요하면
build_log {id, mode: "failure", lines: 200}로 오류 줄 주변을 읽습니다. failure.fault가platform이면 우리 쪽 문제입니다. 코드는 그대로 두고 잠시 뒤 다시 빌드합니다(XenoCI에 자동 보고됨).- 사용자 코드 문제면 파일을 고치고 같은
build를 다시 부릅니다. 바뀐 파일만 올라갑니다.
{"tool":"build_log","arguments":{"id":"rb_…","mode":"failure"}}
→ {"excerpt":{"found":true,"file":"App/Login.swift","line":42,"message":"cannot find 'tokn' in scope","start_line":180,"end_line":240,"text":"…"}}3. 남은 시간을 보고 연장 링크 요청
list_macs로remaining_minutes·can_extend·extend_deadline_at을 봅니다.- 작업이 남은 시간보다 길면
extend {rental_id, hours: 24, quote_only: true}로 금액을 확인하고 사용자에게 알립니다. - 사용자가 원하면
extend {rental_id, hours: 24}→pay_url을 보여 주고wait_order. 여러 대면rental_ids로 한 번에 결제합니다.
오류가 나면
모든 오류는 error.code, error.retryable, error.next를 담습니다. next에 적힌 요청을 그대로 하면 됩니다. 예: no_capacity → join_waitlist.