VibeSMS 是做什麼的?
將 AI 代理連接到使用者擁有的 Android 手機和 SIM 卡,而不暴露整個簡訊收件匣。單一的 VIBESMS_KEY 賦予代理僅存取其指定電話號碼的權限,並支援四項聚焦的動作:
- 檢查 Android 終端機是否已綁定且在線。
- 在外部服務發送訊息之前擷取事件游標。
- 等待該游標之後的新 4-8 位驗證碼。
- 讀取金鑰隔離的簡訊和來電事件。
Android 終端機透過獨立的裝置憑證上傳,因此代理金鑰無法上傳事件或讀取其他號碼。使用捆綁的用戶端進行確定性的 API 呼叫。
將 scripts/vibesms.py 相對於此 SKILL.md 解析;不要假設目前工作目錄包含該技能。
前置條件
- 在環境或代理 Secret 儲存中要求
VIBESMS_KEY。 - 僅在自託管實例時使用
VIBESMS_BASE_URL;預設為https://sms.shareapi.ai。 - 切勿要求使用者將金鑰貼到聊天、命令參數、原始碼或日誌中。
- 切勿在輸出中暴露金鑰。如果缺少金鑰,要求使用者設定 Secret。
接收驗證碼
-
在觸發外部簡訊之前立即擷取游標:
python3 <skill-directory>/scripts/vibesms.py status -
從 JSON 回應中讀取
cursor值。 -
觸發使用者授權的動作,該動作會發送簡訊。
-
等待該游標之後收到的第一個 4-8 位驗證碼:
python3 <skill-directory>/scripts/vibesms.py wait-otp --after-id <cursor> --timeout 60 -
僅將驗證碼用於使用者授權的任務。完成後不要保留它。
始終優先擷取游標。沒有它,可能會將舊訊息誤認為新的驗證碼。
檢查終端機狀態
執行:
python3 <skill-directory>/scripts/vibesms.py status
如果 bound 為 false,告訴使用者該金鑰尚未與 Android 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:金鑰無效、已停用或已輪換。要求使用者更新 Secret。status=timeout:在時限內沒有收到相符的 OTP。檢查終端機狀態,然後僅在使用者仍想等待時重試。- 網路/TLS 故障:報告端點和故障,但不要列印標頭或金鑰。
只有在需要原始端點架構或自託管整合詳細資訊時,才閱讀 references/api.md。