VibeSMS 是做什么的?
将 AI 智能体连接到用户拥有的安卓手机和 SIM 卡,而无需暴露整个短信收件箱。一个单一的 VIBESMS_KEY 即可让智能体仅访问其分配的号码,并支持四种聚焦的操作:
- 检查安卓终端是否已绑定且在线。
- 在外部服务发送消息之前捕获事件游标。
- 在该游标之后等待一个新的 4–8 位验证码。
- 读取 Key 隔离的短信和来电事件。
安卓终端通过独立的设备凭证上传数据,因此智能体密钥无法上传事件或读取其他号码。使用随附的客户端进行确定性 API 调用。
解析 scripts/vibesms.py 时路径相对于此 SKILL.md;不要假设当前工作目录包含该技能。
前提条件
- 在环境变量或智能体密钥存储中设置
VIBESMS_KEY。 - 仅当自托管实例时使用
VIBESMS_BASE_URL;默认值为https://sms.shareapi.ai。 - 切勿要求用户将密钥粘贴到聊天、命令参数、源代码或日志中。
- 切勿在输出中暴露密钥。如果缺少密钥,请要求用户配置该密钥。
接收验证码
-
在触发外部短信之前立即捕获游标:
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,请告知用户密钥尚未与安卓 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。