如何给 AI Agent 一个真实电话号码?AgentLine 开源电话 API 实战指南
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 写不就完了?
对比一下就清楚了:
| 维度 | AgentLine | Twilio/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 的流程变成:
- Agent 在网页上点「发送验证码」
- 调用 AgentLine 的
GET /v1/messages接口查询收到的短信 - 提取验证码填入网页
- 继续后续操作
整个过程对 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 分钟就能跑通第一个电话。
- 官网:agentline.cloud
- GitHub:AgentLineHQ/AgentLine
- MCP 注册表:io.github.AgentLineHQ/agentline