网淘吧来吧,欢迎您!

Phone Voice Integration技能使用说明

2026-03-30 新闻来源:网淘吧 围观:18
电脑广告
手机广告

电话语音集成

通过 ElevenLabs Agents + Twilio,将您的 OpenClaw 转变为可通过电话呼叫的助手。

您将获得:

Phone Voice Integration

  • 📞 从任何电话呼叫您的机器人
  • 🔐 来电显示认证 + 语音 PIN 安全
  • 🛡️ 来电筛选(基于白名单)
  • 🧠 完整的记忆上下文(加载 MEMORY.md, USER.md)
  • 💰 每次通话成本追踪
  • 📝 通话记录及摘要
  • ⏱️ 速率限制
  • 🌐 永久隧道(Cloudflare)或临时隧道(ngrok)

架构

Phone → Twilio → ElevenLabs Agent → Your Bridge → Anthropic Claude → OpenClaw Tools
                                          ↓
                                    Memory Context
                                    (MEMORY.md, USER.md)

流程:

  1. 呼叫者拨打您的 Twilio 号码
  2. Twilio 将呼叫路由至 ElevenLabs Agent
  3. Agent 向您的桥接器发送聊天完成请求(模拟 OpenAI API)
  4. 桥接器将其转换为 Anthropic 格式,并从记忆文件中注入上下文
  5. Claude 响应 → ElevenLabs 文本转语音 → 呼叫者听到语音回复

先决条件

  • 已安装并运行 OpenClaw
  • ElevenLabs 账号 + API 密钥
  • Twilio 账号 + 电话号码
  • Anthropic API 密钥
  • Cloudflare 隧道或者ngrok(用于暴露本地主机)

设置

1. 在 OpenClaw 中启用聊天补全功能

此技能无需此步骤——桥接服务器绕过 OpenClaw 并直接调用 Claude。这让您能更好地控制记忆注入和成本追踪。

2. 创建桥接服务器

桥接服务器是一个 FastAPI 服务器,它:

  • 接收来自 ElevenLabs 的兼容 OpenAI 的 /v1/chat/completions 请求注入记忆上下文(MEMORY.md、USER.md、实时数据)
  • 调用 Anthropic Claude API
  • 以 OpenAI 格式流式传输响应
  • 记录成本和对话记录
  • 关键文件:

server.py

  • — 包含 /v1/chat/completions 端点的 FastAPI 应用— FastAPI app with /v1/chat/completions endpoint
  • fred_prompt.py— 系统提示词构建器(加载记忆文件)
  • .env— 密钥(API密钥、令牌、白名单)
  • contacts.json— 用于来电筛选的呼叫者白名单

3. 设置 Cloudflare 隧道(推荐)

ngrok 的永久、安全替代方案:

# Install cloudflared
brew install cloudflare/cloudflare/cloudflared

# Login and configure
cloudflared tunnel login
cloudflared tunnel create <tunnel-name>

# Run the tunnel
cloudflared tunnel --url http://localhost:8013 run <tunnel-name>

在 Cloudflare DNS 中添加一个 CNAME 记录:

voice.yourdomain.com → <tunnel-id>.cfargotunnel.com

或者使用 ngrok(临时):

ngrok http 8013

4. 配置 ElevenLabs 智能体

选项 A:手动(通过用户界面)

  1. 前往 ElevenLabs 仪表板 → Conversational AI(对话式 AI)
  2. 创建新的智能体
  3. 在 LLM 设置 → 自定义 LLM 下
  4. 设置 URL:https://voice.yourdomain.com/v1/chat/completions
  5. 添加请求头:Authorization: Bearer <你的桥接令牌>

选项 B:编程方式(通过 API)

# Step 1: Store your bridge auth token as a secret
curl -X POST https://api.elevenlabs.io/v1/convai/secrets \
  -H "xi-api-key: YOUR_ELEVENLABS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "new",
    "name": "bridge_auth_token",
    "value": "YOUR_BRIDGE_AUTH_TOKEN"
  }'

# Response: {"secret_id": "abc123..."}

# Step 2: Create the agent
curl -X POST https://api.elevenlabs.io/v1/convai/agents/create \
  -H "xi-api-key: YOUR_ELEVENLABS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "conversation_config": {
      "agent": {
        "language": "en",
        "prompt": {
          "llm": "custom-llm",
          "prompt": "You are a helpful voice assistant.",
          "custom_llm": {
            "url": "https://voice.yourdomain.com/v1/chat/completions",
            "api_key": {"secret_id": "abc123..."}
          }
        }
      }
    }
  }'

5. 连接 Twilio 电话号码

在 ElevenLabs 代理设置中:

  1. 前往电话部分
  2. 输入 Twilio 账户 SID 和认证令牌
  3. 选择您的 Twilio 电话号码
  4. 保存

完成!您的机器人现在可以接听该电话号码的来电。

安全功能

来电显示认证

自动识别白名单号码:

// contacts.json
{
  "+12505551234": {
    "name": "Alice",
    "role": "family"
  }
}

语音 PIN 码验证

针对未知来电者或高安全级别的操作:

VOICE_PIN = "banana"  # Set in .env

来电者必须说出 PIN 码才能继续。

来电筛选

未知号码会收到接待员提示:

"这是弗雷德的助手。我可以为您留言或帮助解答一般问题。"

频率限制

可配置每小时限制:

RATE_LIMIT_PER_HOUR = 10

防止滥用和成本失控。

记忆注入

桥接器在每次通话前自动加载上下文:

读取的文件:

  • MEMORY.md— 关于用户的长期信息、项目、偏好
  • USER.md— 用户档案(姓名、位置、时区)
  • 最近的通话记录(跨通话记忆)

实时数据注入:

  • 当前时间/日期
  • 天气(可选,通过API获取)
  • 日历事件(可选,通过gog CLI获取)

所有数据在Claude看到对话前注入系统提示。

成本追踪

每次通话记录到memory/voice-calls/costs.jsonl

{
  "call_sid": "CA123...",
  "timestamp": "2026-02-03T10:30:00",
  "caller": "+12505551234",
  "duration_sec": 45,
  "total_cost_usd": 0.12,
  "breakdown": {
    "twilio": 0.02,
    "elevenlabs": 0.08,
    "anthropic": 0.02
  }
}

对JSONL文件进行分析以追踪月度支出。

使用示例

呼叫您的机器人:

  1. 拨打您的Twilio号码
  2. 如果您在白名单中 → 开始随意对话
  3. 如果你是未知来电者 → 启动接待员模式
  4. 可要求它查看你的日历、发送消息、设置提醒等

外拨电话(可选):

curl -X POST https://voice.yourdomain.com/call/outbound \
  -H "Authorization: Bearer <BRIDGE_TOKEN>" \
  -d '{"to": "+12505551234", "message": "Reminder: dentist at 3pm"}'

配置选项

环境变量(.env):

ANTHROPIC_API_KEY=sk-ant-...
ELEVENLABS_API_KEY=sk_...
ELEVENLABS_AGENT_ID=agent_...
TWILIO_ACCOUNT_SID=AC...
TWILIO_AUTH_TOKEN=...
TWILIO_NUMBER=+1...
LLM_BRIDGE_TOKEN=<random-secure-token>
VOICE_PIN=<your-secret-word>
CLAWD_DIR=/path/to/clawd

白名单(contacts.json):

{
  "+12505551234": {"name": "Alice", "role": "family"},
  "+12505555678": {"name": "Bob", "role": "friend"}
}

高级功能:办公时间

限制通话至办公时段:

# In server.py
OFFICE_HOURS = {
    "enabled": True,
    "timezone": "America/Vancouver",
    "weekdays": {"start": "09:00", "end": "17:00"},
    "weekends": False
}

非办公时间 → 转接语音信箱提示

调试

直接测试桥接功能:

curl -X POST https://voice.yourdomain.com/v1/chat/completions \
  -H "Authorization: Bearer <BRIDGE_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-4",
    "messages": [{"role": "user", "content": "Hello!"}],
    "stream": false
  }'

检查日志:

tail -f ~/clawd/memory/voice-calls/bridge.log

验证Twilio网络钩子:

  1. 拨打你的号码
  2. 查看Twilio控制台 → 通话记录 → 网络钩子状态
  3. 应能看到来自ElevenLabs的200响应

费用估算

每分钟费用明细:

  • Twilio:约0.01美元/分钟(呼入)+ 运营商费用
  • ElevenLabs语音合成:约0.05美元/分钟(根据语音质量浮动)
  • Anthropic Claude:约0.01美元/分钟(取决于令牌使用量)
  • 总计:约0.07-0.10美元/分钟(约4-6美元/小时通话时间)

使用速率限制和来电筛选来控制成本。

对比:本教程与基础教程

ElevenLabs官方教程:

  • ✅ 基础集成
  • ❌ 无安全性
  • ❌ 无记忆持久性
  • ❌ 无成本追踪
  • ❌ 临时ngrok网址

本技能(Phone Voice v2.0):

  • ✅ 包含以上所有功能
  • ✅ 来电显示 + PIN码安全验证
  • ✅ 跨通话记忆
  • ✅ 成本追踪与分析
  • ✅ 永久隧道(Cloudflare)
  • ✅ 速率限制
  • ✅ 来电筛选
  • ✅ 通话记录日志

链接

许可证

MIT — 可自由使用,如能注明出处将不胜感激。


由 Fred (@FredMolty) 构建 — 自 2026 年起运行于 OpenClaw 平台。

免责申明
部分文章来自各大搜索引擎,如有侵权,请与我联系删除。
打赏
文章底部电脑广告
手机广告位-内容正文底部

相关文章

您是本站第326346名访客 今日有221篇新文章/评论