语音AI代理服务

一个基于VideoSDK AI代理框架和Swiggy MCP服务器的语音AI代理,支持通过语音订购食品、杂货和预订餐厅。

  • by DeepBhupatkar
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 DeepBhupatkar/swiggy-voice-ai-agent-videosdk-mcp

使用说明

Swiggy语音人工智能代理——基于VideoSDK代理框架和MCP构建

在Swiggy上订购食物、杂货和预订餐厅餐桌——只需用你的声音。由...驱动 VideoSDK人工智能代理,开源语音AI代理框架。

一个真实世界的演示如何 VideoSDK人工智能代理框架 连接到 Swiggy的MCP服务器 构建一个功能齐全的 语音驱动的人工智能代理 这奏效了 浏览器, 电话呼叫(SIP),以及 WhatsApp.


免责声明

该项目已建成 仅用于演示和教育目的 --展示如何 VideoSDK人工智能代理框架 与外部MCP服务器集成,用于语音驱动的工作流程。

Swiggy MCP集成基于 Swiggy的官方MCP服务器清单.这个项目是 与Swiggy无关、不受Swiggy认可或不属于Swiggy的产品所有Swiggy商标均归Swiggy所有。使用Swiggy MCP服务器须遵守Swiggy的条款和条件。

请勿将其用于商业目的。


这表明了什么

能力 如何使用
MCP集成 使用28个真实工具连接到3个Swiggy MCP服务器
语音AI管道 Agent One(多提供商)和Agent Two(Gemini原生音频)
电话和WhatsApp 同一代理处理浏览器、SIP电话和WhatsApp语音
功能工具 3项服务中的28个工具——搜索、购物车、结账、跟踪
OAuth身份验证 用于Swiggy帐户访问的完整OAuth 2.0 PKCE流

建筑

运作原理

  1. 用户发言 进入游乐场(浏览器)、手机或WhatsApp
  2. 音频 通过VideoSDK Cloud路由到代理工作器
  3. 管道 将语音转换为文本并将其发送到LLM
  4. LLM 理解意图并调用相应的Swiggy MCP工具
  5. SwiggyMCPServer 使用OAuth将工具调用路由到正确的Swiggy端点
  6. 真实数据 返回(餐厅、菜单、价格、购物车状态)
  7. LLM 通过TTS向用户反馈自然响应。

服务和工具

服务 工具 功能
送餐 13 搜索餐厅、浏览菜单、管理购物车、申请优惠券、下订单(COD)、跟踪配送
Instamart 8 按名称/品牌搜索杂货,管理购物车,结账(COD),跟踪订单
外出就餐 7 查找附近的餐厅、查看位置、预订餐桌(免费预订)

快速开始

自动设置

git clone https://github.com/DeepBhupatkar/swiggy-voice-ai-agent-videosdk-mcp.git
cd swiggy-voice-ai-agent-videosdk-mcp
chmod +x run.sh
./run.sh

手动设置

1.克隆和创建环境

git clone https://github.com/DeepBhupatkar/swiggy-voice-ai-agent-videosdk-mcp.git
cd swiggy-voice-ai-agent-videosdk-mcp
python3 -m venv venv
source venv/bin/activate
pip install -r requirement.txt

2.配置API密钥

cp .env.example .env
密钥 提供者 必需
VIDEOSDK_AUTH_TOKEN App.videosdk.live 所有模式
GOOGLE_API_KEY aistudio.google.com 所有模式
DEEPGRAM_API_KEY console.depgram.com 仅限一号特工
CARTESIA_API_KEY 游戏.cartesia.ai 仅限一号特工

3.登录Swiggy

python swiggy_mcp.py

打开浏览器进行Swiggy OAuth登录。令牌保存在本地——不存储密码。

4.运行代理

# Agent One — Deepgram STT + Google LLM + Cartesia TTS (richer voice)
python swiggy_agent_one.py

# Agent Two — Gemini native audio (only VideoSDK + Google keys needed)
python swiggy_agent_two.py

# Phone/WhatsApp — registers for inbound SIP calls
python swiggy_agent_phone.py

代理自动创建一个会议室 playground=True --不需要房间ID。 动态 VideoSDK游乐场链接 (带有token和meetingId)在代理启动后打印到终端上——打开它进行对话。

5.和你的经纪人谈谈 --打开终端中打印的动态游乐场链接


电话和WhatsApp

相同的Swiggy代理可以处理 电话 和 WhatsApp语音 使用VideoSDK的SIP电话集成。

以电话代理身份运行

python swiggy_agent_phone.py

这将使用以下方式向VideoSDK的电话服务注册代理 Options(register=True)。然后,代理等待呼入电话。

设置SIP网关(电话呼叫)

  1. 从SIP提供商(Twilio、Vonage、Telnyx、Plivo、Exotel)获取电话号码
  2. 在 VideoSDK仪表板 → 电话技术:
    • 创建一个 入站网关 用你的电话号码
    • 创建一个 出站网关 使用您的SIP提供商凭据
    • 创建一个 路由规则:网关→ 代理→ SwiggyVoiceAgent
  3. 配置您的SIP提供商以将呼叫转发到VideoSDK入站网关URL
  4. 拨打您的电话号码,Swiggy客服会接听!

完整指南: AI电话代理快速入门

设置WhatsApp语音

  1. 你需要一个 元商业账户 使用经过验证的WhatsApp商务电话号码
  2. 在 VideoSDK仪表板 → 电话技术:
    • 创建一个 入站网关 使用您的WhatsApp号码
    • 创建一个 路由规则:网关→ 代理→ SwiggyVoiceAgent
  3. 使用Meta Graph API启用SIP转发到VideoSDK:
curl --location 'https://graph.facebook.com/v19.0/{phone_number_id}/settings' \
  --header 'Authorization: Bearer {access_token}' \
  --header 'Content-Type: application/json' \
  --data '{"calling":{"status":"ENABLED","sip":{"status":"ENABLED","servers":[{"hostname":"YOUR_HOSTNAME.sip.videosdk.live"}]}}}'
  1. 拨打您的WhatsApp商业号码——Swiggy客服接听!

完整指南: WhatsApp代理快速入门

拨打外线电话

curl --request POST \
  --url https://api.videosdk.live/v2/sip/call \
  --header 'Authorization: YOUR_VIDEOSDK_TOKEN' \
  --header 'Content-Type: application/json' \
  --data '{"gatewayId": "your_outbound_gateway_id", "sipCallTo": "+1234567890"}'

项目结构

├── swiggy_agent_one.py      # Agent One — Deepgram STT + Google LLM + Cartesia TTS
├── swiggy_agent_two.py      # Agent Two — Gemini native audio (fewest keys, lowest latency)
├── swiggy_agent_phone.py    # Agent Phone — telephony & WhatsApp (SIP)
├── swiggy_mcp.py            # Swiggy MCP connection + OAuth 2.0 PKCE
├── instructions.py          # Agent persona, rules, and tool workflows
├── setup.sh                 # Automated setup + launch (one command to run everything)
├── requirement.txt          # Python dependencies
├── .env.example             # API key template
├── .gitignore               # Excludes secrets, venv, caches
└── swiggy.md                # Swiggy MCP reference docs

身份验证的工作原理

该项目直接连接到Swiggy的MCP服务器,不需要IDE扩展。

First run:
  python swiggy_mcp.py → browser opens → Swiggy login
                       → OAuth callback on localhost:8765
                       → tokens saved to .swiggy_tokens.json

Subsequent runs:
  SwiggyMCPServer reads .swiggy_tokens.json
               → auto-refreshes if expired
               → connects to mcp.swiggy.com with Bearer token

使用VideoSDK AI代理构建

该项目建立在 VideoSDK人工智能代理 --一个用于构建实时多模式会话AI代理的开源Python框架。

为什么选择VideoSDK代理?

  • 多型号支持 --OpenAI、谷歌Gemini、Anthropic、AWS Nova Sonic等
  • 20+TTS提供商 --ElevenLabs、Cartesia、OpenAI、谷歌、AWS Polly等。
  • MCP集成 --通过模型上下文协议将代理连接到外部工具
  • 电话技术 --通过内置网关支持SIP电话和WhatsApp语音
  • A2A协议 --复杂工作流中的代理间通信
  • 可观测性 --内置OpenTetry跟踪和指标

自己试试: github/videosdk-live/agents


重要说明

  • 这是一个演示 --旨在通过真正的MCP集成展示VideoSDK的代理框架功能。不用于商业用途。
  • Swiggy MCP参考: github/Swiggy/Swiggy-mcp-server-manifest
  • 关闭Swiggy应用程序 使用此代理时,同时进行的会话会导致冲突。
  • COD订单是真实的 --代理商下实际订单。结账前务必确认。
  • 仅限免费预订 对于外出就餐,不支持付费预订。

故障排除

问题 解决方案
401 Unauthorized 重新运行 python swiggy_mcp.py 刷新令牌
浏览器无法打开登录 从终端复制URL并手动打开
连接超时 检查互联网;Swiggy MCP可能暂时停机
代理未收到呼叫 验证路由规则 agent_id 火柴 SwiggyVoiceAgent 在 swiggy_agent_phone.py。对于浏览器代理,不需要房间ID——一个是自动生成的。

作者

Deep Bhupatkar --共同建设者 VideoSDK语音AI代理框架

如果你觉得这有用,请 为这个回购加星 和 启动VideoSDK代理框架 我也是!


许可证

该项目根据MIT许可证获得许可。