SuperAPI AI Directory

byted-vms-aicall

General & other

View repository

Updated 10-16 09:51

About this skill

byted-vms-aicall · Volcengine Cloud Communication Intelligent Outbound Call

When to Use

When the user wants an AI robot to make outbound calls on their behalf:

  • "Help me call 1XXXXXXXXXX to book a restaurant, restaurant xx, time xx, number of people xx"
  • "Have the robot follow up with this batch of users with overdue payments"
  • "Help me do a satisfaction follow-up survey"
  • "Check the results of yesterday's batch of outbound call tasks"

Environment Variables

Resolve authentication according to the following priority (consistent with other vms-* skills):

  1. ARK_SKILL_API_KEY + ARK_SKILL_API_BASE → Volcengine arkclaw Enterprise Edition. Please first configure AK/SK on the Volcengine console page; arkclaw will inject these two environment variables (ARK_SKILL_API_KEY is the API key, ARK_SKILL_API_BASE is the API base URL), and the script uses Bearer authentication to connect directly to this gateway, without the need for local signing;
  2. VOLC_ACCESS_KEY + VOLC_SECRET_KEY (compatible with VOLCENGINE_ACCESS_KEY/VOLCENGINE_SECRET_KEY) → ordinary agents such as Personal Edition arkclaw / openclaw / coco / aime / claudecode, where the user directly tells the agent the AK/SK, and the script performs local HMAC-SHA256 (Volc V4) signing;
  3. otherwise, report an error and prompt the user to enter the AK/SK.

Commands

# 1. 查询可用话术 (GET, 无参或可选 --scene)
python3 scripts/aicall.py list_scripts [--scene restaurant_booking]

# 2. 创建外呼任务 (POST, PhoneList 是对象数组, 由脚本根据 --phone-list + --variable-values 构造)
python3 scripts/aicall.py create_task \
    --script-id <ScriptId> \
    --phone-list "<PhoneA>,<PhoneB>" \
    --variable-values '{"餐厅":"必胜客","时间":"2026-05-29 18:00","人数":"3","备注":"靠窗"}'

# 3. 查询任务进度 / 通话结果 (GET)
python3 scripts/aicall.py query_task --task-id <TaskId>

Standard Execution Flow

  1. Extract the "target number + task intent + key variables" from the user's semantics.
  2. list_scripts to find a matching script. If there is none, provide the list of existing scripts for the user to choose from, or prompt them to create a script in the console: https://console.volcengine.com/cloud_vms/aicall .
  3. Directly call create_task to create a task, returning TaskId. No need to select a number pool: the platform automatically selects numbers according to the default number pool bound to the script.
  4. When the user later asks about progress, use query_task to pull the results, returning task progress and call details (including ASR, intent tags, call duration, etc.).

Error Fallback

  • RESOURCE_NOT_FOUND (script does not exist) → return the list of currently available scripts.
  • Authentication failure → prompt to check the AK/SK. For ordinary agents (Personal Edition arkclaw / openclaw / coco / aime / claudecode), check VOLC_ACCESS_KEY/VOLC_SECRET_KEY; for Volcengine arkclaw Enterprise Edition, first configure the AK/SK on the Volcengine console page, then confirm that ARK_SKILL_API_KEY/ARK_SKILL_API_BASE has been injected.

Reference

📚 Basic Knowledge / Parameter Passing Reference

Before calling any action (especially the create_task field construction of PhoneList / VariableValues ), please first read the local basic knowledge document built into this skill:

references/vms-fundamentals.md

This document covers general specifications such as the SubServiceType enum / number status mapping / CallId format / recording CDN / egress IP whitelist, etc. All vms-* skills share the same content. The local file also works in environments with limited external network access and has better performance than remote retrieval. If you need to compare with the original version, you can refer back to the original Feishu text: https://bytedance.sg.larkoffice.com/docx/Mv32dc0yooBn7txDxW8lsDdDgYb