문서에이전트 시나리오

에이전트 시나리오

맥 주문 → 빌드 → 실패 수정·재빌드 → 남은 시간·연장

AI로 연결하기 →

에이전트 시나리오 직접 확인하기펼쳐보기

1. 맥을 사서 빌드

  1. catalog로 상품과 available_now를 봅니다. 0이면 join_waitlist.
  2. create_order {tier, hours: 24} → pay_url을 사용자에게 링크로 보여 주고 "열어서 동의·결제해 주세요"라고 말합니다.
  3. wait_order를 status가 ready가 될 때까지 반복합니다(한 번에 최대 60초). expired면 다시 주문합니다.
  4. build {script: "xcodebuild -scheme App test"}: 현재 폴더를 올리고 끝날 때까지 기다립니다.
json
{"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. 실패 원인을 고치고 재빌드

  1. build 결과가 실패(isError)면 failure와 failure_excerpt의 file·line·message를 읽습니다.
  2. 더 필요하면 build_log {id, mode: "failure", lines: 200}로 오류 줄 주변을 읽습니다.
  3. failure.fault가 platform이면 우리 쪽 문제입니다. 코드는 그대로 두고 잠시 뒤 다시 빌드합니다(XenoCI에 자동 보고됨).
  4. 사용자 코드 문제면 파일을 고치고 같은 build를 다시 부릅니다. 바뀐 파일만 올라갑니다.
json
{"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. 남은 시간을 보고 연장 링크 요청

  1. list_macs로 remaining_minutes·can_extend·extend_deadline_at을 봅니다.
  2. 작업이 남은 시간보다 길면 extend {rental_id, hours: 24, quote_only: true}로 금액을 확인하고 사용자에게 알립니다.
  3. 사용자가 원하면 extend {rental_id, hours: 24} → pay_url을 보여 주고 wait_order. 여러 대면 rental_ids로 한 번에 결제합니다.

오류가 나면

모든 오류는 error.code, error.retryable, error.next를 담습니다. next에 적힌 요청을 그대로 하면 됩니다. 예: no_capacity → join_waitlist.

에이전트 시나리오 - XenoCI