目录

NVIDIA VSS:构建 GPU 加速的视觉智能体

NVIDIA VSS:构建 GPU 加速的视觉智能体

在视频数据爆发式增长的今天,如何让 AI 系统真正「看懂」视频,并按需检索、摘要、问答,已成为企业视觉智能化的关键需求。NVIDIA 给出的答案是 Video Search and Summarization(VSS)——一个面向视频搜索与摘要场景的 AI Blueprint(参考架构)。

下面从架构设计、工作流、代码结构、部署实践四个维度拆解这个仓库。


一、项目定位与目标受众

VSS 定位为构建 GPU 加速视觉智能体和 AI 视频分析应用的参考架构套件。它解决的问题是:如何在海量视频数据(存储档案或实时流)中,让下游应用通过自然语言完成搜索、摘要、问答和告警验证。

项目明确了两类目标用户:

  • 视频分析师与 IT 工程师:通过 1-Click 部署步骤、配置管理界面和即插即用模型快速上手,适合早期开发者。
  • GenAI 开发者与 ML 工程师:需要针对特定场景定制 pipeline、微调 LLM、利用详细配置选项进行深度优化的高级用户。

二、核心架构:四层处理体系

VSS 的架构分为四个层次,自底向上依次为:

┌────────────────────────────────────────────┐
│   Agent & Offline Processing              │
│   (智能体编排 / MCP / 搜索 / 摘要 / Q&A)    │
├────────────────────────────────────────────┤
│   Downstream Analytics                    │
│   (轨迹 / 事件 / 告警验证)                  │
├────────────────────────────────────────────┤
│   Real-Time Video Intelligence            │
│   (特征提取 / Embedding / 流理解)           │
├────────────────────────────────────────────┤
│   NIM Microservices                       │
│   (Cosmos-Reason2-8B / Nemotron-Nano-9B)  │
└────────────────────────────────────────────┘

2.1 NIM 微服务层(模型底座)

VSS 使用 NVIDIA NIM(NVIDIA Inference Microservices)作为推理底座,核心模型包括:

模型用途
Cosmos-Reason2-8B视觉语言模型(VLM),负责视频内容理解和问答
NVIDIA Nemotron-Nano-9B-v2大语言模型(LLM),负责推理、摘要生成和报告撰写

此外还支持 Qwen3-VL-8B-Instruct 等 VLM 模型,以及 Llama-3.3-Nemotron-Super-49B 等大模型,灵活适配不同精度与性能需求。

2.2 实时视频智能层(Real-Time Video Intelligence)

该层从视频流中实时提取丰富的视觉特征和语义 Embedding,并将结果发布到消息中间件(Kafka),供下游分析和智能体使用。核心微服务包括特征提取、Embedding 生成和流理解模块。

2.3 下游分析层(Downstream Analytics)

对实时视频智能层产生的元数据进行加工,输出轨迹(Trajectory)、事件(Incident)和经验证的告警(Verified Alert)。这一层完成了从「看见」到「理解发生了什么」的语义转换。

2.4 智能体与离线处理层(Agent & Offline Processing)

最顶层通过 MCP(Model Context Protocol) 统一接入各类视觉工具,包括:

  • 视频理解(VLM Q&A)
  • 语义视频搜索(Embedding 检索)
  • 长视频摘要(分块 + Dense Captioning + 聚合)
  • 视频片段/快照提取

智能体编排层则由 Top Agent 驱动,通过 Multi-Report Agent、Search Agent、Report Agent、Critic Agent 等子智能体协作完成复杂任务。


三、五大 Agent 工作流

VSS 提供了 5 个开箱即用的参考工作流,展示了各组件如何组合为完整 pipeline:

工作流描述文档锚点
Q&A and Report Generation(快速入门)视频检索 → VLM 问答 → 报告生成,针对短视频片段Quickstart
Alert Verification实时视频通过感知(检测+跟踪)和行为分析生成告警,再由 VLM 验证以降低误报率Alert Verification
Real-Time Alerts视频流持续经 VLM 处理,执行异常检测并实时输出告警RT Alert
Video Search基于视频 Embedding 对视频档案进行自然语言检索(Alpha 阶段)Video Search
Long Video Summarization(LVS)对长视频进行分块 Dense Captioning 和聚合摘要,适合数小时级别的录像分析LVS

每个工作流都可以通过对应的 developer-workflow profile(base / search / alerts / LVS)快速部署验证。


四、代码结构详解

video-search-and-summarization/
├── agent/                      # Python 智能体核心包
│   ├── src/vss_agents/
│   │   ├── agents/             # 智能体实现
│   │   │   ├── top_agent.py
│   │   │   ├── search_agent.py
│   │   │   ├── report_agent.py
│   │   │   ├── multi_report_agent.py
│   │   │   └── critic_agent.py
│   │   ├── tools/              # 工具函数(35+ 个)
│   │   │   ├── video_understanding.py
│   │   │   ├── embed_search.py
│   │   │   ├── vss_summarize.py
│   │   │   ├── incidents.py
│   │   │   ├── rtvi_vlm_alert.py
│   │   │   ├── video_caption.py
│   │   │   └── ...
│   │   ├── api/                # FastAPI 接口层
│   │   ├── embed/              # Embedding 相关
│   │   ├── evaluators/         # 评估器
│   │   └── video_analytics/    # 视频分析模块
│   ├── tests/                 # 单元测试
│   └── docker/                 # Dockerfile
├── deployments/                # 部署配置
│   ├── nim/                    # NIM 模型配置
│   │   ├── cosmos-reason2-8b/
│   │   └── nvidia-nemotron-nano-9b-v2/
│   ├── developer-workflow/     # 开发者 workflow
│   │   ├── dev-profile-base/   # 基础配置(视频理解+报告生成)
│   │   ├── dev-profile-search/ # 搜索配置
│   │   ├── dev-profile-alerts/ # 告警配置
│   │   └── dev-profile-lvs/    # 长视频摘要配置
│   ├── foundational/          # 基础服务(Kafka、Redis 等)
│   ├── rtvi/                   # 实时视频智能微服务
│   ├── vlm-as-verifier/       # VLM 验证器
│   └── compose.yml             # 根级编排文件
├── skills/                     # agentskills.io 兼容技能包
│   ├── deploy/                 # 部署技能
│   ├── video-search/           # 视频搜索技能
│   ├── video-summarization/    # 视频摘要技能
│   ├── video-understanding/    # 视频理解技能
│   ├── alerts/                # 告警技能
│   ├── rt-vlm/                # 实时 VLM 技能
│   ├── vios/                  # 视频 IO 与存储技能
│   └── video-analytics/        # 视频分析技能
├── ui/                         # Next.js 前端
│   ├── apps/
│   │   ├── nemo-agent-toolkit-ui/
│   │   └── nv-metropolis-bp-vss-ui/
│   └── packages/               # 共享 UI 包
└── scripts/
    └── deploy_vss_launchable.ipynb  # Brev 云端一键部署 notebook

4.1 agent/ 核心模块

智能体包是最核心的业务逻辑层,采用工具注册 + 智能体编排的设计模式:

  • agents/ 中的每个 Agent 负责一类任务(搜索、报告、批判分析),顶层 top_agent.py 负责协调分配。
  • tools/ 目录包含 35+ 个独立工具函数,涵盖视频帧提取、Embedding 搜索、告警格式化、图表生成、S3 资源访问等。工具通过 register.py 统一注册到智能体系统。
  • api/ 提供 FastAPI 接口,供外部调用智能体能力。

配置方面,Agent 使用 YAML 文件定义四个顶层 section:general(CORS / 前端类型 / 对象存储)、functions(工具和子智能体定义)、llms(LLM/VLM 连接配置)和 workflow(编排规则)。

4.2 deployments/ 部署配置

采用 Docker Compose 编排,各 profile 即是一个完整的功能配置集:

  • dev-profile-base:最基础的配置,包含视频理解(Video Understanding)和报告生成(Report Generation),适合入门。
  • dev-profile-search:在 base 基础上增加 Embedding 搜索和 RAG 工作流。
  • dev-profile-alerts:面向告警场景,集成了实时视频智能(Real-Time Video Intelligence)和 VLM 验证链路。
  • dev-profile-lvs:针对长视频摘要场景,配置了 LVS(Long Video Summarization)微服务。

每个 profile 目录结构为:

dev-profile-xxx/
├── vss-agent/configs/config.yml   # Agent 配置
└── .env                           # 环境变量(含模型 URL / 端口 / API Key)

4.3 skills/ 技能系统

VSS 将每个工作能力封装为独立的 agentskills.io 兼容技能,10 个技能各有明确的 SKILL.md 前置元数据(name、description、version、license),可被 Claude Code、Codex、Cursor 等 AI 编码工具直接安装使用(通过符号链接)。技能与部署 profile 一一对应,降低了 AI Agent 与 VSS 系统集成的门槛。

4.4 ui/ 前端

基于 Next.js + Turborepo 单仓库架构,包含两个应用:

  • nemo-agent-toolkit-ui:通用 Agent 工具包界面
  • nv-metropolis-bp-vss-ui:VSS 专用界面(Metropolis 是 NVIDIA 的视觉 AI 开发套件品牌)

五、快速入门

5.1 环境准备

VSS 对硬件和软件有明确要求(不同 OS 和 GPU 拓扑对应不同驱动版本):

组件版本要求
NVIDIA Driver580.105.08(Ubuntu 24.04)、580.65.06(Ubuntu 22.04)
NVIDIA Container Toolkit≥ 1.17.8
Docker≥ 27.2.0
Docker Compose≥ v2.29.0
NGC CLI≥ 4.10.0
Python≥ 3.13(Agent 开发环境)

详细的 GPU 拓扑要求需参考 官方 Prerequisites 文档

5.2 两类部署方式

方式一:Brev Launchable(推荐快速体验)

适合不想管理硬件基础设施的用户,通过 scripts/deploy_vss_launchable.ipynb Notebook 在 AWS 2xRTX PRO 6000 SE 实例上自动完成全部部署步骤,全程无需手动配置。

方式二:Docker Compose(适合自有硬件)

以 base profile 为例,核心步骤为:

# 1. 创建环境变量文件
echo "../deployments/developer-workflow/dev-profile-base/.env" > .env_file

# 2. 加载并补全环境变量
set -a
source ../deployments/developer-workflow/dev-profile-base/.env
HOST_IP=<YOUR_HOST_IP>
LLM_BASE_URL=http://${HOST_IP}:${LLM_PORT}
VLM_BASE_URL=http://${HOST_IP}:${VLM_PORT}
# ...(重新计算派生变量)
set +a

# 3. 启动 Agent
nat serve \
  --config_file ../deployments/developer-workflow/dev-profile-base/vss-agent/configs/config.yml \
  --host 0.0.0.0 --port 8000

# 4. 验证
curl http://localhost:8000/health

配置文件支持 ${ENV_VAR} 插值语法,还支持默认值写法 ${VAR:-default}

5.3 API Key 获取

VSS 需要访问 NVIDIA NIM 服务,需要以下任一 Key:


六、关键技术亮点

6.1 MCP 协议集成

VSS 的智能体层通过 MCP(Model Context Protocol)统一对外提供工具接口,这意味着其他 MCP 兼容系统(如 Claude Desktop、各种 AI 编码工具)可以直接发现和使用 VSS 提供的视频分析能力,而无需了解底层实现。

6.2 VLM 双重用途

同一个 VLM 模型(Cosmos-Reason2-8B)在不同工作流中承担不同角色:

  • Alert Verification 中作为「验证器」——对初级告警进行二次判断,显著降低误报率
  • Q&A / Video Understanding 中作为「理解引擎」——回答关于视频帧内容的自然语言问题

6.3 灵活的配置体系

通过 YAML 配置 + 环境变量覆盖机制,VSS 支持在同一套代码基础上切换不同的功能 profile,无需修改代码。VLM_MODE 还支持 local_shared / local / remote 三种部署模式,分别对应共享 GPU 推理、本地独占推理和远程 API 调用。


七、总结

NVIDIA VSS Blueprint 为视频智能分析提供了一个从底层推理加速到上层智能体编排的完整参考实现

  1. 5 种开箱即用的工作流,覆盖搜索、摘要、问答、告警验证等主流场景
  2. 清晰的分层架构,各层职责明确,便于按需裁剪或扩展
  3. 灵活的部署选项,从云端 1-Click 到本地 Docker Compose,满足不同运维需求
  4. agentskills.io 兼容技能系统,使 VSS 能力可以无缝注入 AI 编码工具的工作流

对于希望在自有视频资产上构建视觉智能体的团队,VSS 提供了经过工程验证的起点——既可以直接部署使用,也可以作为定制开发的基础框架。随着 NVIDIA 持续更新 NIM 模型库和 Blueprints 产品线,VSS 的能力边界也将随之扩展。

参考资料

  • GitHub 仓库:https://github.com/NVIDIA-AI-Blueprints/video-search-and-summarization
  • 官方文档:https://docs.nvidia.com/vss/3.1.0/index.html
  • NVIDIA Build 体验:https://build.nvidia.com/nvidia/video-search-and-summarization