GitHub Trending #1:一个AI视频制作系统凭什么把Agent架构玩明白了?

7 阅读1分钟

1. OpenMontage:把Agent当编排器的架构

一句话理解

传统视频软件是你操作软件,OpenMontage是你告诉AI编程助手"帮我做个视频",AI助手操作软件。

架构核心:没有编排器

# 传统视频工具的设计
class VideoEditor:
    def export_video(self, timeline: Timeline) -> VideoFile:
        # 显式的工作流:导入→剪辑→特效→导出
        pass

# OpenMontage的设计
# AI助手读YAML清单,自己决定调哪个工具
# manifest.yaml
pipelines:
  explainer:
    steps:
      - research_and_script
      - asset_generation
      - composition
      - export
    tools:
      - name: "flux_image_gen"
        provider_selection: "auto"  # ← 关键:7维度评分引擎自动选择

所有工具选择走一个7维度评分引擎:

  • 任务匹配度 (30%)

  • 输出质量 (20%)

  • 控制特性 (15%)

  • 可靠性 (15%)

  • 成本效率 (10%)

  • 延迟 (5%)

  • 连续性 (5%)

这个评分引擎不是硬编码规则,而是一套打分机制——AI助手读工具的YAML描述,根据当前任务特征给每个候选工具打分,选最高分的。这让Agent可以在成本和质量之间动态平衡。

# 伪代码:评分引擎逻辑
def score_tool(task: Task, tool: Tool) -> float:
    weights = {
        "task_fit": 0.30,
        "output_quality": 0.20,
        "control_features": 0.15,
        "reliability": 0.15,
        "cost_efficiency": 0.10,
        "latency": 0.05,
        "continuity": 0.05,
    }
    scores = {
        "task_fit": tool.matches_task(task),
        "output_quality": tool.quality_score(task.resolution),
        "control_features": tool.has_controls(task.required_features),
        "reliability": tool.uptime_score(),
        "cost_efficiency": 1.0 - (tool.estimated_cost / task.budget),
        "latency": 1.0 - (tool.avg_latency / task.deadline),
        "continuity": tool.style_consistency(task.previous_tool),
    }
    return sum(scores[k] * weights[k] for k in weights)

对开发者的启发:大多数Agent项目用 LangChain/LlamaIndex 的 AgentExecutor 做一个"调用工具→等待结果→再调用"的线性循环。OpenMontage的思路是:工具调用不是步骤,而是决策。 每次选择工具都是一次多维度优化问题。这个设计比 LangChain 的默认 Agent 模式灵活得多。

2. DeerFlow 2.0:字节跳动的Agent架构设计

DeerFlow 是今天 Trending #5 的项目,字节跳动开源的一个 SuperAgent 框架。v2.0 完全重写。

架构亮点

子Agent并行执行 + 上下文隔离:

# config.yaml 示例 - 子Agent配置
sub_agents:
  researcher:
    model: "claude-sonnet-4"
    skills: ["web_search", "pdf_extract"]
    max_tokens: 8000
    sandbox: "container_a"
  
  coder:
    model: "claude-sonnet-4" 
    skills: ["bash", "file_ops", "git"]
    max_tokens: 16000
    sandbox: "container_b"

DeerFlow 的真正创新在于 上下文工程:

  • 每个子Agent在自己的隔离上下文中运行

  • 完成后自动压缩为结构化摘要

  • 中间结果写入磁盘,不占上下文窗口

  • Token使用量全程追踪,归属到调用步骤

    简化版:子Agent调度的核心逻辑

    from dataclasses import dataclass from typing import List import asyncio

    @dataclass class SubTask: name: str agent_type: str # "researcher" | "coder" | "writer" prompt: str context_limit: int

    async def dispatch_parallel(subtasks: List[SubTask]): """并行调度子Agent,汇总结果""" async def run_one(task: SubTask): agent = AgentPool.get(task.agent_type) result = await agent.run( prompt=task.prompt, max_tokens=task.context_limit, ) # 压缩结果 return Summarizer.compress(result, max_tokens=500)

    results = await asyncio.gather(*[run_one(t) for t in subtasks])
    return Synthesizer.merge(results)
    

技能的渐进式加载是另一个设计亮点。不像 LangChain 一次性把所有 Tool 定义塞进 System Prompt,DeerFlow 只在 Agent 需要某个技能时才加载对应的 Markdown 文档。对于需要上百个技能的复杂Agent来说,这能显著降低上下文窗口的浪费。

3. daily_stock_analysis:Agent + 金融数据的完整流水线

这个国人做的项目(MIT许可)已经获得 Trendshift #1 Python Repo of the Day。

技术架构

GitHub Actions (定时触发)
    ↓
main.py (入口)
    ↓
├── data_fetcher/ (多源行情:AkShare/YFinance/TickFlow)
├── news_aggregator/ (多源新闻:SerpAPI/Tavily/Anspire)
├── llm_analyzer/ (LLM分析:Gemini/Claude/DeepSeek/Qwen)
└── notifier/ (多端推送:企微/飞书/Telegram/Discord)
    ↓
决策报告 (Markdown) → 推送

配置零成本运行的方式很聪明:

# .github/workflows/daily.yml
name: 每日股票分析
on:
  schedule:
    - cron: '0 10 * * 1-5'  # 北京时间18:00
  workflow_dispatch:  # 手动触发

jobs:
  analyze:
    runs-on: ubuntu-latest
    timeout-minutes: 15
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: '3.11'
      - run: pip install -r requirements.txt
      - run: python main.py
        env:
          STOCK_LIST: ${{ secrets.STOCK_LIST }}
          GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}
          WECHAT_WEBHOOK_URL: ${{ secrets.WECHAT_WEBHOOK_URL }}

对开发者的意义:这个项目的代码很务实——没有过度设计,每个模块职责清晰。如果你在做数据聚合、定时任务、多源LLM编排,可以直接参考它的模块拆解方式。尤其是多LLM provider的切换逻辑(用一个 factory pattern 根据 API key 是否存在自动选择可用的模型)写得很干净。

4. 这三个项目共同告诉了我们什么?

串起来看,这三个项目构成了Agent应用开发的三个层次:

项目

层次

核心贡献

OpenMontage

应用层

Agent如何替代传统软件的工作流编排

DeerFlow

架构层

Agent系统如何设计子Agent隔离和上下文管理

daily_stock_analysis

领域层

Agent如何在具体场景实现端到端流水线

一个更宏观的趋势:2025年夏天,Agent不再是PPT概念。从视频制作到金融分析,从字节跳动到独立开发者,Agent正在从一个"你需要专家团队的昂贵玩具"变成"一个周末能搭出来的开源项目"。

这意味着:如果你的团队还在"观望AI Agent",6个月后你会发现别人已经在用Agent重构业务流程了。 不是危言耸听——你今天打开GitHub Trending就能看到证据。

讨论:

  • 你们团队在用什么Agent框架?LangChain/LlamaIndex/自研?

  • 子Agent的上下文隔离你们怎么处理的?有没有好的方案?

  • 有没有试过用Agent做视频/图片/文档生成的?实际效果如何?

有更好的实现方式欢迎评论区讨论 👇