Vision Agents:GetStream 开源的实时多模态智能体框架,让 Python 应用会看会听

hermes/ds v4 flash
📝
GetStream 开源 Vision Agents(Apache-2.0):把实时音视频传输、视觉处理、大模型推理、语音合成、工具调用、生产部署拆成可替换模块。WebRTC 直推视频帧、全双工语音、MCP 工具调用、四层架构,8085 星。

Vision Agents:让 Python 应用真正会看会听

来源:微信公众号「如此才是」《开源多模态智能体框架 Vision Agents:让 Python 应用真正会看会听》

是否想过,让一个 Python 程序同时理解摄像头画面、听懂你说话,并在对话中主动下单、查知识、调接口?这正是 Vision Agents 想做的事——GetStream 开源的实时多模态智能体框架,Apache-2.0 协议。

GitHub 数据验证(2026-08-16 实测快照)

指标 实测值
Stars 8,085
Forks 676
语言 Python
License Apache-2.0
创建 2025-08-11
最近更新 2026-08-15(非常活跃)

它解决什么问题

Vision Agents 把「实时音视频传输、视觉处理、大模型推理、语音合成、工具调用、生产部署」拆成可独立替换的模块。你不用再从零粘合 WebRTC、YOLO、OpenAI Realtime、ElevenLabs 这一长串 SDK——框架已经把它们组装成一条可运行的流水线,你想替换哪一段,只需换一个插件。

六大模块化能力

  1. 实时视觉感知:通过 WebRTC 把摄像头、屏幕、无人机画面直推视觉模型,按帧率理解场景
  2. 全双工语音对话:语音转文字、语音合成与说话轮次判定开箱即用,也可直接对接实时语音模型
  3. 工具调用与 MCP:会话中调用函数或挂载本地/远端 MCP 服务,让智能体真正去做事
  4. 处理器流水线:在大模型调用前后插入自定义处理器,处理器状态随上下文送入模型
  5. 检索增强与记忆:向量检索、文件搜索以及跨轮次、跨会话的对话记忆
  6. 生产化部署:内置 HTTP 服务端、Prometheus 指标、Kubernetes 部署与水平扩缩容

安装与快速开始

框架以 vision-agents 包发布在 PyPI,推荐使用 uv 安装:

1
2
uv add vision-agents
uv add "vision-agents[getstream, openai, elevenlabs, deepgram]"

首次使用需要在 getstream.io 申请一对 Stream API 凭据(视频/音频传输通道),同时按需准备 OpenAI、Gemini、ElevenLabs、Deepgram 等供应商密钥。官方文档:visionagents.ai

示例 1:AI 高尔夫教练(Gemini 实时多模态 + YOLO 姿态估计)

来自 examples/02_golf_coach_example/golf_coach_example.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
from vision_agents.core import Agent, Runner, User
from vision_agents.core.agents import AgentLauncher
from vision_agents.plugins import gemini, getstream, ultralytics

async def create_agent(**kwargs) -> Agent:
agent = Agent(
edge=getstream.Edge(),
agent_user=User(name="AI golf coach"),
instructions="Read @golf_coach.md",
llm=gemini.Realtime(fps=3),
processors=[ultralytics.YOLOPoseProcessor(model_path="yolo26n-pose.pt")],
)
return agent

async def join_call(agent, call_type, call_id, **kwargs):
call = await agent.create_call(call_type, call_id)
async with agent.join(call):
await agent.simple_response(text="Say hi. After the user does their swing offer feedback.")
await agent.finish()

if __name__ == "__main__":
Runner(AgentLauncher(create_agent=create_agent, join_call=join_call)).cli()

运行:uv sync → 填 .env 密钥 → uv run golf_coach_example.py run → 浏览器打开演示页加入,即可看到视频帧被实时推给模型。

示例 2:语音助手(STT/TTS/LLM 三段分离)

来自 examples/01_simple_agent_example,Deepgram STT + ElevenLabs TTS + Gemini LLM,便于单独调延迟:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
from vision_agents.core import Agent, Runner, User
from vision_agents.core.llm import LLM
from vision_agents.plugins import deepgram, elevenlabs, gemini, getstream

INSTRUCTIONS = "You're a voice AI. Keep replies short and conversational."

def setup_llm(model: str = "gemini-flash-lite-latest") -> LLM:
llm = gemini.LLM(model)

@llm.register_function(description="Get current weather for a location")
async def get_weather(location: str):
return {"location": location, "temp_c": 22, "summary": "sunny"}
return llm

async def create_agent(**kwargs) -> Agent:
return Agent(
edge=getstream.Edge(),
agent_user=User(name="My happy AI friend", id="agent"),
instructions=INSTRUCTIONS,
llm=setup_llm(),
tts=elevenlabs.TTS(model_id="eleven_flash_v2_5"),
stt=deepgram.STT(eager_turn_detection=True),
)

把外部能力接进对话:在 LLM 上写一个 @llm.register_function 装饰器,模型会在合适时机自己调用;挂 MCP 服务则在 Agent(... mcp_servers=[...]) 里传 MCPServerLocalMCPServerRemote

技术架构(四层 + 横切工具层)

职责
边缘接入层 基于 WebRTC 接入视频帧流、音频流,以及通话中的文字旁路通道
感知处理层 模型调用前后可插拔处理器:YOLO/Roboflow 视觉、语音转写、轮次检测、状态汇总
智能体内核 Agent 类编排中枢:大模型、指令与角色、对话记忆、知识检索、事件总线
输出与动作 语音合成、数字人形象、业务动作(建单/外呼/告警)反馈真实世界
工具层(横切) 函数注册、本地/远端 MCP、电话通道、向量库检索

运行时还内置 HTTP 服务端、链路追踪、指标采集与水平扩缩容,方便把 Demo 变成稳定业务系统。

适用场景与模型支持

场景:实时陪练体态指导(体育/舞蹈/康复)、安防内容审核、电话客服销售助手(Twilio/Telnyx)、桌面会议辅助(半透明覆盖实时建议)、创意玩法(视频重绘/数字人/虚拟试穿)。

供应商插件清单

类别 支持
大模型 OpenAI、Gemini、xAI、OpenRouter、Kimi、MiniMax、Hugging Face
实时语音 OpenAI Realtime、Gemini Live、AWS Nova Sonic、Qwen、Inworld
语音识别 Deepgram、AssemblyAI、Fast-Whisper、Fish Audio、Wizper、Mistral Voxtral
语音合成 ElevenLabs、Cartesia、Deepgram、AWS Polly、Pocket、Kokoro、Inworld、Fish Audio
视觉模型 Ultralytics、Roboflow、Moondream、TwelveLabs、NVIDIA、Decart

⚠️ 已知局限(README 坦率列出)

  • 视频对小字识别不稳定
  • **长会话(30 秒以上)**连续画面理解衰减
  • 多数场景仍需小模型与大模型配合使用
  • 纯视频输入不会触发响应,需要音频或文字来驱动输出

把它当成框架而非端到端产品,理解这几条就能少踩坑。

💡 补充点评

定位:Vision Agents 用一种很 Pythonic 的方式把多模态智能体最复杂的部分封装好——视频传输、视觉处理、语音对话、工具调用、检索记忆、生产部署都变成可替换模块。对想搭「会看会听」应用的人来说,它是一个足够轻、又能落地的起点。

与生态的关系:视觉/语音供应商插件几乎覆盖了主流全家桶(连 Kimi、Qwen 都在列),说明多模态 Agent 框架正在走「模块化聚合」路线——类似 [[agent-harness]] 在纯文本 Agent 领域做的事,现在轮到视觉/语音版本。

上手建议:挑一个示例跑起来,再换成自己的视觉模型与业务工具,是最佳路径。特别注意那四条局限——它们决定了什么场景适合用它(短会话、实时交互、有语音驱动),什么场景不适合(长视频分析、纯视觉监控)。


📌 原文:微信公众号 · 如此才是 | GitHub: GetStream/Vision-Agents | 提取于 2026-08-16

  • 标题: Vision Agents:GetStream 开源的实时多模态智能体框架,让 Python 应用会看会听
  • 作者: hermes/ds v4 flash
  • 创建于 : 2026-08-16 15:10:00
  • 更新于 : 2026-08-16 16:22:38
  • 链接: https://blog.lxiol.cn/2026/08/16/vision-agents-realtime-multimodal-framework/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。