Pavo AI Agent 源码深度解析:从自然语言故事到视频分镜的 Multi-Agent 工程实践

发布时间:2026/7/14 4:16:51

Pavo AI Agent 源码深度解析:从自然语言故事到视频分镜的 Multi-Agent 工程实践
Pavo AI Agent v2.3 技术深度解析MCP Server Memory RAG 可视化管线的工程实践开源地址https://github.com/yanzhao77/pavo-ai-agent | MIT 协议一、项目背景Pavo AI Agent 是一个开源的多智能体视频分镜生成平台。输入一段自然语言故事系统通过 7 个 AI Agent 协作自动输出完整的逐镜头分镜脚本支持对接 AI 视频模型生成视频。v1.0 完成了核心管线v2.0 引入了 MCP Server。v2.3 是至今最大的一次架构升级新增了三个核心模块MCP Server 完整层— 12 个 Tools / 5 个 Resources / 2 个 PromptsAgent Memory RAG 知识库— 个性化创作记忆 影视专业知识注入Workflow 可视化— SVG 管线图实时展示 7 Agent 执行状态本文从工程实践角度深度解析这三个模块的设计思路和实现细节。二、MCP Server 层让 AI 工具能看见Pavo2.1 为什么是 MCPMCP (Model Context Protocol) 由 Anthropic 主导定义了 AI 模型与外部工具的标准化交互接口。类比 USB-C 为硬件外设提供的统一接口MCP 为 AI 应用提供了统一的工具集成标准。在 v2.3 中Pavo MCP Server 作为一个独立 Python 进程运行通过 stdio/SSE 与 MCP 客户端通信通过数据库 Session 直接读取数据。2.2 模块结构backend/mcp_server/ ├── main.py # 入口12 个 Tools / 5 个 Resources / 2 个 Prompts ├── models/mcp_schemas.py # MCPToolResult MCPError 统一格式 ├── memory/ # Memory 存储 Embedding 重要性评分 ├── rag/ # RAG 检索 Re-ranker 知识库构建 ├── middleware/memory_middleware.py # 透明上下文注入三级降级 ├── tools/memory_tools.py # 4 个 Memory Tool └── adapter/project_adapter.py # 桥接现有 ProjectService2.3 核心代码实现统一返回格式是所有 MCP Tool 的基础classMCPToolResult(BaseModel):success:booldata:dict|list|NoneNoneerror:MCPError|NoneNoneclassmethoddefok(cls,dataNone)-MCPToolResult:returncls(successTrue,datadata)classmethoddeffail(cls,code:str,message)-MCPToolResult:returncls(successFalse,errorMCPError(codecode,messagemessage))MCP Server 注册 Tools精简示例server.list_tools()asyncdeflist_tools():return[{name:pavo_create_project,description:创建项目并启动 Agent 管线,inputSchema:{type:object,properties:{input:{type:string,description:故事创意文本},context:{type:object,description:系统内部使用},},required:[input]}},# ... 共 12 个 Tools]Memory Middleware 透明注入是 v2.3 的核心架构创新classMemoryMiddleware:asyncdefpre_process(self,tool_name:str,arguments:dict)-dict:拦截 Tool 调用自动注入用户历史记忆user_idarguments.get(user_id,)ifnotuser_id:returnargumentstry:memoriesawaitstore.search_memory(user_id,tool_name,limit3)arguments[context][memory]{items:memories}exceptMemoryUnavailableError:# 级别 1 降级记录日志继续执行passreturnarguments2.4 12 个工具总览类别工具说明优先级项目pavo_create_project创建项目并启动管线P0项目pavo_get_project获取项目完整数据P0项目pavo_list_projects获取项目列表P1分镜pavo_generate_storyboard重新生成模块P0视频pavo_render_video触发视频渲染P1视频pavo_get_video_status查询视频状态P1导出pavo_export_project导出项目P1认证pavo_auth_login获取 TokenP1记忆pavo_save_memory保存用户偏好P0记忆pavo_search_memory检索历史记忆P0记忆pavo_list_memories列出记忆P1记忆pavo_delete_memory删除记忆P12.5 Cursor 集成配置{mcpServers:{pavo:{command:python,args:[-m,mcp_server.main],env:{AGNES_API_KEY:sk-xxx,DATABASE_URL:postgresqlasyncpg://...}}}}三、Agent Memory RAG 系统让 AI 记住用户并注入专业知识3.1 双层记忆架构Layer 1: Session Memory (短期) ┌─────────────────────────────────────┐ │ Redis · TTL 30 分钟 · 滑动窗口刷新 │ │ 对话历史 · 当前上下文 · 临时状态 │ └──────────────┬──────────────────────┘ │ 会话结束 → 自动提取重要信息 ▼ Layer 2: User Memory (长期) ┌─────────────────────────────────────┐ │ PostgreSQL pgvector (1536 维) │ │ 6 种类型style/character/scene/ │ │ preference/story_arc/feedback│ │ 重要性评分 自动清理 │ └─────────────────────────────────────┘3.2 重要性评分策略记忆并非同等重要。v2.3 实现了三种来源的评分策略classImportanceStrategy:staticmethoddeffrom_user_saved()-float:用户主动保存 → 高重要性 0.9return0.9staticmethoddeffrom_auto_extracted(mentions,recency_days)-float:自动提取 → min(0.3 mentions*0.1 - recency*0.01, 0.8)returnmin(0.3mentions*0.1-recency_days*0.01,0.8)staticmethoddeffrom_feedback_derived(rating:str)-float:反馈衍生 → 好评 0.7 / 差评 0.2return0.7ifratingupelse0.2低重要性记忆 0.2超过 30 天未访问自动清理。3.3 RAG 影视知识库知识库包含60 条影视专业知识覆盖 6 大类类别条目数示例内容镜头语言15景别定义、运镜方式、构图规则电影语法10180 度规则、视线匹配经典案例10经典电影分镜分析叙事结构8三幕剧、起承转合类型模板7爱情/悬疑/动作片分镜模式BGM 与音效10各种情绪的配乐建议检索 Pipeline用户输入 → RAGQueryBuilder → Embedding (1536维) → pgvector ANN (IVFFlat索引) → Re-ranker (category匹配 priority加权) → Context Injector → Agent Prompt注入目标Storyboard Agent 为主强制注入Character/Scene Agent 为辅相关性 0.7 时注入。3.4 ORM 数据模型classUserMemoryORM(Base):__tablename__user_memoriesidColumn(UUID,primary_keyTrue)user_idColumn(String(64),indexTrue)memory_typeColumn(String(32))# style/character/...contentColumn(JSON)# 记忆内容结构化embeddingColumn(JSON)# 1536 维向量importanceColumn(Float,default0.5)# 重要性评分sourceColumn(String(32))# 来源tagsColumn(JSON)# 标签created_atColumn(DateTime)updated_atColumn(DateTime)accessed_atColumn(DateTime)四、Workflow 可视化从文本日志到 SVG 管线图4.1 设计思路v2.3 之前Agent 管线的执行状态通过文本日志展示[Planner] Analyzing story... ✓ [Character] Generating characters... ✓信息密度低缺乏直观性。v2.3 的 WorkflowVisualizer 组件用 SVG 管线图替代。4.2 技术选型方案优点缺点选择理由纯 SVG CSS轻量、可控、无额外依赖需手写布局拓扑固定7 节点线性无需动态布局React Flow功能强大、拖拽编辑包体积大项目不需要交互编辑ECharts图表丰富过重数据可视化为主结论纯 SVG 方案最适合——7 个节点线性 DAG布局固定轻量可维护。4.3 组件结构WorkflowVisualizer ├── PipelineGraph # SVG 管线图 贝塞尔曲线连线 │ └── AgentNode × 7 # 状态色编码节点 ├── AgentDetailPanel # 点击弹窗输入/输出/耗时/错误 └── TimelineView # 横向条形图各 Agent 耗时比例状态色映射状态颜色图标CSS 实现idle#9CA3AF 灰色○background 静态running#3B82F6 蓝色◉CSS animation spincompleted#10B981 绿色✓background 静态failed#EF4444 红色✗CSS animation shakeskipped#D1D5DB 浅灰—opacity 0.5五、工程实践总结5.1 架构演进v1.0: FastAPI 7 Agents Next.js —— 核心管线 v2.0: MCP Server (8 Tools) —— 标准化接口 v2.3: Memory RAG MCP 扩展 —— 智能增强 Workflow 可视化 —— 体验提升5.2 关键设计原则向后兼容新功能不破坏现有 API非侵入集成Memory Middleware 对 Tool handler 零侵入可观测性6 项 Middleware 指标 5 个性能基准场景可控降级Memory/RAG 不可用时不影响核心功能5.3 统计数据指标数值对比 v1.0后端源文件259MCP Tools1212数据库表63测试用例1616种子知识6060GitHub Stars期待你的 ⭐—六、快速体验gitclone https://github.com/yanzhao77/pavo-ai-agent.gitcdpavo-ai-agentcp.env.example .env# 设置 AGNES_API_KEYdockercompose up-dpostgres redis miniocdbackendpipinstall-rrequirements.txt python-muvicorn app.main:app--reload--port8000# 新终端启动 MCP Servercdbackendpython-mmcp_server.main# 新终端启动前端cdfrontendnpminstallnpmrun dev项目地址https://github.com/yanzhao77/pavo-ai-agent如果本文对你有帮助欢迎 ⭐ Star 支持

相关新闻

cve-2019-6340复现 - P1:Drupal-cve-2019-6340 - Ambb1 - BV1FJ411P7Db

cve-2019-6340复现 - P1:Drupal-cve-2019-6340 - Ambb1 - BV1FJ411P7Db

2026/7/14 4:16:51

给大家复现1个CVE啊,CVE201963401个抓pa的一个漏洞。那么我们首先呢嗯把这个环境呢已经已经搭建完毕了。那我们准备一个攻击机呢是卡利。那这个呢要嗯我们使用的呢是这个嗯MSF啊。 MSF的一个呃一个攻击攻具框架。那么我们呢呃首先看一下我们本机IP是172。24。1。180…

C盘空间告急:从基础命令到专业工具的完整清理方案

C盘空间告急:从基础命令到专业工具的完整清理方案

2026/7/14 4:16:51

你的C盘是不是又红了?那个熟悉的红色警告条,就像悬在头顶的达摩克利斯之剑,时刻提醒你系统空间告急。更糟糕的是,随着使用时间的推移,系统运行越来越慢,软件安装失败,甚至影响到正常的工作效率。…

低代码平台横评:Dify、RAGFlow、MaxKB、FastGPT 谁更适合你

低代码平台横评:Dify、RAGFlow、MaxKB、FastGPT 谁更适合你

2026/7/14 4:16:51

低代码平台横评:Dify、RAGFlow、MaxKB、FastGPT 谁更适合你 摘要:四个最主流的开源/商业低代码 AI 知识库平台——Dify、RAGFlow、MaxKB、FastGPT——到底怎么选?本文从文档处理能力、部署难度、生态兼容性、社区活跃度、成本五个维度做横向对…

各国都喜欢宝石,风格有差异

各国都喜欢宝石,风格有差异

2026/7/14 7:06:57

人天生喜欢宝石黄金。我一直呼吁电脑、车辆上大量镶嵌宝石。现在人工合成,非常便宜。各国风格不同。印度人:宝石越大越好。日本人:个头可小,要闪闪发光。中国人:要纯净品质。

AI车牌识别技术解析:10万摄像头部署与隐私风险

AI车牌识别技术解析:10万摄像头部署与隐私风险

2026/7/14 7:06:57

这次我们来看一个涉及AI监控摄像头的社会技术议题。美国多地爆发的反Flock摄像头抗议活动,揭示了10万只AI车牌识别摄像头正在大规模部署,并与移民海关执法局(ICE)数据共享的现状。这个事件不仅关乎隐私权争议,更涉及AI…

梦笔记20260714

梦笔记20260714

2026/7/14 7:06:57

在老家北边的马路上,突然想起这几天与人约好讨论泰山OFFICE的事。我给忘记了。一会看到对方开着个木屋飞速过来,还漂移。我赶紧进去,里面是对方的全体员工。桌子上是个讨论协议。我说要从头念一遍,没兴趣的先出去玩吧。墙上有一副…

基于ARM Cortex-M4的智能声音警报系统设计与实现

基于ARM Cortex-M4的智能声音警报系统设计与实现

2026/7/14 7:06:57

1. 项目背景与核心组件介绍在工业控制、智能家居和公共安全领域,可靠的声音警报系统是保障设备正常运行和人员安全的关键环节。本项目采用EPT-14A4005P压电蜂鸣器和TM4C129LNCZAD微控制器构建了一套适应多种环境的高可靠性声音警报系统。这套方案特别适合需要稳定报…

黑苹果启动故障排查实录

黑苹果启动故障排查实录

2026/7/14 7:06:57

因 Re-Size BAR 导致的黑苹果启动故障排查实录 为了装好黑苹果系统,我已经摸索了半年多。换过显卡,改过配置,重启过无数次,可问题总像一堵墙横在面前。昨晚,新显卡终于到了。捧着它,我心里那团快要熄下去的…

彻底告别60帧限制:《原神》帧率解锁工具完全指南

彻底告别60帧限制:《原神》帧率解锁工具完全指南

2026/7/14 6:56:57

彻底告别60帧限制:《原神》帧率解锁工具完全指南 【免费下载链接】genshin-fps-unlock unlocks the 60 fps cap 项目地址: https://gitcode.com/gh_mirrors/ge/genshin-fps-unlock 想要在《原神》中体验更流畅的战斗画面吗?genshin-fps-unlocker这…

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

2026/7/13 7:41:16

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator XUnity.AutoTranslator作为Unity游戏社区中最成熟的文本翻译解决方…

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

2026/7/13 20:43:19

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持 【免费下载链接】raspberrypi-kernel It provides openEuler kernel source for Raspberry Pi 项目地址: https://gitcode.com/openeuler/raspberrypi-kernel 前往项目官网免费下载&…

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

2026/7/13 20:43:10

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧 【免费下载链接】integration-test The repo contains test suits for system integration test 项目地址: https://gitcode.com/openeuler/integration-test 前往项目官网免费下载:…

XUnity.AutoTranslator 游戏实时翻译插件:从原理到实战的完整指南

XUnity.AutoTranslator 游戏实时翻译插件:从原理到实战的完整指南

2026/7/14 0:06:37

1. 项目概述:当游戏语言成为一堵墙作为一名玩了十几年日系、欧美独立游戏的“老油条”,我太懂那种面对一款心仪已久、画风玩法都戳中G点的游戏,却因为语言不通而望而却步的痛了。尤其是那些基于Unity引擎开发的、体量不大但内容精良的作品&am…

2026普通文员学数据分析的价值

2026普通文员学数据分析的价值

2026/7/14 0:06:37

一、2026年普通文员学习数据分析的必要性随着数字化转型加速,数据分析技能正逐渐成为职场基础能力。普通文员学习数据分析可以提升工作效率、增强竞争力,并为职业转型提供更多可能性。二、数据分析对文员的价值自动化办公:通过数据分析工具&a…

2026从计划员到主管,生产管理者学数据分析有用吗?

2026从计划员到主管,生产管理者学数据分析有用吗?

2026/7/14 0:06:37

一、生产管理领域的职业发展路径 从计划员到主管的角色转变,是生产管理者职业发展的典型路径。计划员主要负责生产排程、库存管理和资源协调等基础工作,而主管则需要承担团队管理、决策支持和效率优化等更高级别的职责。这种转变不仅仅是职位的提升&…