2026年6月22日 2 分钟阅读

如何给 AI Agent 一个真实电话号码?AgentLine 开源电话 API 实战指南

tinyash 0 条评论

AI 编程 Agent 的能力边界正在快速扩展——它们能写代码、能查文档、能跑测试、能提交 PR,甚至能自己浏览网页和调用第三方 API。但有一个场景你可能还没认真想过:当你的 Agent 需要接电话、收发短信的时候,怎么办?

比如这几个真实场景:

  • 你的 Agent 在帮你注册某个 SaaS 服务,对方发了条短信验证码到手机上——Agent 怎么收?
  • 你写了套自动化外呼脚本,想让 Agent 给客户打跟进电话——Agent 怎么打?
  • 你搭建了一个客服机器人,用户希望直接打电话而不是打字——Agent 怎么接?

这时候你会发现,几乎所有主流 AI Agent 框架(Claude Code、Cursor、Hermes、OpenClaw)都是「纯文本世界的生物」——它们不会接电话,也没有手机号。

这就是 AgentLine 要解决的问题。

AgentLine 是什么?

AgentLine 是一个开源的、为 AI Agent 量身定做的电话 API 平台(MIT 协议)。它让你的 Agent 可以通过一套简单的 REST API 或 MCP Server,直接:

  • 📞 打电话:让 Agent 给任意号码拨打真实电话
  • 📱 收短信:给 Agent 分配真实手机号,接收验证码和短信
  • 🎙️ 语音对话:支持实时语音识别(STT)+ LLM 推理 + 语音合成(TTS),让 Agent 「开口说话」
  • 📝 获取通话记录:自动转写通话内容,Agent 可以事后回顾

用一句话概括:AgentLine 把「电话通信」变成了 AI Agent 的一类原生工具

你的 AI Agent  →  AgentLine API  →  真实电话 / 短信 / 通话记录

为什么不用 Twilio 自己搭?

你可能会想:这不就是 Twilio 套个壳吗?自己用 Twilio API 写不就完了?

对比一下就清楚了:

维度AgentLineTwilio/Vonage自己从零搭建
为 AI Agent 设计✅ 原生支持❌ 面向呼叫中心❌ 你得自己拼
搭建时间5 分钟数小时数周
MCP 支持✅ 内置❌ 没有❌ 自己写
Skill 文件安装✅ 一个文件搞定❌ 复杂 SDK❌ 几百行代码
语音管道✅ 内置(STT+TTS+LLM)❌ 自己接❌ 自己搭
开源✅ MIT❌ 商业闭源✅ 你的代码

AgentLine 的价值不是「把电话打通」,而是把电话通信封装成 AI Agent 能直接消费的标准接口。它内置了 STT(Deepgram)+ LLM(GPT-4o)+ TTS(Cartesia)的全链路语音管道,你只需要告诉 Agent 打给谁、说什么就行。

技术架构:混合接力模式

AgentLine 的语音管道没有用脆弱的 WebSocket 实时流方案,而是采用了异步混合接力(Hybrid Relay)架构:

用户拨打 Agent 号码
  → SignalWire 接听电话
  → 播放 TTS 开场白
  → 录制用户语音
  → Deepgram 转写(快且准)
  → LLM 生成回复
  → Cartesia 朗读回复
  → 循环,直到通话结束
  → 完整转写文本存入通话记录

这个设计的妙处在于:每一轮对话都是异步完成的——先录完用户的话,再转写,再推理,再合成。虽然比实时 WebSocket 多几百毫秒延迟,但大幅降低了实现复杂度和故障率。对于 AI Agent 的使用场景(验证码接收、定时外呼、客服应答),这个延迟完全在可接受范围内。

5 分钟跑起来

AgentLine 支持 Docker Compose 一键部署,也提供了托管版本可以直接用。

方式一:Docker 自部署

git clone https://github.com/AgentLineHQ/AgentLine.git
cd AgentLine
cp .env.example .env
docker compose up -d

方式二:MCP Server 接入(最快)

在 MCP 客户端配置中添加一行就能用。以 Hermes Agent 为例,编辑 config.yaml

mcp:
  servers:
    - name: agentline
      transport: streamable-http
      url: https://api.agentline.cloud/mcp

配置完成后重启 Agent,它就会自动获得号码查询、外拨电话、收发短信等 21+ 个电话相关工具。

方式三:Skill 文件安装

AgentLine 提供了一个标准的 skill.md 文件,直接告诉你的 Agent 怎么用:

“Get yourself a phone number and call me.”

把这句 prompt 发给 Claude Code、Cursor 或 Hermes,Agent 就会自己去搞一个号码然后打给你。

三个最实用的场景

场景一:自动验证码接收(2FA Inbox)

这是目前 AgentLine 最高频的使用场景。当你让 AI Agent 去注册各种 SaaS 服务、申请 API Key、激活账号时,经常会卡在「请输入短信验证码」这一步。

接入 AgentLine 后,Agent 的流程变成:

  1. Agent 在网页上点「发送验证码」
  2. 调用 AgentLine 的 GET /v1/messages 接口查询收到的短信
  3. 提取验证码填入网页
  4. 继续后续操作

整个过程对 Agent 来说就像调用一个普通的 API 工具一样自然。

场景二:定时外呼和通知

假设你有一套监控系统,当线上告警触发时,你希望 Agent 直接打电话通知负责人而不是发 Slack 消息(凌晨三点谁看 Slack?)。

import requests

resp = requests.post(
    "https://api.agentline.cloud/v1/calls",
    headers={"Authorization": "Bearer YOUR_API_KEY"},
    json={
        "agent_id": "agt_abc123",
        "to_number": "+8613800138000",
        "initial_greeting": "线上数据库 CPU 已超过 95%,请立即处理。",
        "voice_id": "female-1"
    }
)

Agent 发现告警后调用这个 API,对方接起电话就会听到 TTS 合成的告警通知。

场景三:客服 Agent 接电话

如果你在做一个面向用户的 AI 产品,电话客服通道永远是最高优先级的客户触点。AgentLine 让你的 Agent 可以直接接听电话:

  • 用户拨打你购买的号码
  • AgentLine 将语音转成文字
  • 传给 LLM 推理出回答
  • 再用 TTS 把回答念给用户

你可以把它理解成「给 ChatGPT 接上了电话」。配合 system prompt + RAG 知识库,就能做出一个能接电话的产品客服 Agent。

一些实际感受

AgentLine 目前还非常早期(写这篇文章时在 GitHub 上只有个位数的 star),但它的定位很精准——对传统电话 API 做「AI Agent 适配」,而不是重新造一个电话平台。

这种「给现有基础设施包装 AI Agent 接口」的思路,最近在很多 AI 工具中都能看到:有人给 Docker 套了 MCP Server 让 Agent 管理容器,有人给 BIOS 刷写工具加了 MCP 接口让 Agent 刷固件(指 Ratchet)。AgentLine 做的是同样的逻辑,只是赛道是通信。

需要注意的点:托管版本目前只支持美国和加拿大号码,国际号码覆盖需要看自部署方案;语音管道的延迟在 500ms-1s 左右,打电话场景可接受但别期待实时对话的体感;SignalWire 作为底层运营商在美国的覆盖和稳定性都不错,国内场景可能需要找替代运营商接入。

总结

AI Agent 正在从「纯文本工具」进化为「能感知和行动的数字实体」,而电话通信是这个进化路径上绕不开的一环。AgentLine 用 MIT 开源的方式,把电话能力变成了 Agent 工具链中一个标准化的组件。如果你在构建需要电话能力的 AI Agent 产品,或者只是想让自己的个人 Agent 能收个验证码——试试 AgentLine,5 分钟就能跑通第一个电话。

发表评论

你的邮箱地址不会被公开,带 * 的为必填项。