| name | voicecall |
| description | 语音通话管理:发起、继续、结束通话与语音服务暴露控制。当需要发起语音通话、管理通话状态或配置语音服务端点时使用此技能。 |
| tools | gateway |
| metadata | {"category":"operations","emoji":"📞","tree_id":"system/gateway","tree_group":"system","min_tier":"task_write","intent_priority":20,"intent_keywords":{"zh":["语音通话","发起通话","语音交互","通话管理","语音服务","打电话","结束通话","voice call","电话"],"en":["voice call","phone call","voice interaction","call management","end call","voice service"]},"scene_hint":"语音通话用此→STT配置用stt-config→TTS配置用tts-config→模型切换用models-management"} |
语音通话技能
适用场景
用户需要通过语音通话与智能体交互,或管理语音服务配置时触发。
选择原则
| 场景 | 工具/技能 |
|---|
| 发起/管理语音通话 | 本技能 |
| STT 模型配置 | → stt_config 专项工具 |
| 实时模型连接 | → models-management(七、实时模型连接) |
一、查看通话状态
crabclaw voicecall status <call-id>
返回:
- 通话状态(ringing / active / ended)
- 通话时长
- 参与方信息
- 当前使用的模型
二、发起通话
crabclaw voicecall call <to> "<message>"
参数:
to: 接收方标识(电话号码、用户 ID 等)
message: 初始消息/话题
通话建立后,智能体进入语音交互模式。
三、通话交互
3.1 继续通话
crabclaw voicecall continue <call-id> "<message>"
在活跃通话中注入一条文本消息,智能体会将其转为语音回复。
3.2 结束通话
crabclaw voicecall end <call-id>
优雅结束通话,释放资源。
四、语音服务暴露
4.1 暴露语音服务
crabclaw voicecall expose [--mode <mode>]
通过指定方式暴露语音服务端点,允许外部客户端连接。
参数:
--mode: 暴露模式,默认 tailscale
tailscale — 通过 Tailscale 网络暴露
cloudflare — 通过 Cloudflare Tunnel 暴露
ngrok — 通过 ngrok 暴露
4.2 收回语音服务
crabclaw voicecall unexpose
停止语音服务端点的外部监听。
五、前置依赖
语音通话需要以下组件就绪:
| 组件 | 检查方式 | 说明 |
|---|
| STT 模型 | stt.config.get | 语音转文字模型 |
| 实时模型连接 | models.realtime.state | 流式模型响应 |
| Gateway 运行 | crabclaw health | Gateway 必须运行 |
六、CLI 命令对照
| CLI 命令 | 说明 |
|---|
crabclaw voicecall status <id> | 查看通话状态 |
crabclaw voicecall call <to> "<msg>" | 发起通话 |
crabclaw voicecall continue <id> "<msg>" | 继续通话 |
crabclaw voicecall end <id> | 结束通话 |
crabclaw voicecall expose [--mode tailscale] | 暴露语音服务 |
crabclaw voicecall unexpose | 收回语音服务 |