VoiceOps 语音运维助手

用语音对话驱动 MCP 与 A2A 工具,完成 Kubernetes 与 SRE 的日常查询和操作。

Star 数
★ 71
最近更新
1 年前
License
MIT
主语言
Python

30 秒速览

运行形态
命令行工具
可在哪里用
兼容但需适配OpenAI API
费用
软件免费,模型调用费用自付
上手难度
中 · 需要几步配置
开始前需要
Python 3.9+Node.js/npx(示例 MCP 服务器)OpenAI API 密钥ElevenLabs API 密钥至少一个 HTTP/SSE MCP 服务器端点Shell / 命令行网络访问本地文件系统MCP Server
典型场景
SRE 值班时双手占用,希望用语音快速查询某命名空间的 Pod、事件或 Deployment 列表
不适合
  • 需要完全离线或本地方案,不接受调用 OpenAI/ElevenLabs 云服务的团队
  • 只想通过 stdio/subprocess 方式接入 MCP 服务器的用户(当前仅支持 HTTP/SSE)
  • 无法提供 Node.js/npx 或至少一个 MCP 服务器端点的环境

这个 Agent 能做什么,适合哪些场景?

VoiceOps 是一个基于 LiveKit Agents 框架的语音助手应用,面向 SRE 与 Kubernetes 运维场景。它把语音输入交给 OpenAI Whisper 转写,由 GPT-4o 理解并决策,再通过 ElevenLabs 合成语音回复,Silero 负责语音活动检测。核心能力在于工具调用:agent 从项目根目录的 mcp_servers.yaml 读取 MCP 服务器配置,通过 HTTP/SSE 连接外部服务,并可选用 type: a2a 接入 A2A 协议代理,把对方通过 /.well-known/agent.json 暴露的技能注册为可调用工具。入口是 main.py,核心编排在 agent_core.py,工具集成在 tool_integration.py 与 mcp_client/ 包中,最终以本地 Python 进程形式加入 LiveKit 房间运行。

启动后 agent 连接 LiveKit 房间并等待语音输入;Silero 做语音活动检测,Whisper 转写文本,GPT-4o 决定是直接回答还是调用工具。工具来自 mcp_servers.yaml 中声明的服务器:标准 MCP 服务器通过 sse_client.py 以 SSE 方式连接,allowed_tools 支持 list_*、describe_*、get_* 之类的通配过滤;对于要求鉴权的服务器,auth.py 用 HMAC-SHA256 对请求签名并以 auth 参数传递。配置 type: a2a 的条目则走 a2a.py,从 /.well-known/agent.json 发现技能并注册为工具,可带自定义 headers。工具执行结果回到模型组织答案,再由 ElevenLabs 转成语音输出。README 附带的示例包括 mcp-server-kubernetes(仅非破坏性工具)和通过 Supergateway 桥接的 kubectl-ai。

  1. SRE 值班时双手占用,希望用语音快速查询某命名空间的 Pod、事件或 Deployment 列表
  2. 在受控测试集群中,用口语指令扩缩容 Deployment 或拉取 Job 日志,验证排障流程
  3. 把已在 Kubernetes 中部署的 Kagent A2A 代理作为技能接入,用语音驱动集群诊断
  4. 需要把多个 MCP 服务器(Kubernetes、自定义运维服务)统一挂到一个语音入口的安全团队
  5. 想验证 MCP + A2A 工具编排能否用自然语言触发,而不写前端界面的开发者

如何安装或部署这个 Agent?

需要 Python 3.9+、OpenAI 与 ElevenLabs 的 API Key,以及至少一个 HTTP/SSE MCP 服务器端点;运行 README 的示例 MCP 服务器还需要 Node.js/npx。

make venv
source venv/bin/activate
make uv        # 可选,用于更快的安装
make install

设置凭证:

export OPENAI_API_KEY=your_openai_api_key
export ELEVEN_API_KEY=your_elevenlabs_api_key

如需启动示例 Kubernetes MCP 服务器(仅允许非破坏性工具):

ALLOW_ONLY_NON_DESTRUCTIVE_TOOLS=true ENABLE_UNSAFE_SSE_TRANSPORT=1 PORT=8092 npx mcp-server-kubernetes

如何使用这个 Agent?

在项目根目录编辑 mcp_servers.yaml 声明可用的 MCP 服务器与工具白名单:

servers:
  - name: k8s-mcp-server
    url: http://localhost:8092/sse
    allowed_tools:
      - list_*
      - describe_*
      - get_*

需要鉴权的服务器可追加 auth 段:

servers:
  - name: secure-mcp-server
    url: https://example.com/sse
    allowed_tools: [*_*]
    auth:
      type: secret_key
      env_var: MY_SECRET_KEY

接入 A2A 代理:

servers:
  - name: my-a2a-agent
    type: a2a
    url: https://my-a2a-agent.example.com
    headers:
      Authorization: Bearer <token>

运行测试与启动:

make test
make run

启动后对 agent 说 hello,即可使用「list pods in dev namespace」这类指令。

这个 Agent 有哪些优点和局限?

优点
  • 完整的语音链路已经打通:Silero 语音活动检测、Whisper 转写、GPT-4o 推理、ElevenLabs 合成,无需自己拼接
  • 工具接入灵活,mcp_servers.yaml 支持多服务器、通配符白名单、HMAC-SHA256 鉴权以及 A2A 技能发现
  • 拿到 LiveKit Agents 的实时房间模型,可直接复用 LiveKit 的音频传输能力
  • README 提供可复现的示例:mcp-server-kubernetes 的只读模式与 Supergateway 桥接 kubectl-ai
  • MIT 许可,示例与测试(test_agent_config.py、make test)一并给出
局限
  • 当前只支持 HTTP/SSE MCP 服务器,stdio/NPX 子进程方式尚未支持,必须额外借助 Supergateway 桥接
  • 模型与语音链路绑定 OpenAI 和 ElevenLabs 两家付费 API,无本地模型或替换说明
  • 可以对真实集群执行修改与删除操作,README 自身也要求先在安全环境验证并收紧工具权限
  • 示例依赖 npx 与 Node.js,且需要自行准备可访问的 MCP 端点,属于多步配置
  • 文档结构较松散:Quick Start 与环境变量的对应关系、LiveKit 房间连接参数未完整给出

这个 Agent 与同类方案有什么区别?

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
VoiceOps 语音运维助手 当前 36 · 缺口较多 命令行工具免费 + 模型费 ★ 71 1 年前 Python OpenAI API
Hector 智能体运行平台 55 · 缺口较多 命令行工具免费 + 模型费 ★ 60 5 个月前 Go OpenAI API · Claude API
Moltis 个人代理服务器 53 · 缺口较多 自托管服务免费 + 模型费 ★ 2.9k 1 天前 Rust Codex · Claude Code
Cordum Agent Control Plane 64 · 存在缺口 自托管服务免费 ★ 511 2 天前 Go Claude Code

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
缺口较多
36/ 100 五分制 1.8 / 5
信任安全 7/29
可靠稳定 5/14
适用触发 9/18
规范维护 8/18
有效结果 4/13
证据核验 3/8
查看各维度的扣分理由
信任安全7 / 29 · 1.2/5

README 明确警告该 Agent 可创建、修改、删除 Kubernetes 资源,并提供了 allowed_tools 通配符白名单与 ALLOW_ONLY_NON_DESTRUCTIVE_TOOLS 示例,说明最小权限有初步设计(得 1 分);但白名单为可选、默认未强制,且示例中出现 allowed_tools: [*_*] 与 [*] 这类宽泛授权,未提供任何执行前用户确认机制(user_confirmation 记 0)。数据流方面仅描述连接 LiveKit 房间与外部 MCP/A2A 服务,未说明语音与工具数据如何流向 OpenAI/ElevenLabs 等第三方(得 1 分)。敏感数据处理仅提及通过环境变量注入密钥与 HMAC 签名,未涉及日志脱敏或密钥轮换(得 1 分)。依赖以宽松版本约束(~=)固定,mcp 精确锁定,但无锁文件、无漏洞扫描说明(得 1 分)。外部副作用(删除/扩缩容)无回滚或 dry-run 机制(rollback 记 0)。来源归属仅致谢 LiveKit/OpenAI 等,未标注代码来源(得 1 分)。

可靠稳定5 / 14 · 1.8/5

README 与 requirements 基本一致,但 README 提到 a2a.py、mcp_client 等文件而证据中未提供其内容,无法核对实现与文档是否一致(self_consistency 得 1 分)。依赖均为公开 PyPI 包,但 a2a-min 等较冷门、版本未锁定,可用性存在不确定性(得 1 分)。Troubleshooting 覆盖 SSL 与 schema 校验错误,但未说明工具调用失败、MCP 断连时的用户提示(failure_messages 得 1 分)。

适用触发9 / 18 · 2.5/5

README 给出 SRE/Kubernetes 场景、示例提示词与 Kagent 集成路径,受众与场景清晰(得 2 分)。明确声明仅支持 HTTP/SSE MCP、暂不支持 NPX/子进程,能力边界有交代(得 2 分)。触发精度方面仅靠自然语言与 allowed_tools 通配符,未说明歧义消解或破坏性操作识别(得 1 分)。环境适配给出 macOS/Linux/Windows 的 Node 安装提示,但 Python 3.9+ 与 livekit-agents 1.0 的实际兼容性未验证(得 1 分)。

规范维护8 / 18 · 2.2/5

README 有目录、项目结构、配置与测试章节,信息架构良好(得 2 分)。Quick Start 与 Makefile 目标清晰(得 2 分)。命名上仓库名 voice-mcp-agent 与 README 中 VoiceOps、克隆示例 voice-mcp 不一致,命名稳定性不足(得 1 分)。示例提示词与 FAQ/Troubleshooting 较丰富(得 2 分)。已知限制仅提及 MCP 传输方式,未系统列出安全与运维限制(得 1 分)。LICENSE 为完整 MIT(得 2 分)。无版本号与 CHANGELOG(记 0)。维护责任仅指向作者与贡献流程,无发布/更新路径说明(得 1 分)。

有效结果4 / 13 · 1.5/5

输出可用性方面提供了语音交互与示例提示词,但未展示实际输出样例或结果格式(得 1 分)。边际价值在于将语音与 MCP/A2A 工具结合用于 K8s 运维,具备一定差异化,但同类项目较多且实现细节未展示(得 1 分)。成本收益上依赖 OpenAI GPT-4o、Whisper、ElevenLabs 多项付费 API,且对生产集群有破坏性风险,收益与成本/风险未量化(得 1 分)。

证据核验3 / 8 · 1.9/5

README 的声明(如 HMAC 认证、A2A 发现)无法与所提供文件交叉核对,仅能追溯到 README 自身(claim_traceability 得 1 分)。证据仅含 README、LICENSE、requirements,缺少代码与测试文件,跨源佐证薄弱(得 1 分)。README 中事实与推断(如“Vibe Coding”精神、未来将支持 NPX)混杂,未明确区分(得 1 分)。

风险与缓解建议
  • 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
  • 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
  • 该 Agent 可对真实 Kubernetes 集群执行创建、修改、删除操作,且默认未强制最小权限白名单,示例中出现 [*_*] 等宽泛授权,接入生产前必须收紧 allowed_tools 并在安全环境验证。
  • 缺少执行前用户确认与回滚/dry-run 机制,破坏性操作一旦触发难以恢复。
  • 语音与工具数据会流向 OpenAI、ElevenLabs 等第三方,README 未说明数据流向与保留策略,需自行评估合规性。
  • 依赖版本多为宽松约束且含较冷门的 a2a-min,未提供锁文件或漏洞扫描,供应链风险需自行核查。
  • 仓库名、README 标题与克隆示例命名不一致,且无版本号/CHANGELOG,升级与追踪变更存在困难。
  • 发布者身份未经 FollowAgents 验证,维护责任与更新路径不明确,采用前应确认维护活跃度。
证据充分度:低 评估于 2026年10月20日 审查版本 1290b5d47f92
查看完整评分方法 →

常见问题

它能连接哪些 MCP 服务器?
目前仅支持 HTTP/SSE 传输的服务器,NPX 或子进程式的 stdio 服务器暂不支持。stdio 工具可先经 Supergateway 暴露为 SSE 端点,再写入 mcp_servers.yaml。
使用它会花多少钱?
代码以 MIT 许可免费。实际运行需要自备 OpenAI API Key 和 ElevenLabs API Key,按各自用量计费,项目本身不提供托管额度。
会不会误删集群资源?
存在这种可能,README 明确警告该 agent 可以创建、修改和删除 Kubernetes 资源。建议通过 allowed_tools 限制为 list_*、describe_*、get_*,或让 MCP 服务器以 ALLOW_ONLY_NON_DESTRUCTIVE_TOOLS=true 启动。
MCP 服务器需要鉴权怎么办?
在服务器配置里加 auth 段,指定 type: secret_key 与 env_var,agent 会用该环境变量中的密钥做 HMAC-SHA256 签名,作为 auth 参数附加到每个请求。
如何接入已有代理而不只是 MCP 工具?
把条目设为 type: a2a,agent 会从该地址的 /.well-known/agent.json 发现技能并注册为可调用工具,可用 allowed_tools 过滤;Kagent 就按这种方式接入。
在 GitHub 查看 ↗ 安装 ↓

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents