用途
qwen-mm-plugins-omni-memory 用于为长视频构建并查询持久化的、有状态的音视频记忆。它适合对同一段音视频反复提问的场景:记忆只需构建一次,之后即可低成本、快速作答,而无需每次重新上传和观看视频。
主要能力
记忆通过一次遍历视频填充,包含四类可检索容器加片段文件:
- Entities(实体):规范人物,包含 person_id、解析出的姓名、外貌与属性
- Semantic(语义):归纳出的事实,以键值三元组形式存储,例如 David/role → "…",通过精确键访问
- Episodic(情景):每个 30 秒窗口一条记录,包含视觉描述,以及每句话及其 speaker_id、副语言特征与声学事件,通过混合检索访问
- Scene env(场景环境):持久的环境/布局条目,按需召回
- Clips(片段):30 秒文件本身,可用于回看源视频
工具集提供的能力包括:状态与完整性检查(get_memory_status)、总览(get_memory_overview)、人物档案(get_people)、单人对话(get_person_dialogue)、时间线(get_timeline、get_moment)、语义事实搜索(search_facts)、对话搜索(search_dialogue)、开放性问题的一次性规划检索(plan_and_search),以及针对 30 秒记录确实缺失的具体细节做片段回看(replay_and_answer)。
对于短于约 10 分钟的视频,可用 watch_and_answer 一次性观看并作答,无需构建记忆。
使用方式
先通过 get_memory_status 了解视频时长与记忆状态。资料给出的路由建议:约 10 分钟以内用 watch_and_answer;约 10–30 分钟通常构建记忆,若用户只要快速答案则用 watch_and_answer;超过约 30 分钟必须构建记忆。若对同一视频有多个问题,即使视频较短也建议构建记忆。
构建命令(构建需要 Python 3.10+、pip、ffmpeg/ffprobe、DASHSCOPE_API_KEY,运行前可执行 qwen-mm-plugins-omni-memory --check-system):
单个视频: python3 script/build_memory/build_memory.py /path/to/video.mp4 --model qwen3.8-omni-flash
多个视频: python3 script/build_memory/build_memory.py --video-dir /path/to/dir -j 4 --model qwen3.8-omni-flash
重建: python3 script/build_memory/build_memory.py /path/to/video.mp4 --mode rebuild
串接多个视频为同一记忆: python3 script/build_memory/build_memory.py --video-dir /path/to/session --namespace my_stream python3 script/build_memory/build_memory.py next_part.mp4 --namespace my_stream --mode append
适用场景
- 对长视频中「某人说了什么」「谁说了某句话」「某个事实或关系」「某个时间点发生了什么」等问题作答
- 需要对同一视频反复提问的对话式场景
- 由多个文件组成的同一次录制会话,需要保持人物 ID、事实与时间线连续
限制
- 构建记忆每条 30 秒窗口消耗一次 omni 调用,短视频构建不划算
- get_memory_status 返回 complete: false 时表示记忆被截断,其答案不可信,需以 --mode resume 继续构建
- 语义键为精确查找,未命名任何键则不会返回事实,因此需先用 get_memory_overview 获取完整键目录
- replay_and_answer 每次最多观看 3 个片段(每个约 3.5 MB),其他片段不可见,多余片段在 dropped_idxs 中返回
- watch_and_answer 适用于约 10 分钟以内的视频,超过约 30 分钟不可用
- 串接模式必须按时间顺序、严格串行执行,-j 会被忽略并报告;某个分段失败会中断整个流
- 构建所需的路径相对于 Skill 目录,构建脚本独立于 MCP 服务器包,不依赖其是否安装
- 关于收费、价格、平台支持范围、效果指标等资料未提供,暂未提供
补充说明
所有检索工具返回的是证据而非答案,需由调用方根据证据作答;replay_and_answer 与 watch_and_answer 例外,它们直接返回答案,因为其读取的是视频本身的内容。默认 omni 模型为 qwen3.8-omni-flash,可通过 --model 或 QWEN_MM_API_OMNI_MODEL 指定;端点来自 DASHSCOPE_BASE_URL 或 DashScope 默认主机。