# 面向AI智能体的消息服务与语音服务。

- 规范 URL: https://www.broadnet.me/zh/developers/ai-agents
- 语言: zh-CN
- 最后更新: 2026-10-21
- 发布方: BroadNet (https://www.broadnet.me)
- 上述页面的 Markdown 版本，根据渲染后的页面生成。

面向AI智能体· /developers/ai-agents

为AI智能体提供一种安全的方式，使其能够查询BroadNet账户的覆盖范围、规则和价格，并发送短信、WhatsApp以及一次性密码。请根据您的技术栈选择合适的接入方式：两个MCP服务器、REST API、TypeScript SDK或纯机器可读文件。

[申请测试权限（英文表单）](https://www.broadnet.me/zh/contact?intent=test-access)复制MCP配置

## 选择接入方式

智能体通常需要两样东西：用于规划的事实数据，以及执行动作的方式。BroadNet将两者分开。知识服务器无需账户即可回答问题；发送消息则始终需要您的令牌。

知识MCP服务器

来自本网站相同数据的公开只读回答：覆盖范围、发送者ID规则、示例价格表、法规、分段计数、问答、客户案例、更新日志和状态。

https://www.broadnet.me/mcp

**身份验证:**

无

**访问:**

只读 · 13 工具，每个IP每分钟 60 次请求

**最佳适用场景:**

在开设账户前的规划、研究及售前咨询。

消息服务MCP服务器

BroadNet消息服务API通过MCP工具进行公开。智能体将在您授予的令牌权限范围内发送并追踪消息。

https://mcp.broadnet.me/mcp

**身份验证:**

Bearer <token>

**访问:**

作用于您的账户

**最佳适用场景:**

根据用户请求发送消息的助手和智能体，并由人工确认每次发送。

REST API

Bearer-token REST，每个通道对应一个路径族，由OpenAPI 3.1规范描述。由您的智能体进行决策，由您的代码发起调用。

https://api.broadnet.me

**身份验证:**

Bearer <token>

**访问:**

您的代码调用API · OpenAPI 3.1

**最佳适用场景:**

由您的后端控制重试、日志记录和限制的生产级智能体。

TypeScript SDK

由OpenAPI规范生成的唯一官方SDK @broadnet/cpaas-sdk。其他语言可以通过REST API或生成客户端。

npm i @broadnet/cpaas-sdk

**身份验证:**

Bearer <token>

**访问:**

您的代码调用API · TypeScript / Node.js

**最佳适用场景:**

带有完整类型的Node.js智能体框架和工具定义。

## 智能体可发送的内容

无论智能体使用哪种渠道，都必须遵循相同的规则：已注册的发送者、已授权的接收者以及符合渠道要求的内容。

SMS

每次请求发送一条消息，或通过文件进行批量任务。计费按分段计算，因此长文本或非拉丁字符文本成本更高：请先进行计数。

**REST API**

`POST /sms/sendSms` （JSON） `POST /sms/sendbulk` （分段）

**消息服务MCP**

短信发送工具，例如 `post_sms_send`

WhatsApp

在24小时服务窗口期内可发送自由格式消息；窗口期外仅限已批准的模板。模板按名称列出并发送。

**REST API**

`POST /whatsapp/message/sendbulk` （长短信）

**消息服务MCP**

`post_whatsapp_message_send` ， `get_whatsapp_template_list` ， `post_whatsapp_template_send`

OTP

您的系统生成代码；智能体通过短信或WhatsApp身份验证模板将其发送。公开的API没有独立的验证端点，因此验证代码的操作需在您的系统中完成。

**REST API**

消息中包含代码的 `POST /sms/sendSms`

**消息服务MCP**

相同的短信和WhatsApp模板工具

语音

语音OTP、文本转语音外呼和IVR需通过您的客户团队进行配置。公开的OpenAPI规范和MCP工具涵盖消息服务渠道，不包括语音通话。有关AI驱动的外呼，请参阅DialerBee。

**REST API**

按账户配置

**消息服务MCP**

无语音工具

## 示例：智能体规划OTP验证码发送

用户要求智能体规划向阿联酋发送一次性密码。智能体调用了公开知识服务器上的四个工具。以下结果是服务器的真实输出，已裁剪为智能体使用的字段。

用户

我们每月想向阿联酋的客户发送约50,000条登录验证码。我们需要准备什么，费用是多少？

1. 1 工具调用 `check_coverage` 阿联酋是否在覆盖范围内？包含哪些运营商？ → `{"country":"UAE"}` 结果（已修剪） `{ "country": "UAE", "regulator": "TDRA (Telecommunications and Digital Government Regulatory Authority)", "channels": { "sms": "Live", "otp": "Live", "whatsapp": "Live", "rcs": "Available", "voice": "Live" }, "operators": [ { "name": "Etisalat / e&", "status": "Direct" }, { "name": "du", "status": "Direct" }, { "name": "Virgin Mobile", "status": "Operator-grade" } ] }`
2. 2 工具调用 `sender_id_rules` 在那里需要什么样的发送者ID？ → `{"country":"ae"}` 结果（已修剪） `{ "typicalLeadTime": "5-7 business days", "requirements": [ { "format": "Alphanumeric (Latin or Arabic), up to 11 chars. AD- prefix mandatory on promotional senders.", "preRegistration": "Required — one sender ID per legal entity per use case" } ], "marketingRules": { "quietHours": "TDRA's spam policy bars marketing text messages between 21:00 and 07:00 GST. Transactional OTP and alerts are 24/7." } }`
3. 3 工具调用 `count_sms_segments` 该消息包含多少个分段？ → `{"text":"Your MyShop code is 482913. It expires in 5 minutes. Never share it."}` 结果（已修剪） `{ "encoding": "GSM-7", "units": 68, "segments": 1 }`
4. 4 工具调用 `estimate_price` 参考价格是多少？ → `{"country":"UAE","channel":"sms","volume":50000}` 结果（已修剪） `{ "country": "UAE", "unitPriceUsd": 0.0123, "unit": "per SMS segment", "estimatedMonthlyUsd": 615, "ratesReviewed": "2026-09-24", "note": "Indicative list rate, excluding taxes and sender-ID fees. Volume pricing available; a written quote confirms per-operator pricing." }`

智能体

阿联酋通过运营商直连覆盖（Etisalat / e& · du）。您的发送者ID需要向 TDRA 进行预报备，通常需要 5–7 个工作日。您的代码消息为 1 短信分段。按每分段 US$0.0123 的参考价计算，每月 50,000 条代码的费用约为 US$615，不含税费和发送者ID费用。这并非正式报价。

下一步：请访问broadnet.me/signup申请测试权限。一旦您拥有了令牌，我可以通过消息服务器向您的已验证号码发送一个测试验证码。需要我为您准备该消息以供确认吗？

每次部署时均基于实时工具输出构建

## 复制并粘贴

示例仅使用虚构数字。请从环境变量中读取令牌；切勿将其粘贴到聊天窗口或已提交的文件中。

mcp.json — 两个服务器

```
{
  "mcpServers": {
    "broadnet-knowledge": {
      "type": "http",
      "url": "https://www.broadnet.me/mcp"
    },
    "broadnet": {
      "type": "http",
      "url": "https://mcp.broadnet.me/mcp",
      "headers": {
        "Authorization": "Bearer ${BROADNET_TOKEN}"
      }
    }
  }
}
```

字段名称在不同客户端之间略有不同（有些要求将 "streamable-http" 作为类型，有些则从单独的设置中读取标头）。如果您还没有令牌，请仅添加知识条目。

tools/call estimate_price（知识服务器）

```
curl -X POST https://www.broadnet.me/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "MCP-Protocol-Version: 2025-06-18" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call",
       "params":{"name":"estimate_price",
                 "arguments":{"country":"UAE","channel":"sms","volume":50000}}}'
```

发送一条短信（REST API）

```
curl -X POST https://api.broadnet.me/sms/sendSms \
  -H "Authorization: Bearer $BROADNET_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "senderId": "BroadNet",
    "destinationNumber": "447700900123",
    "message": "Your verification code is 482913",
    "messageType": "TEXT"
  }'

# 200 OK → response body is the message ID, e.g. 2603121407537573731
```

HTTP 200会返回消息ID。API没有幂等性标头：在发生网络错误或5xx错误后，请在重新发送之前通过消息ID检查消息状态。

使用TypeScript SDK进行相同的发送

```
// npm install @broadnet/cpaas-sdk axios
import { Configuration, SMSSMSApi } from "@broadnet/cpaas-sdk";

const sms = new SMSSMSApi(
  new Configuration({
    basePath: "https://api.broadnet.me",
    accessToken: process.env.BROADNET_TOKEN!,
  }),
);

const res = await sms.smsSendsmsPost({
  sMSSmsRequest: {
    senderId: "BroadNet",
    destinationNumber: "447700900123",
    message: "Your verification code is 482913",
    messageType: "TEXT",
  },
});

console.log(res.data); // message ID
```

发送已通过审核的WhatsApp模板（REST API）

```
# Send an approved WhatsApp template
curl -X POST https://api.broadnet.me/whatsapp/message/sendbulk \
  -H "Authorization: Bearer $BROADNET_TOKEN" \
  -F batchId=0 \
  -F campaignName=order-updates \
  -F destinationNo=447700900123 \
  -F messageType=TEMPLATE \
  -F templateName=order_update \
  -F templateLanguage=en_US \
  -F bodyTemplateVariables=INV-400

# 200 OK → the response carries the batchId; per-recipient status
# (SUBMITTED → SENT → DELIVERED → READ) arrives on your webhook.
```

模板消息不受24小时服务窗口限制；自由文本消息则需要处于开启的窗口期内。

## 机器可读的入口点

采用浏览模式而非连接模式的智能体可以直接读取纯文本文件。它们均无需登录。

- [llms.txt `/llms.txt` 语言模型的站点索引，包含关于智能体访问与约束的部分，且每种语言对应一个文件。](https://www.broadnet.me/llms.txt)
- [智能体技能 `/.well-known/agent-skills/index.json` 五份SKILL.md操作指南：覆盖范围与价格、发送者ID报备、首次测试短信、测试权限以及连接至MCP服务器。](https://www.broadnet.me/.well-known/agent-skills/index.json)
- [A2A智能体卡片 `/.well-known/agent-card.json` Agent2Agent卡片，提供同样的只读知识工具，通过 /a2a 上的JSON-RPC提供服务。](https://www.broadnet.me/.well-known/agent-card.json)
- [API目录 `/.well-known/api-catalog` 一个指向OpenAPI规范、API文档、两个MCP服务器以及状态页面的RFC 9727链接集。](https://www.broadnet.me/.well-known/api-catalog)
- [MCP服务器卡片 `/.well-known/mcp.json` 描述两台MCP服务器及其传输和认证方式的服务器卡片。](https://www.broadnet.me/.well-known/mcp.json)
- [OpenAPI 3.1 `/developers/openapi.yaml` 完整的REST API描述：下载它，或基于它生成类型化客户端。](https://www.broadnet.me/developers/openapi.yaml)
- [Markdown 孪生 `/pricing/sms/uae.md` 在大多数页面URL后添加 .md，或发送Accept: text/markdown，即可获取该页面的纯净Markdown副本。](https://www.broadnet.me/pricing/sms/uae.md)
- [数据文件 `/data/coverage.json` 覆盖范围、公布的价格以及每个市场的法规，详见JSON（覆盖范围和价格的CSV文件）。](https://www.broadnet.me/data/coverage.json)
- [状态JSON `/status/api/v2/summary.json` 以Statuspage v2摘要形式，测量网站、API网关以及两个MCP端点的可达性。](https://www.broadnet.me/status/api/v2/summary.json)

## 智能体必须遵守的规则

发送消息的智能体将使用您的凭据代表您的品牌进行操作。请将这些规则纳入其指令和工具中。

- 先征得同意，后发送内容 仅向已选择接收营销信息的接收者发送营销短信，并保留其选择记录。sender_id_rules工具会返回每个市场的选择接收规则。
- 尊重退订请求 营销短信包含市场的退订关键词，例如STOP。智能体绝不会向已退订的号码发送消息。
- 仅限已报备的发送者ID 许多市场要求预先报备字母数字组合的发送者ID。AI智能体使用您账户中已获批的发送者ID，绝不会使用虚构的ID。
- 遵守静默时间 多个市场禁止在夜间发送营销短信。sender_id_rules会返回获取到的静默时段；OTP和警报通常允许全天候发送。
- 保护OTP流程免受短信刷量欺诈 机器人可能会向其获利的号码触发OTP发送。请针对每个号码、IP和设备限制代码请求频率，并拦截您不服务的目的地。MyOTP默认开启这些保护措施。
- 由人工确认每次发送 在任何发送工具（尤其是向大量接收者发送的工具）运行前，请让客户进行确认，并仅启用智能体所需的工具。
- 使用您的号码进行测试 使用测试凭据时，请仅向您本人已验证的号码发送。示例和提示中使用的均为虚构号码。
- 请勿在聊天中泄露令牌 该令牌是发送凭据。请从环境变量中加载，切勿通过提示词加载，若发生泄露请立即撤销。

## 相关

[MCP服务器 两台服务器详情：端点、认证、客户端设置及演示。](https://www.broadnet.me/zh/developers/mcp) [快速入门 从申请测试权限到使用curl或TypeScript SDK发送第一条短信。](https://www.broadnet.me/zh/developers/quickstart) [API参考 每个通道的发送端点、Bearer认证及错误格式。](https://www.broadnet.me/developers/api) [安全重试 如何在不重复发送消息的情况下进行重试。](https://www.broadnet.me/developers/idempotency) [短信分段计数器 任何消息文本的编码和分段统计。](https://www.broadnet.me/developers/sms-counter) [BroadNet推理 用于语音和文档智能体的阿拉伯语语音转文本及视觉模型。](https://www.broadnet.me/zh/products/inference) [DialerBee 面向联络中心的多种语言AI外呼系统。](https://www.broadnet.me/zh/dialerbee) [什么是短信刷量欺诈？ OTP欺诈的工作原理及防御手段。](https://www.broadnet.me/zh/answers/what-is-sms-pumping)

## 问题

### AI智能体可以通过BroadNet发送短信和WhatsApp消息吗？

是的。您可以使用BroadNet令牌将其连接到位于 https://mcp.broadnet.me/mcp 的消息MCP服务器，或让您的代码调用位于 https://api.broadnet.me 的REST API。无论哪种方式，智能体都以您令牌的权限执行操作，因此每次发送都应要求人工确认。

### 智能体是否需要账户才能咨询覆盖范围或价格？

不需要。位于https://www.broadnet.me/mcp的知识MCP服务器是公开且只读的。它从与网站相同的数据中返回覆盖范围、发送者ID规则、参考价格表和法规。价格为参考价格，而非报价。

### 智能体如何发送一次性密码？

您的系统生成验证码，智能体通过POST /sms/sendSms发送短信，或通过WhatsApp身份验证模板发送。公开API没有独立的验证端点，因此验证码校验在您的系统中完成。

### 智能体可以拨打语音电话吗？

语音OTP、文本转语音外呼和IVR通过您的BroadNet账户团队提供。这些功能不包含在公开的OpenAPI规范或MCP工具中。DialerBee是BroadNet为联络中心提供的AI外呼系统。

### 如何获取令牌？

请在 /signup 申请测试权限。BroadNet会在一个工作日内回复并提供测试凭据。目前不提供即时自助获取的密钥。

## 将您的智能体连接至BroadNet

立即开始使用公共知识服务器。当您的智能体准备好发送时，请申请测试权限。

[申请测试权限（英文表单）](https://www.broadnet.me/zh/contact?intent=test-access) [MCP服务器指南](https://www.broadnet.me/zh/developers/mcp)
