{"ok":true,"trace_id":"1897b1d4-b47e-4eb8-a500-0db399ae8f75","name":"바른아이티 AI 커넥트","version":"2.3","api":"https://bareunit.com/exn/api/ai_connect.php","mcp":"https://bareunit.com/exn/api/ai_connect.php?transport=mcp","discovery":{"guide_url":"https://bareunit.com/exn/ai-connect-guide.php","catalog_url":"https://bareunit.com/exn/ai-connect-catalog.php","public_scope":"로그인 전 공개 상품·기획전 정보이며 가격 견적은 고객 연결 승인 후 확인합니다.","exhibition_filter":"공개 카탈로그 기획전의 id를 문자열 exhibition으로 catalog/recommend에 전달하세요."},"new_purchase_enabled":true,"protocol":{"input":"JSON","output":"JSON","authentication":"Bearer","keys":{"duration_days":30,"renewal":"고객 카카오 재로그인 후 새 연결 승인","same_member_room":true}},"intake":{"version":"1.0","entry_example":"휴대폰 싼 거 알아봐 줘","stage":"before_recommendation","authentication_required":false,"instruction":"고객 조건을 모르는 상태로 방문해도 됩니다. 아래 세 항목 중 고객이 명확히 알려준 정보만 재사용하고, 모르는 항목은 고객에게 먼저 물어본 뒤 답변을 받아 추천을 요청하세요. 미확정 값을 임의로 채우지 마세요.","customer_message":"휴대폰은 지금 쓰는 통신사와 이동 여부에 따라 가격이 달라요. 바른아이티에서 조건에 맞는 저렴한 상품을 비교해 준다고 해요. 아직 모르는 아래 조건만 확인해 주시면 추천을 받아볼게요.","questions":[{"field":"beforeCarrier","question":"지금 어느 통신사를 사용하고 계세요? 알뜰폰이면 알뜰폰이라고 알려주세요. 새 번호로 가입하려는 경우에는 신규가입이라고 알려주세요.","answers":[{"label":"SKT","value":"SKT"},{"label":"KT","value":"KT"},{"label":"LG U+","value":"LGU"},{"label":"알뜰폰","value":"알뜰폰"},{"label":"새 번호로 신규가입","value":"없음"}]},{"field":"carrier_preference","question":"지금 통신사를 그대로 쓰실 건가요, 더 저렴하면 다른 통신사로 옮겨도 될까요? 원하는 통신사가 따로 있으면 알려주세요.","answers":[{"label":"지금 통신사 유지","value":"keep"},{"label":"통신사 상관없이 저렴한 조건 비교","value":"any"},{"label":"SKT 희망","value":"SKT"},{"label":"KT 희망","value":"KT"},{"label":"LG U+ 희망","value":"LGU"}]},{"field":"minimum_plan_after_retention","question":"처음 요금제를 유지해야 하는 기간이 끝나면, 변경 가능한 가장 저렴한 요금제로 바꿀 계획이세요?","answers":[{"label":"네, 최저 요금제로 변경할 예정","value":true},{"label":"아니요, 추천받은 요금제를 계속 사용할 예정","value":false}]}],"unknown_answer":"잘 모르겠다는 답은 확정 답변이 아닙니다. 통신사나 이동 의사를 추측하지 말고 확인을 도와주세요. 요금제 변경 계획도 설명 후 선택받으세요.","conditional_questions":["신규가입이면 현재 통신사 유지는 선택할 수 없습니다. 원하는 통신사 또는 통신사 무관 비교를 확인하세요.","알뜰폰 유지 희망은 현재 추천 통신사 SKT·KT·LGU의 유지 조건과 다릅니다. 해당 통신사로 이동해도 되는지 확인하고, 동의 없이 번호이동으로 바꾸지 마세요."],"product_scope":"휴대폰 싼 것처럼 넓은 요청도 가능합니다. 고객이 기종·용량을 지정하지 않았으면 이를 필수 질문으로 추가하지 말고 허용 상품에서 비교하세요. 명시한 기종·형태·용량 조건은 보존하고 지원 필터로 표현하지 못하면 결과에서 확인하세요.","after_answers":{"without_connection":"세 조건을 확인한 뒤 authorize_start로 고객 연결 링크를 안내하세요. 고객이 직접 로그인·연결 승인하면 추천 조건을 유지한 채 authorize_exchange 후 recommend를 호출합니다. 연결 승인은 구매 신청이 아닙니다.","with_connection":"유효한 연결 키가 있으면 로그인 요청을 반복하지 말고 확인된 조건으로 recommend를 호출하세요.","recommendation":"24개월 총비용 기준 첫 후보 5개를 서버 결과로 비교합니다. 유지기간 후 최저요금제로 변경할 고객에게는 그 이후 납부액도 서버 계산 결과로 안내하세요. 공개 상품 목록은 가격순이 아닙니다."},"defer_until_application":["배송주소·연락처·약관·최종 신청 의사는 실제 신청 단계에서 확인합니다. 특히 배송주소는 저장된 주소가 있어도 이번 배송지인지 고객에게 다시 확인하세요."],"privacy":"이 로그인 전 안내에는 이름·전화번호·배송주소 등 개인정보를 보내지 마세요. 상담방과 키는 기존 로그인·연결 승인 절차에서 발급합니다."},"flow":["guide","고객에게 모르는 구매 조건을 질문하고 답변 확인","authorize_start","고객이 authorization_url에서 직접 로그인·가입·연결 승인","authorize_exchange","catalog / recommend","quote","order_schema","purchase_create","order_submit","events"],"ask_customer":["현재 이용 통신사","통신사 유지·좋은 조건으로 이동·특정 통신사 이동 여부","의무 유지기간 후 최저 요금제 변경 여부","이번 구매에 사용할 배송주소 재확인"],"input_contract":{"json_post":"action과 도구 스키마의 속성을 같은 최상위 JSON 객체로 보냅니다. selection 객체로 감싸지 마세요.","mcp":"tools/call params.name에 기능명, params.arguments에 같은 속성을 보냅니다.","discovery":"아래 tools의 inputSchema를 먼저 확인하세요. 추천 결과 normalized_selection으로 quote를 요청하고 order_schema로 현재 조건별 신청 항목을 확인하세요.","missing_information":"현재 통신사·목표 통신사 선호·유지기간 후 요금제 계획을 모르면 고객에게 질문하세요. 배송주소와 신청 조건은 제출 직전에 다시 확인하세요."},"tools":[{"name":"guide","description":"처음 휴대폰을 알아보는 고객의 AI는 먼저 호출하세요. 로그인 전 필수 질문과 고객에게 보낼 쉬운 문구·구매 절차를 제공합니다.","inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true}},{"name":"authorize_start","description":"고객이 직접 카카오 로그인·연결 승인할 링크 생성","inputSchema":{"type":"object","properties":{"ai_name":{"type":"string","maxLength":100,"description":"AI 자체 신고 이름. 신원 보증 아님."}},"required":["ai_name"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},{"name":"authorize_exchange","description":"고객 승인 후 30일 키 발급 또는 10분 내 응답 복구","inputSchema":{"type":"object","properties":{"request_id":{"type":"string","pattern":"^[a-f0-9]{32}$","description":"authorize_start 응답의 request_id. trace_id 아님."},"exchange_secret":{"type":"string","pattern":"^[a-f0-9]{64}$","description":"authorize_start 응답 비밀값. 고객 링크/로그에 포함하지 마세요."}},"required":["request_id","exchange_secret"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},{"name":"catalog","description":"회원 판매경로 상품 목록. 가격순이 아닙니다.","inputSchema":{"type":"object","properties":{"exhibition":{"type":"string","pattern":"^[0-9]{1,10}$","description":"이 도메인의 공개 상품 카탈로그에서 확인한 진행 중 기획전 번호. 해당 공개 상품과 회원 판매경로의 교집합만 비교합니다."},"query":{"type":"string","maxLength":100,"description":"모델명 또는 모델코드 부분 검색"},"family":{"type":"string","enum":["","iphone","iphone_pro","galaxy_s","galaxy_fold","galaxy_flip","foldable","bar","galaxy_flagship"],"description":"모델명 기반 분류이며 확정된 상품 메타데이터가 아닙니다. 불확실한 모델은 분류에서 제외됩니다."},"carrier":{"type":"string","enum":["SKT","KT","LGU"],"description":"목표 통신사. 생략하면 허용된 전체 통신사 검색."},"offset":{"type":"integer","minimum":0,"maximum":10000,"default":0},"limit":{"type":"integer","minimum":1,"maximum":50,"default":5}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true}},{"name":"recommend","description":"고객 조건에 따른 24개월 비용 후보 5개. 모르는 조건은 질문하고 요청하세요.","inputSchema":{"type":"object","properties":{"exhibition":{"type":"string","pattern":"^[0-9]{1,10}$","description":"이 도메인의 공개 상품 카탈로그에서 확인한 진행 중 기획전 번호. 해당 공개 상품과 회원 판매경로의 교집합만 비교합니다."},"query":{"type":"string","maxLength":100,"description":"모델명 또는 모델코드 부분 검색"},"family":{"type":"string","enum":["","iphone","iphone_pro","galaxy_s","galaxy_fold","galaxy_flip","foldable","bar","galaxy_flagship"],"description":"모델명 기반 분류이며 확정된 상품 메타데이터가 아닙니다. 불확실한 모델은 분류에서 제외됩니다."},"carrier":{"type":"string","enum":["SKT","KT","LGU"],"description":"목표 통신사. 생략하면 허용된 전체 통신사 검색."},"offset":{"type":"integer","minimum":0,"maximum":10000,"default":0},"limit":{"type":"integer","minimum":1,"maximum":50,"default":5},"beforeCarrier":{"type":"string","enum":["SKT","KT","LGU","알뜰폰","없음"],"description":"고객에게 확인한 현재 통신사. 없음은 신규가입. 알뜰폰은 MVNO 번호이동입니다."},"carrier_preference":{"type":"string","enum":["keep","any","SKT","KT","LGU"],"description":"고객의 통신사 유지/좋은 조건의 통신사/특정 통신사 선호. any에는 현재 통신사도 포함됩니다."},"minimum_plan_after_retention":{"type":"boolean","description":"의무 유지기간 후 최저 요금제로 바꿀지 고객에게 확인한 값. 모르면 고객에게 먼저 질문하세요."},"sort":{"type":"string","enum":["total_24_months","device_principal"],"description":"기본 total_24_months. 미확정 필수 비용은 최저가 순위에 섞지 않습니다."}},"required":["beforeCarrier","carrier_preference","minimum_plan_after_retention"],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true}},{"name":"quote","description":"기존 AE 계산 엔진으로 견적 저장. 입력은 selection 중첩 없이 최상위 필드.","inputSchema":{"type":"object","properties":{"carrier":{"type":"string","enum":["SKT","KT","LGU"],"description":"목표 통신사: catalog/recommend 결과값"},"model":{"type":"string","maxLength":1000,"description":"catalog/recommend가 반환한 정확한 모델코드"},"beforeCarrier":{"type":"string","enum":["SKT","KT","LGU","알뜰폰","없음"],"description":"고객에게 확인한 현재 통신사. 없음은 신규가입. 알뜰폰은 MVNO 번호이동입니다."},"agreement":{"type":"string","enum":["공시지원","선택약정"],"description":"선택할 약정. 현재 판매정책에 없는 조합은 거절됩니다."},"tier":{"type":"string","pattern":"^tier_[1-9]$","description":"recommend의 normalized_selection.tier를 재사용하세요. 7~9구간은 고객 자격 확인이 필요한 요금제입니다."},"contract":{"type":"string","enum":["신규가입","번호이동MNO","번호이동MVNO","기기변경"],"description":"선택 입력. 현재/목표 통신사로 자동 계산되며 값이 다르면 거절됩니다."},"minimum_plan_after_retention":{"type":"boolean","description":"의무 유지기간 후 최저 요금제로 바꿀지 고객에게 확인한 값. 모르면 고객에게 먼저 질문하세요."},"mileage":{"oneOf":[{"type":"string","pattern":"^[0-9]{1,9}$"},{"type":"integer","minimum":0,"maximum":999999999}],"default":"0","description":"고객이 확인한 마일리지 사용액. 사용 가능 여부는 저장 시 재검증합니다."},"color":{"type":"string","maxLength":1000,"description":"quote.product.colors 중 선택한 색상"},"planOption":{"type":"string","maxLength":1000,"description":"quote.choices.planOption에서 확인한 요금제 옵션"},"addService":{"type":"string","maxLength":1000,"description":"quote.choices.addService에서 확인한 부가서비스"},"freebie":{"type":"string","maxLength":1000,"description":"quote.choices.freebie에서 확인한 사은품"},"insurance":{"type":"string","maxLength":1000,"description":"quote.choices.insurance에서 확인한 보험"},"giftCouponToken":{"type":"string","maxLength":1000,"description":"기존 고객 쿠폰 확인 절차에서 받은 토큰. 임의 생성 금지"}},"required":["carrier","model","beforeCarrier","agreement","tier","minimum_plan_after_retention"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},{"name":"order_schema","description":"선택 상품의 간편신청 필수 입력·조건부 입력·약관 안내 JSON","inputSchema":{"type":"object","properties":{"carrier":{"type":"string","enum":["SKT","KT","LGU"],"description":"목표 통신사: catalog/recommend 결과값"},"model":{"type":"string","maxLength":1000,"description":"catalog/recommend가 반환한 정확한 모델코드"},"beforeCarrier":{"type":"string","enum":["SKT","KT","LGU","알뜰폰","없음"],"description":"고객에게 확인한 현재 통신사. 없음은 신규가입. 알뜰폰은 MVNO 번호이동입니다."},"agreement":{"type":"string","enum":["공시지원","선택약정"],"description":"선택할 약정. 현재 판매정책에 없는 조합은 거절됩니다."},"tier":{"type":"string","pattern":"^tier_[1-9]$","description":"recommend의 normalized_selection.tier를 재사용하세요. 7~9구간은 고객 자격 확인이 필요한 요금제입니다."},"contract":{"type":"string","enum":["신규가입","번호이동MNO","번호이동MVNO","기기변경"],"description":"선택 입력. 현재/목표 통신사로 자동 계산되며 값이 다르면 거절됩니다."},"minimum_plan_after_retention":{"type":"boolean","description":"의무 유지기간 후 최저 요금제로 바꿀지 고객에게 확인한 값. 모르면 고객에게 먼저 질문하세요."},"mileage":{"oneOf":[{"type":"string","pattern":"^[0-9]{1,9}$"},{"type":"integer","minimum":0,"maximum":999999999}],"default":"0","description":"고객이 확인한 마일리지 사용액. 사용 가능 여부는 저장 시 재검증합니다."},"color":{"type":"string","maxLength":1000,"description":"quote.product.colors 중 선택한 색상"},"planOption":{"type":"string","maxLength":1000,"description":"quote.choices.planOption에서 확인한 요금제 옵션"},"addService":{"type":"string","maxLength":1000,"description":"quote.choices.addService에서 확인한 부가서비스"},"freebie":{"type":"string","maxLength":1000,"description":"quote.choices.freebie에서 확인한 사은품"},"insurance":{"type":"string","maxLength":1000,"description":"quote.choices.insurance에서 확인한 보험"},"giftCouponToken":{"type":"string","maxLength":1000,"description":"기존 고객 쿠폰 확인 절차에서 받은 토큰. 임의 생성 금지"}},"required":["carrier","model","beforeCarrier","agreement","tier","minimum_plan_after_retention"],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true}},{"name":"purchase_create","description":"저장 견적에서 서버 구매 UUID 생성/복구","inputSchema":{"type":"object","properties":{"quote_id":{"type":"string","maxLength":36,"description":"quote 응답의 quote_id. 동일 견적 재시도는 같은 구매 건을 반환합니다."}},"required":["quote_id"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},{"name":"order_submit","description":"고객 확인 후 기존 간편신청 접수. 가격 최종 확정이나 통신사 서명 완료를 뜻하지 않습니다.","inputSchema":{"type":"object","properties":{"purchase_id":{"type":"string","maxLength":36,"description":"purchase_create 응답의 purchase_id. 두 AI/오류 재시도에도 같은 ID 사용."},"application":{"type":"object","description":"order_schema.fields 및 quote 안내를 고객에게 확인하고 대리 작성한 간편신청 데이터. 통신사 신청서의 본인 인증/서명은 고객이 직접 합니다. 주민등록번호는 해당 schema가 요구할 때만 이 객체로 보내며 대화/로그에는 넣지 않습니다.","properties":{"name":{"type":"string","maxLength":100,"description":"신청자 이름"},"birth":{"type":"string","maxLength":20,"description":"order_schema가 안내한 생년월일 또는 주민등록번호"},"activationPhone":{"type":"string","maxLength":30,"description":"개통번호. 신규가입 외 필수"},"contactPhone":{"type":"string","maxLength":30,"description":"연락처. 신규가입/보호자 등 조건부 필수"},"wish1":{"type":"string","pattern":"^[0-9]{4}$","description":"신규가입 희망번호 뒷자리"},"address":{"type":"string","maxLength":1000,"description":"이번 주문에서 고객에게 다시 확인한 배송주소"},"addressDetail":{"type":"string","maxLength":1000,"description":"상세 배송주소"},"zipcode":{"type":"string","pattern":"^[0-9]{5}$"},"consent":{"const":"1"},"purchaseTermsConsent":{"const":"1"},"purchaseTermsVersion":{"type":"string","maxLength":1000,"description":"order_schema.fields.purchaseTermsVersion.const 값"},"noticeConsent":{"const":"1"},"addressConfirmed":{"const":true},"customerConfirmed":{"const":true}},"required":["name","birth","address","addressDetail","consent","purchaseTermsConsent","purchaseTermsVersion","noticeConsent","addressConfirmed","customerConfirmed"],"additionalProperties":true}},"required":["purchase_id","application"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},{"name":"events","description":"상담방 증분 메시지·상태 JSON 조회","inputSchema":{"type":"object","properties":{"after":{"type":"integer","minimum":0,"description":"마지막 응답 next_cursor. 처음은 0."}},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true}},{"name":"message","description":"관리자에게 질문 전달","inputSchema":{"type":"object","properties":{"text":{"type":"string","maxLength":8000,"description":"관리자에게 전달할 질문. 키·인증정보·주민번호 금지."},"message_id":{"type":"string","pattern":"^[A-Za-z0-9_.:-]{8,80}$","description":"같은 메시지 재시도 시 같은 ID"}},"required":["text","message_id"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},{"name":"orders","description":"같은 회원 상담방 구매 건 조회","inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true}},{"name":"cancellation_request","description":"관리자 취소·반품 검토 요청. 취소 확정 기능 아님","inputSchema":{"type":"object","properties":{"purchase_id":{"type":"string","maxLength":36,"description":"주문된 구매 건 ID"},"reason":{"type":"string","maxLength":1000,"description":"취소·반품 검토 요청 사유"}},"required":["purchase_id","reason"],"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}}],"rules":["상품·약관·정책·계산은 기존 판매 엔진 기준입니다. AI가 금액을 만들어 넣지 마세요.","견적은 24시간 유효하지만 그 전에도 정책이 바뀔 수 있습니다. 제출 전에 다시 검증하고 바뀌면 고객에게 다시 확인하세요.","가격 확정 기준은 통신사 신청서 작성 완료 시점이며 판매관리자가 이를 확인합니다. 가능한 빨리 고객 본인이 통신사 신청서를 작성하도록 안내하세요.","통신사 신청서의 모델·요금제는 정확해야 합니다. 판매점 할인·배송주소·부가서비스 안내는 확인된 간편신청서 조건을 따릅니다. 통신사 신청서 자체를 AI가 작성하거나 인증하지 마세요.","발송 후 취소는 반송 및 정상 검수 전까지 확정할 수 없습니다. 개통·포장 훼손 등의 경우 관리자 판단과 관련 규정 확인이 필요합니다. 취소를 확약하지 마세요.","주민등록번호·접속키·카카오 인증정보를 상담글이나 로그에 넣지 마세요. 접수에 필요한 개인정보는 order_submit 입력만 사용하세요.","다른 AI도 같은 회원 방과 구매 건을 공유합니다. 재시도는 같은 purchase_id를 사용하고 신규 재구매에만 새 구매 건을 만드세요."]}