AgentSkillsCN

supercall

利用自定义角色与目标,实现 AI 驱动的电话通话。借助 OpenAI Realtime API 与 Twilio,打造超低延迟的语音对话体验。当你需要拨打电话、确认预约、传递信息,或希望由 AI 自主完成电话沟通时,可选用此功能。与标准的 voice_call 插件不同,此次通话中的对方无法访问网关代理,从而有效降低攻击面。

SKILL.md
--- frontmatter
name: supercall
description: Make AI-powered phone calls with custom personas and goals. Uses OpenAI Realtime API + Twilio for ultra-low latency voice conversations. Use when you need to call someone, confirm appointments, deliver messages, or have the AI handle phone conversations autonomously. Unlike the standard voice_call plugin, the person on the call doesn't have access to gateway agent, reducing attack surfaces.
homepage: https://github.com/xonder/supercall
metadata:
  {
    "openclaw":
      {
        "emoji": "📞",
        "requires": { "plugins": ["supercall"] },
        "install":
          [
            {
              "id": "npm",
              "kind": "plugin",
              "package": "@xonder/supercall",
              "label": "Install supercall plugin (npm)",
            },
          ],
      },
  }

SuperCall

Make AI-powered phone calls with custom personas and goals using OpenAI Realtime API + Twilio.

Features

  • Persona Calls: Define a persona, goal, and opening line for autonomous calls
  • Full Realtime Mode: GPT-4o powered voice conversations with <~1s latency
  • Provider: Supports Twilio (full realtime) and mock provider for testing
  • Streaming Audio: Bidirectional audio via WebSocket for real-time conversations
  • Limited Access: Unlike the standard voice_call plugin, the person on the call doesn't have access to gateway agent, reducing attack surfaces.

Installation

  1. Copy this skill to your OpenClaw skills directory
  2. Enable hooks for call completion callbacks (required):
json
{
  "hooks": {
    "enabled": true,
    "token": "your-secret-token"
  }
}

Generate a token with: openssl rand -hex 24

  1. Configure the plugin in your openclaw config:
json
{
  "plugins": {
    "entries": {
      "supercall": {
        "enabled": true,
        "config": {
          "provider": "twilio",
          "fromNumber": "+15551234567",
          "twilio": {
            "accountSid": "your-account-sid",
            "authToken": "your-auth-token"
          },
          "streaming": {
            "openaiApiKey": "your-openai-key"
          },
          "tunnel": {
            "provider": "ngrok",
            "ngrokDomain": "your-domain.ngrok.app"
          }
        }
      }
    }
  }
}

Important: The hooks.token is required for call completion callbacks. Without it, the agent won't be notified when calls finish.

Tool: supercall

Make phone calls with custom personas:

code
supercall(
  action: "persona_call",
  to: "+1234567890",
  persona: "Personal assistant to the king",
  goal: "Confirm the callee's availabilities for dinner next week",
  openingLine: "Hey, this is Michael, Alex's Assistant..."
)

Actions

  • persona_call - Start a new call with a persona
  • get_status - Check call status and transcript
  • end_call - End an active call
  • list_calls - List active persona calls

Configuration Options

OptionDescriptionDefault
providerVoice provider (twilio/mock)Required
fromNumberCaller ID (E.164 format)Required for real providers
toNumberDefault recipient number-
streaming.openaiApiKeyOpenAI API key for realtimeOPENAI_API_KEY env
streaming.silenceDurationMsVAD silence duration in ms800
streaming.vadThresholdVAD threshold 0-1 (higher = less sensitive)0.5
streaming.streamPathWebSocket path for media stream/voice/stream
tunnel.providerTunnel for webhooks (ngrok/tailscale-serve/tailscale-funnel)none

Full realtime requires an OpenAI API key.

Requirements

  • Node.js 20+
  • Twilio account for full realtime calls (media streams)
  • ngrok or Tailscale for webhook tunneling (production)
  • OpenAI API key for real-time features

Architecture

This is a fully standalone skill - it does not depend on the built-in voice-call plugin. All voice calling logic is self-contained.