johnson7788/MultiAgentPPT: MultiAgentPPT 是一个集成了 A2A(Agent2Agent)+ MCP(Model Context Protocol)+ ADK(Agent Development Kit) 架构的智能化演示文稿生成系统,支持通过多智能体协作和流式并发机制

架构采用ADK

windows 
启动docker postgresdb

1. cp xxx.env  . env

 2. conda activate multiagent

 3. 后端: cd backend        
           python ./slide_agent/main_api.py
4. 前端 npm run dev
  

多智能体系统是怎么“系统化”的

  • 顶层编排:顺序主链
    • root_agent = SequentialAgent([...]),顺序执行:
      1. SplitTopicAgent
      2. parallel_search_agent(动态并行)
      3. ppt_generator_loop_agent(循环写页+检查)
    • 相关:backend/slide_agent/slide_agent/agent.py
  • 子系统A:拆题 Agent(结构化分解)
    • 输入用户 outline,输出 split_topics(JSON 字符串,含 topics 列表)。
    • 这是后续并行研究的“任务分片器”。
    • 相关:backend/slide_agent/slide_agent/sub_agents/split_topic/agent.py
  • 子系统B:动态并行研究 Agent(并发核心)
    • 从 state 取 split_topics,解析出 topic 列表。
    • 按 topic 动态创建多个 research_agent_{id},每个带 DocumentSearch 工具。
    • 并发执行后,把每个 agent 的输出放入独立 output_key,并记录 research_output_keys
    • 相关:backend/slide_agent/slide_agent/sub_agents/research_topic/agent.py
  • 子系统C:循环写页 + 质量检查(闭环)
    • LoopAgent 包含:
      • PPTWriterSubAgent:按页生成 XML(第一页注入 <PRESENTATION> 开头,最后一页补结尾);
      • PPTCheckerAgent:检查当前页,若“需要重写”则最多重试3次;
      • SlideCounter:推进页码并决定终止。
    • 这相当于“每页一个小闭环”的生产线。
    • 相关:backend/slide_agent/slide_agent/sub_agents/ppt_writer/agent.py
  • 执行层:A2A + ADK 适配
    • ADKAgentExecutor 把 ADK 事件映射成 A2A task 事件。
    • 可按 show_agent 控制哪些 agent 的输出直接给前端主画面(当前是 PPTWriterSubAgent)。
    • 同时把工具调用/工具返回等过程事件也推给前端用于可观测性。
    • 相关:backend/slide_agent/adk_agent_executor.py

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐