先记住一句话
责任边界用户
只说想要什么。
Skill Resolver
负责选 Skill。
Main Agent
负责决定是否用 Team,并提交 Team 参数。
TaskExecutionPlanner
负责把 JSON 变成 ExecutionGraph。
Scheduler
负责按 DAG 调度子 Agent。
Final Synthesis
负责只总结已经完成的 Team 结果。
成功案例:MGM/Galaxy
Skill 有模板collect_official_sources
收集官方来源。
extract_financial_metrics
从来源提取指标。
validate_metrics
校验周期、币种、单位。
generate_chart_report
生成 Markdown 报告。
DAG 结构是对的。真正可能有问题的是 use_skill: "web-operation" 如果环境里没有这个 exact Skill,会走 fallback。更稳的写法是绑定当前实际存在的搜索 Skill,或者只保留 skill_query。
坏案例:韩国队任务
Skill 没有 Team 模板collect 节点
有搜索 Skill,有工具,真的查了。
analyze 节点
说“基于搜索结果”,但没有依赖 collect。
坏 DAG 的真实形状
问题在图,不在总结{
"strategy": "parallel",
"nodes": [
{"node_id": "collect", "task": "搜索韩国队表现"},
{"node_id": "analyze_tactics", "task": "基于搜索结果分析战术"},
{"node_id": "analyze_players", "task": "基于搜索结果分析球员"},
{"node_id": "analyze_media", "task": "基于搜索结果分析媒体"}
]
}
{
"strategy": "dag",
"nodes": [
{"node_id": "collect", "task": "搜索韩国队表现"},
{"node_id": "analyze_tactics", "depends_on": ["collect"]},
{"node_id": "analyze_players", "depends_on": ["collect"]},
{"node_id": "analyze_media", "depends_on": ["collect"]},
{"node_id": "synthesize", "depends_on": [
"analyze_tactics", "analyze_players", "analyze_media"
]}
]
}