自定义集成与 MCP 协议:HTTP、Python 函数和 Agent 工具协议
三种自定义集成方式
如果你的业务系统不在 130+ 预构建列表里,PolyAI 提供三种灵活的自定义集成方式——从简单到复杂:
| 方式 | 复杂度 | 适合场景 |
|---|---|---|
| HTTP API 端点 | 低 | 你有一个 REST API,PolyAI 可以直接调用 |
| Python 转场函数 | 中 | 需要复杂逻辑、参数处理、多 API 串联 |
| MCP 协议 | 高 | 需要同时给多个 AI 工具暴露你的系统能力 |
HTTP API 端点:最常见的方式
如果你的业务系统有 REST API,PolyAI 可以直接作为客户端去调用。在 ADK 的 Python 转场函数里:
import requests
def check_order_status(order_id: str) -> dict:
resp = requests.get(
f"https://your-erp.com/api/orders/{order_id}",
headers={"Authorization": "Bearer YOUR_API_KEY"}
)
return resp.json()
PolyAI 的 Python 执行环境允许标准库和 requests 库,但不允许 subprocess、文件系统操作或对外发起任意网络请求(只能访问你在 Connect Portal 里配置的白名单端点)。这样既保证了安全,又不影响基本的 API 调用需求。
Python 转场函数:最灵活的方式
当 HTTP API 不够用的时候(需要多个 API 串联、需要复杂条件判断、需要格式化输出给 Flow),用 Python 函数直接写逻辑。ADK 把 Python 函数在本地项目里作为独立 .py 文件管理,push 到 PolyAI 后在对话管道里执行。
一个高级的例子:在身份验证场景里,函数需要先调 CRM 查客户存在性,再调银行 API 验证卡号,再调风控 API 查有没有欺诈历史,三个 API 串联后的结果决定 Flow 走哪个分支。这用 YAML 或无代码配置做不到,必须用 Python。
MCP 协议:最开放的方式
MCP(Model Context Protocol) 是由 Anthropic 推动的一个开放协议,让 AI 模型能以标准化方式访问外部工具和数据。PolyAI 是较早原生支持 MCP 的企业平台之一。
用 MCP 做集成的好处是一次实现,多处复用:
- 你实现一个 MCP Server 暴露你的业务系统能力(查询订单、修改库存等)
- PolyAI 通过 MCP 客户端连接到这个 Server,智能体就能调用这些能力
- Claude Desktop、Cursor、VS Code Copilot 等其他 AI 工具也能通过同一个 MCP Server 访问你的系统
这避免了为每个 AI 工具单独写一套集成——用 MCP 一套代码全打通。
安全边界
无论用哪种自定义集成方式,PolyAI 都有严格的安全边界:
- 网络出口白名单:Python 函数只能访问你在 Connect Portal 里显式配置的 API 端点,不能随便联网
- 执行超时:函数执行有硬性超时,避免阻塞对话管道(通常 5-10 秒)
- 无文件系统 / 子进程:函数不能读写文件、不能启动子进程,纯粹是计算 + 网络调用
- 密钥管理:API Key、密码等敏感信息通过 PolyAI 的 Secrets Management 功能安全存储,在 Python 函数里引用时用占位符,不会暴露
这些限制保证了即使你写了一个有 bug 的 Python 函数,也不会拖垮整个对话管道或泄露敏感数据。
选型建议
| 需求 | 推荐方式 |
|---|---|
| 调一个 API 查数据 | HTTP API 端点 + Python 简单函数 |
| 多个 API 串联 + 复杂条件 | Python 转场函数 |
| 给多个 AI 工具开放能力 | MCP 协议 |