外呼通话:通过 ElevenLabs 实现语音交互自动化 - Openclaw Skills

作者:互联网

2026-03-27

AI教程

什么是 外呼通话?

此技能赋予 AI 代理弥合数字处理与现实世界电信之间鸿沟的能力。通过利用 ElevenLabs 对话式语音 API 和 Twilio 基础设施,outbound-call 技能允许您的代理使用自然的声音和动态上下文拨打电话。

它是 Openclaw Skills 库的强大补充,确保您的 AI 可以主动联系用户或客户,实时传递信息或收集回复。通话中的语音代理使用与入站工作流相同的智能,在所有语音渠道中提供一致且高质量的用户体验。

下载入口:https://github.com/openclaw/skills/tree/main/skills/humanjesse/outbound-call

安装与下载

1. ClawHub CLI

从源直接安装技能的最快方式。

npx clawhub@latest install outbound-call

2. 手动安装

将技能文件夹复制到以下位置之一

全局模式 ~/.openclaw/skills/ 工作区 /skills/

优先级:工作区 > 本地 > 内置

3. 提示词安装

将此提示词复制到 OpenClaw 即可自动安装。

请帮我使用 Clawhub 安装 outbound-call。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。

外呼通话 应用场景

  • 自动拨打预约提醒和确认电话,以减少缺席情况。
  • 针对客户支持或账单查询进行具有特定上下文的跟进电话。
  • 通过直接电话线路向利益相关者通知关键系统警报或紧急更新。
  • 通过自然的语音交互收集反馈或进行简短调查。
  • 拨打联系电话以验证身份或提供多因素身份验证详情。
外呼通话 工作原理
  1. 用户向代理提供目标电话号码以及可选的上下文或特定的开场白。
  2. 脚本验证并将电话号码重新格式化为所需的 E.164 全球标准。
  3. 使用预先配置的代理和电话号码 ID 向 ElevenLabs API 发送请求。
  4. ElevenLabs 语音代理通过 Twilio 发起通话,并利用代理大脑进行对话。
  5. 完成或失败后,技能将对话 ID 或详细的错误日志返回给 Openclaw Skills 环境进行追踪。

外呼通话 配置指南

要在您的 Openclaw Skills 集合中使用此技能,您必须首先使用 ElevenLabs 凭据配置环境变量:

export ELEVENLABS_API_KEY="your_api_key"
export ELEVENLABS_AGENT_ID="your_agent_id"
export ELEVENLABS_PHONE_NUMBER_ID="your_phone_number_id"

然后,您可以从 CLI 或在代理工作流中触发通话:

python3 skills/outbound-call/call.py +15551234567 "您好,这是来自您的 AI 助手的通话。"

外呼通话 数据架构与分类体系

该技能使用以下结构处理并返回数据:

属性 描述 格式
phone_number 接收者的目标号码 E.164 (例如, +15551234567)
first_message 接听时播报的自定义问候语 字符串
call_context AI 代理的背景信息 字符串
conversation_id 用于追踪通话会话的唯一 ID 字符串 (UUID)
status 通话尝试的成功或失败结果 字符串
name: outbound-call
description: Make outbound phone calls via ElevenLabs voice agent and Twilio
metadata:
  clawdbot:
    requires:
      env:
        - ELEVENLABS_API_KEY
        - ELEVENLABS_AGENT_ID
        - ELEVENLABS_PHONE_NUMBER_ID
    primaryEnv: ELEVENLABS_API_KEY

Outbound Call

Source code and setup guide: github.com/humanjesse/hostinger-openclaw-guides

Place outbound phone calls using the ElevenLabs voice agent with Twilio. The voice agent on the call uses OpenClaw as its brain — same as inbound calls.

When to use

When the user asks you to:

  • Call someone or phone someone
  • Make a phone call
  • Dial a number
  • Ring someone
  • Place a call to a number

How to use

Run the call script with a phone number in E.164 format:

python3 skills/outbound-call/call.py +1XXXXXXXXXX

With an optional custom first message (what the agent says when the recipient picks up):

python3 skills/outbound-call/call.py +1XXXXXXXXXX "Hi John, I'm calling about your appointment tomorrow."

With optional call context (passed as a dynamic variable to the agent):

python3 skills/outbound-call/call.py +1XXXXXXXXXX "Hi, this is a quick follow-up call." "Customer requested callback about billing issue #4521"

Phone number format

  • US numbers: +1 followed by 10 digits, e.g., +15551234567
  • If the user gives a number like 555-123-4567 or (555) 123-4567, reformat it to +15551234567
  • Always confirm the formatted number with the user before placing the call

Rules

  • ALWAYS confirm the phone number with the user before placing a call
  • NEVER place a call without explicit user consent
  • Report the result back to the user (conversation ID on success, error details on failure)
  • If the call fails, explain the error and suggest fixes