OmAgent
EMNLP 2024多模态Agent框架,支持视频/图像/音频推理,开箱即用多种推理策略(CoT/ReAct/SC-CoT/ToT)
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
EMNLP 2024多模态Agent框架,支持视频/图像/音频推理,开箱即用多种推理策略(CoT/ReAct/SC-CoT/ToT)
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下,你正在开发一个智能助手,它不仅能读懂你的文字提问,还能分析你上传的产品视频、理解手机截图中UI界面的交互逻辑,甚至在你拍摄照片后立刻给出专业建议——这就是 OmAgent 正在做的事情。
2024年7月,OM AI Lab 在 GitHub 上发布了 OmAgent 项目,并在 EMNLP 2024(自然语言处理顶级会议)发表了配套论文《OmAgent: A Multi-modal Agent Framework for Complex Video Understanding with Task Divide-and-Conquer》。该项目从诞生之初就瞄准了一个核心问题:如何让大语言模型真正"看见"并"理解"现实世界?
传统的 AI Agent 通常只能处理文本输入,但在真实应用场景中,信息往往以多种模态存在——视频中的动态行为、手机 App 的界面截图、网络文章中的图片等。OmAgent 通过将视觉语言模型(VLM)与模块化的 Agent 编排引擎结合,让开发者能够快速构建处理多模态输入的智能应用,而不必从零设计复杂的多模态推理流程。
OmAgent 的设计哲学是"把复杂留给自己,把简单留给用户"。从 Python 包 omagent-core 的接口来看,开发者只需定义自己的 Agent 类、配置 LLM 后端和工具集,就可以开始运行一个多模态对话 Agent。
图1:OmAgent 项目标志

OmAgent 的核心是一个基于 NetworkX 的图编排引擎。每个 Agent 由多个"节点"(Worker)组成,节点之间通过有向图连接,数据沿着图的边流转。一个节点可以是 LLM 调用、工具执行、或者记忆检索模块。这种设计使得复杂的多步骤任务可以被拆解为清晰的子任务链,例如"先从视频中提取关键帧 → 对每帧做目标检测 → 整合检测结果生成回答"。
OmAgent 提供了多种记忆类型,支持将历史对话、提取的实体信息、检索结果等持久化存储。项目依赖 Redis 和 SQLModel + MySQL 来管理记忆状态,这意味着 Agent 可以在多次对话之间保持上下文连贯性,而不仅仅是单轮问答。
在依赖方面,OmAgent 直接集成了多种多模态处理能力:
scenedetect 做场景分割、opencv-python 做帧处理、pydub 处理音频轨道,qwen_vl_utils 调用通义千问的 VLM API 做视觉问答。OmAgent 不仅是一个框架,还内置了多种高级推理策略的实现(Agent Operators),包括:
项目还维护了一个 open-agent-leaderboard,在 GSM8K 和 AQuA 等标准数据集上对比不同推理策略的表现,帮助研究者选择适合自己场景的推理方式。
图2:SimpleVQA 示例 Web 界面

安装 OmAgent 的方式极为简单:
pip install omagent-core # PyPI 最新版
# 或者
pip install -e omagent-core # 从源码安装
项目要求 Python >= 3.11。运行最简单的 VQA(视觉问答)演示只需三步:生成配置文件、配置 OpenAI API Key、运行 Web 服务:
cd examples/step1_simpleVQA
python compile_container.py # 生成 container.yaml
# 在 configs/llms/gpt.yml 中配置 API Key
python run_webpage.py # 启动 Gradio Web 界面
# 访问 http://127.0.0.1:7860
对于需要生产部署的场景,OmAgent 通过 Docker Compose 提供完整的后端服务栈。在 docker/conductor/ 目录下,预置了 docker-compose.yml,包含三个核心容器:
图3:视频理解 Agent 的 Gradio 界面

cd docker/conductor
docker-compose up -d
# 访问 http://localhost:5001 查看 Conductor UI
# API: http://localhost:8080
需要完整移动端 App 支持的开发者,还可以额外部署 MySQL 数据库和 MinIO 对象存储,配合 Android App 进行真机调试。
从 pyproject.toml 可以看到,OmAgent 的依赖生态非常丰富:
openai SDK,兼容 OpenAI API 及所有 Azure/OpenAI Compatible 端点Ollama 和 LocalAI 支持本地部署 LLM,无需云端 APIpymilvus(向量数据库)、duckduckgo-search(网页搜索)、tavily-python(AI 搜索 API)gradio ^5.7.1 构建交互界面networkx 实现工作流编排Pillow、opencv-python、pydub、scenedetect 等多媒体处理库OmAgent 并非完美。核心依赖 omagent-core 限制 Python 版本为 ^3.11,<3.12——这一严格约束在快速迭代的 Python 生态中可能带来兼容性问题。此外,项目大量依赖外部 API(OpenAI、Qwen VL 等),本地化部署虽然可行,但需要额外配置 Ollama 或 LocalAI 环境,增加了部署复杂度。
在架构层面,OmAgent 采用了集中式的 Conductor 编排引擎,这与当前去中心化 Agent 的趋势有所不同。对于追求极致轻量化的场景,OmAgent 的依赖生态可能显得过于"重"。
OmAgent 的出现反映了一个重要趋势:多模态 Agent 正在从研究走向工程落地。2024年 EMNLP 的这篇论文和配套开源框架,表明学术界和工业界正在联手解决"如何让 AI Agent 真正感知世界"这一核心问题。
从数据来看,项目在不到一年时间内积累了 2650+ Stars 和 290 Forks,说明开发者社区对多模态 Agent 框架有强烈需求。OM AI Lab 同时维护了 OVDEval(开放词汇检测基准)、OmDet(多模态检测网络)等系列项目,形成了一个相对完整的多模态 AI 研究与开发矩阵。
图4:扫码加入 OmAgent 社区
