Install
openclaw skills install vox-custom-phone-agentConvert natural language phone tasks into structured Vox custom bot outbound calls with guided prompts and voice options, ensuring compliance and secure dial...
openclaw skills install vox-custom-phone-agentTurn a user's natural-language phone task into a TeddyMobile Vox botType=custom outbound call.
This skill is designed for Agent or Claw environments. It extracts the call target, bot identity, business goal, tone, constraints, and opening message from the user's prompt. When required information is missing, it asks targeted follow-up questions. Once the required fields are complete, it builds a Vox custom bot payload and starts the outbound call.
Before asking for phone-call details, the skill must first confirm the usage mode unless the user already clearly said 试用, 先试用, 体验, 正式注册, 正式账号, or 自己的凭证.
If usage mode is missing, do not ask for caller identity, chat purpose, duration, voice, or other fields yet. Reply exactly with a mode choice and stop:
请选择使用方式:
1. 先用推广试用体验一次,不需要填写 VOX_APP_ID / VOX_SECRET;
2. 使用正式账号/注册 Vox 企业账号后接入,需要配置自己的 VOX_APP_ID / VOX_SECRET。
回复“试用”或“正式注册”即可。
In trial mode, use the packaged promotion trial credentials. Do not ask the user for VOX_APP_ID or VOX_SECRET during trial mode.
extra.agent_profile for botType=custom.voiceType by code or voice name.POST https://vox.teddymobile.cn/vox/v1/outbound with HMAC authentication.requestId.HTTP POST + SSE conversation control.For direct Vox calls from the host environment:
VOX_APP_IDVOX_SECRETOptional:
VOX_BOT_ID - may be empty for botType=custom if Vox has enabled that mode.VOX_OUTBOUND_BASE_URL - defaults to https://vox.teddymobile.cn.VOX_CREDENTIALS_FILE - path to a JSON credentials file.VOX_TRIAL_MODE - when true, result messages include registration guidance.VOX_REGISTER_URL - registration or trial application URL.VOX_TRIAL_LIMIT - maximum local trial call attempts, defaults to 10.VOX_TRIAL_STATE_FILE - optional path for local trial usage state.Recommended hosted mode:
VOX_SECRET only on your backend.When VOX_TRIAL_MODE=true, the skill treats the configured credentials as promotion trial credentials. After generating or starting a call, it guides the user to register for formal Vox access so they can get their own VOX_APP_ID, VOX_SECRET, permissions, quota, and number resources.
The trial journey must be visible to the user:
已使用 1/10 次,剩余 9 次.For hosts such as WorkBuddy that render structured fields instead of full text, the skill also returns top-level fields: actionPrompt, actions, buttons, quickReplies, suggestedActions, registrationMessage, registrationUrl, registrationBenefits, registrationSwitchInstruction, and nextStep. Hosts should display these after trial calls. If button rendering is supported, render actions or buttons so the user can choose 注册正式账号, 继续试用, or 我已有正式凭证.
The skill also returns callTask, taskBriefing, briefingQuality, resultMeaning, failureAdvice, risk, voiceAnalysis, summaryRows, and summaryFooter so hosts can render a clearer task summary and explain that accepted means Vox accepted the outbound task, not that the call has completed.
The skill must have these fields before it can start a call:
useMode - user chooses promotion trial or formal account mode. This must be confirmed first.callee - destination mobile phone number.goal - what the call should accomplish.role - who the bot is calling as, unless the role can be safely inferred from the scenario.voiceType - user-selected voice code or voice name.businessContext - scenario-specific details when the prompt is too generic.Fields that may be inferred or generated:
namegenderagecommunicationStylebackgroundskillsworkflowconstraintopeningPromptrequestIdVoice options:
0 / 知愈:女,适合安抚、售后回访、心理陪伴。1 / 安辰:男,适合长辈、老人、用药或健康提醒。2 / 景珩:男,适合商务、课程、企业合作、科普讲解。3 / 知言:女,适合通知、公告、正式播报。4 / 星苒:女,适合闲聊、电商、生活服务。If useMode is missing, ask only for the usage mode first and stop. If another required field is missing after usage mode is known, do not call Vox. Ask a concise follow-up question.
Examples:
For chat or companionship scenarios, require additional boundaries before calling: caller identity, chat purpose, allowed topics, forbidden topics, duration or stop condition, and refusal handling.
Ask at most two questions at a time. Use the existing conversation context to merge follow-up answers into the pending call intent.
Block or require rewriting for requests that involve:
If blocked, explain briefly and suggest a compliant alternative.
先试用。帮我给 13800138000 打电话,作为课程顾问介绍周末 AI 编程体验课,目标是确认是否愿意预约试听,语气专业但不要强推,使用景珩音色。
已发起 Vox 自定义 Bot 外呼。
- 被叫号码:138****8000
- Bot 角色:课程顾问
- 任务目标:确认是否愿意预约试听
- requestId:req_20260522153000001_ab12cd
- 状态:accepted
workflow.mdresources/run_demo.jsresources/hosted_api_example.jsresources/hmac_outbound_client.jsresources/prompt_to_call_intent.js, resources/intent_completeness.jsresources/prompt_to_agent_profile.js