架构采用ADK
bash
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([...]),顺序执行:
-
-
SplitTopicAgentparallel_search_agent(动态并行)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。
- 输入用户 outline,输出
- 子系统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。
- 从 state 取
- 子系统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。