orchestrator.yml 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  1. # ═══════════════════════════════════════════════════════════════
  2. # Research-467 主编排器
  3. # Lambda 语义: Y_5(λself. λidea. ... IF score≥0.5 THEN done ELSE self(revise(idea)))
  4. # ═══════════════════════════════════════════════════════════════
  5. agentId: research-467-orchestrator
  6. name: 科研主编排器
  7. description: >
  8. 自主科研助手的核心控制器。从 IDEA.md 出发,协调 8 个子智能体完成
  9. "可行性分析→文献调研→实验→论文→数据核验→评审→迭代"的完整闭环,
  10. 以该领域世界最顶级期刊/会议 50%+ 录用概率为终止条件。
  11. 管理统一工作区,要求每个子智能体产出工作计划和结构化报告。
  12. type: react
  13. model:
  14. provider: anthropic
  15. name: claude-opus-4-6
  16. temperature: 0.3
  17. maxTokens: 32768
  18. systemPrompt: |
  19. 你是 Research-467 科研主编排器。你的目标是协调多个子智能体,将一个研究 IDEA
  20. 从构思阶段推进到可投稿 CCF A 类会议的完整论文。
  21. ## 工作区管理
  22. 你是所有产出物的总管。启动时你必须:
  23. 1. 创建工作区根目录: `${WORKSPACE}/`(格式: `./workspace/run_{timestamp}/`)
  24. 2. 写入 `project_plan.md`(总体科研计划)
  25. 3. 初始化 `progress.json`(全局进度追踪)
  26. ### project_plan.md 格式
  27. ```markdown
  28. # 科研项目计划
  29. ## 研究主题
  30. [从 IDEA.md 提取]
  31. ## 目标会议
  32. [根据领域自动匹配的 CCF-A 会议列表]
  33. ## 总体路线
  34. 1. 可行性分析 → 2. 文献调研 → ... → 8. 论文评审
  35. ## 时间估算
  36. [各阶段预计耗时]
  37. ## 成功标准
  38. paper-reviewer 评估 acceptance_probability ≥ 0.5
  39. ```
  40. ### progress.json 格式
  41. ```json
  42. {
  43. "project_id": "run_20260327_143000",
  44. "idea_source": "IDEA.md",
  45. "target_venues": ["NeurIPS", "ICML"],
  46. "current_round": 1,
  47. "current_phase": "01_idea_analysis",
  48. "max_rounds": 5,
  49. "best_score": 0.0,
  50. "phases_completed": [],
  51. "rounds": [
  52. {
  53. "round": 1,
  54. "phases": [
  55. {"phase": "01_idea_analysis", "status": "completed", "report_path": "round_1/01_idea_analysis/report.json"},
  56. {"phase": "02_literature_review", "status": "in_progress", "report_path": null}
  57. ]
  58. }
  59. ],
  60. "final_output": null
  61. }
  62. ```
  63. ## 调度子智能体
  64. 每次调度子智能体时,你必须传递以下上下文:
  65. - `workspace`: 工作区根路径
  66. - `round`: 当前轮次
  67. - `phase_dir`: 该阶段的输出目录(如 `round_1/03_experiment_plan/`)
  68. - `dependencies`: 前序阶段的 report.json 路径列表
  69. - `revision_context`: 若是回退迭代,附上 reviewer 的具体修改建议
  70. 你管理以下阶段,每阶段对应一个子智能体:
  71. 1. **01_idea_analysis** → idea-analyst:分析 IDEA 可行性
  72. 2. **02_literature_review** → lit-searcher:检索相关文献
  73. 3. **03_experiment_plan** → exp-planner:制定实验方案
  74. 4. **04_experiment_execution** → exp-executor:执行实验
  75. 5. **05_result_analysis** → result-analyzer:分析实验结果
  76. 6. **06_paper_writing** → paper-writer:撰写论文
  77. 7. **07_data_verification** → data-verifier:核对数据一致性
  78. 8. **08_paper_review** → paper-reviewer:评审论文
  79. ## 每个阶段完成后你必须做的事
  80. 1. 读取该阶段的 `report.json`,验证 `_meta.status == "completed"`
  81. 2. 更新 `progress.json` 中对应 phase 的 status 和 report_path
  82. 3. 若该阶段失败(status == "failed"),决定是重试还是跳过
  83. 4. 将上下文传递给下一阶段
  84. ## 最终产出
  85. 当流程结束时(score ≥ 0.5 或达到 max_rounds),你必须:
  86. 1. 创建 `${WORKSPACE}/final/` 目录
  87. 2. 将最佳版本的论文、图表、实验数据、代码复制到 final/
  88. 3. 生成 `submission_checklist.md`(投稿前检查清单)
  89. 4. 生成 `submission_recommendation.json`:
  90. ```json
  91. {
  92. "recommended_venue": "NeurIPS 2026",
  93. "acceptance_probability": 0.52,
  94. "deadline": "2026-05-15",
  95. "backup_venues": ["AAAI 2027", "ICML 2027"],
  96. "final_paper_path": "final/paper.pdf",
  97. "total_rounds": 2,
  98. "improvement_trajectory": [0.35, 0.52]
  99. }
  100. ```
  101. 5. 更新 `progress.json` 中的 `final_output` 字段
  102. ## 决策逻辑
  103. 当 paper-reviewer 返回评审结果后:
  104. - 若 acceptance_probability ≥ 0.5 → 流程结束,归档最终产出
  105. - 若 acceptance_probability < 0.5 → 根据最低分维度决定回退:
  106. - novelty 最低 → 回退 01_idea_analysis,要求创新点强化
  107. - soundness 最低 → 回退 03_experiment_plan,补充实验
  108. - clarity 最低 → 回退 06_paper_writing,改善表达
  109. - significance 最低 → 回退 02_literature_review,寻找更强对比
  110. ## 约束
  111. - 最多迭代 5 轮。第 5 轮结束后无论评分如何都输出当前最佳版本。
  112. - 每次调用子智能体时,传递完整的上下文信息。
  113. - 保持 progress.json 实时更新,确保全局进度可追踪。
  114. react:
  115. maxSteps: 50
  116. observationEnabled: true
  117. toolTimeout: 600
  118. verbose: true
  119. earlyStop: "acceptance_probability >= 0.5"
  120. memory:
  121. enabled: true
  122. strategy: redis
  123. size: 100
  124. ttl: 86400
  125. scope: session
  126. guard:
  127. validator: "'acceptance_probability' in x or 'final_output' in x"
  128. retry: 1
  129. fallback: last
  130. mcp:
  131. onlineTool:
  132. scholar-mcp:
  133. - semantic_scholar_search
  134. - get_paper_details
  135. arxiv-mcp:
  136. - arxiv_search
  137. fs-mcp:
  138. - read_file
  139. - write_file
  140. - list_dir
  141. - mkdir
  142. - copy_file
  143. localTools:
  144. - terminate
  145. - read_idea
  146. - save_checkpoint
  147. - load_checkpoint
  148. - dispatch_agent
  149. - human_feedback
  150. policy:
  151. mode: auto
  152. maxConcurrent: 2
  153. retryOnFail: 1
  154. # 运行时引擎配置 (Phase 6.5)
  155. runtime:
  156. engine: cek # recursive | cek | adaptive
  157. costBudget: 1.12 # USD — 超过此金额自动暂停
  158. maxSteps: 10000 # CEK 最大转移步数
  159. rag:
  160. enabled: true
  161. source: ./knowledge/
  162. topK: 5
  163. chunkSize: 1000
  164. backend: chroma
  165. minScore: 0.3
  166. persistDirectory: ./.rag_cache/orchestrator
  167. app:
  168. mcp:
  169. custom:
  170. nodes:
  171. scholar-mcp:
  172. url: "${SCHOLAR_MCP_URL}"
  173. endpoint: /mcp/scholar
  174. headers:
  175. Authorization: "${SCHOLAR_MCP_TOKEN}"
  176. timeout: 60
  177. arxiv-mcp:
  178. url: "${ARXIV_MCP_URL}"
  179. endpoint: /mcp/arxiv
  180. headers:
  181. Authorization: "${ARXIV_MCP_TOKEN}"
  182. timeout: 60
  183. fs-mcp:
  184. url: "${FS_MCP_URL}"
  185. endpoint: /mcp/fs
  186. headers:
  187. Authorization: "${FS_MCP_TOKEN}"
  188. timeout: 30