VibeSMS은(는) 무엇을 하나요?
AI 에이전트를 사용자가 소유한 안드로이드 폰 및 SIM에 연결하되, 전체 SMS 인박스를 노출하지 않습니다. 단일 VIBESMS_KEY는 에이전트에게 할당된 전화번호에만 접근 권한을 부여하며, 다음 네 가지 집중된 작업을 지원합니다:
- 안드로이드 단말기가 바인딩되어 온라인 상태인지 확인합니다.
- 외부 서비스가 메시지를 보내기 전에 이벤트 커서를 캡처합니다.
- 해당 커서 이후에 도착한 새로운 4~8자리 인증 코드를 기다립니다.
- 키별로 격리된 SMS 및 수신 통화 이벤트를 읽습니다.
안드로이드 단말기는 별도의 디바이스 자격 증명을 통해 업로드되므로, 에이전트 키는 이벤트를 업로드하거나 다른 번호를 읽을 수 없습니다. 결정론적 API 호출을 위해 번들 클라이언트를 사용하세요.
scripts/vibesms.py는 이 SKILL.md를 기준으로 상대 경로로 해석하세요. 현재 작업 디렉토리에 스킬이 포함되어 있다고 가정하지 마세요.
전제 조건
- 환경 변수 또는 에이전트 시크릿 스토어에
VIBESMS_KEY가 필요합니다. - 자체 호스팅 인스턴스에만
VIBESMS_BASE_URL을 사용하세요. 기본값은https://sms.shareapi.ai입니다. - 사용자에게 키를 채팅, 명령 인수, 소스 코드, 또는 로그에 붙여넣도록 요청하지 마세요.
- 출력에 키를 절대 노출하지 마세요. 키가 없으면 사용자에게 시크릿을 구성하도록 요청하세요.
인증 코드 수신
-
외부 SMS를 트리거하기 직전에 커서를 캡처합니다:
python3 <skill-directory>/scripts/vibesms.py status -
JSON 응답에서
cursor값을 읽습니다. -
사용자가 승인한 SMS를 보내는 작업을 트리거합니다.
-
해당 커서 이후에 수신된 첫 번째 4~8자리 코드를 기다립니다:
python3 <skill-directory>/scripts/vibesms.py wait-otp --after-id <cursor> --timeout 60 -
코드는 사용자가 승인한 작업에만 사용하고, 완료 후에는 유지하지 마세요.
항상 먼저 커서를 캡처하세요. 그렇지 않으면 이전 메시지가 새 인증 코드로 오인될 수 있습니다.
단말기 상태 확인
다음을 실행하세요:
python3 <skill-directory>/scripts/vibesms.py status
bound가 false이면 키가 안드로이드 SIM과 페어링되지 않았음을 사용자에게 알리세요. online이 false이면 단말기가 재연결되어 오프라인 큐를 재생한 후에도 메시지가 도착할 수 있음을 설명하세요.
수신함 이벤트 읽기
다음 중 하나를 실행하세요:
python3 <skill-directory>/scripts/vibesms.py inbox --after-id <cursor>
python3 <skill-directory>/scripts/vibesms.py inbox --type sms --limit 20
python3 <skill-directory>/scripts/vibesms.py inbox --type call --limit 20
작업별 읽기에는 after-id를 선호하세요. 사용자 작업에 필요한 필드만 반환하고, 관련 없는 메시지 내용이나 전화번호는 반복하지 마세요.
오류
401: 키가 유효하지 않거나, 비활성화되었거나, 교체되었습니다. 사용자에게 시크릿을 업데이트하도록 요청하세요.status=timeout: 일치하는 OTP가 제시간에 도착하지 않았습니다. 단말기 상태를 확인한 후, 사용자가 계속 기다리길 원하는 경우에만 재시도하세요.- 네트워크/TLS 오류: 헤더나 키를 출력하지 않고 엔드포인트와 오류 내용을 보고하세요.
원시 엔드포인트 스키마나 자체 호스팅 통합 세부 정보가 필요한 경우에만 references/api.md를 읽으세요.