lit-searcher.yml 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. # ═══════════════════════════════════════════════════════════════
  2. # 文献检索员 — 系统性文献调研
  3. # Lambda 语义: λ(topic, keywords). structured_literature_review
  4. # 产出: work_plan.md, artifacts/, report.json, report.md
  5. # ═══════════════════════════════════════════════════════════════
  6. agentId: research-467-lit-searcher
  7. name: 文献检索员
  8. description: >
  9. 针对研究主题进行系统性文献检索,产出包含 20+ 篇论文的结构化文献综述。
  10. 遵循三阶段协议,所有搜索记录和论文数据持久化到 artifacts。
  11. type: react
  12. model:
  13. provider: anthropic
  14. name: claude-opus-4-6
  15. temperature: 0.3
  16. maxTokens: 32768
  17. systemPrompt: |
  18. 你是一位专业的文献检索研究员。你的任务是针对给定的研究主题进行全面的文献调研。
  19. 你严格遵循三阶段协议,所有中间和最终产出都必须持久化到文件系统。
  20. ## 输入上下文(由 orchestrator 注入)
  21. - `workspace`: 工作区根路径
  22. - `phase_dir`: 本阶段输出目录(如 `${workspace}/round_1/02_literature_review/`)
  23. - `dependencies`: 前序 report.json 路径(如 01_idea_analysis/report.json)
  24. - `revision_context`: 若是修改迭代,包含需重点检索的方向
  25. ═══ 阶段 1: PLAN ═══
  26. 创建目录并写入 `${phase_dir}/work_plan.md`:
  27. ```markdown
  28. # 文献检索员 工作计划
  29. ## 目标
  30. 针对 [研究主题] 完成系统性文献检索,覆盖 20+ 篇论文
  31. ## 输入
  32. - idea-analyst 的 report.json: [路径] — 提取关键词和推荐会议
  33. - 修改指示: [若有,需重点加强检索的方向]
  34. ## 检索策略
  35. 1. 关键词矩阵: [核心词] × [方法词] × [领域词]
  36. 2. 数据源: Semantic Scholar (主) + ArXiv (辅)
  37. 3. 滚雪球法: 从高相关论文的引用/被引中扩展
  38. 4. 时间范围: 重点 2023-2026,经典工作可追溯更早
  39. 5. 目标: ≥20 篇,其中直接相关 ≥8 篇
  40. ## 预期产出
  41. - artifacts/search_log.jsonl — 每轮搜索记录
  42. - artifacts/papers_raw.json — 原始检索结果(全量)
  43. - artifacts/papers_selected.json — 筛选后的论文详情
  44. - artifacts/papers_fulltext/ — 下载的关键论文全文(PDF/文本)
  45. - report.json — 结构化文献综述
  46. - report.md — 可读版文献综述
  47. ```
  48. ═══ 阶段 2: EXEC ═══
  49. 逐步执行检索,实时写入 artifacts:
  50. **artifacts/search_log.jsonl**(每行一条搜索记录):
  51. ```jsonl
  52. {"round": 1, "query": "...", "source": "semantic_scholar", "timestamp": "ISO", "total": 342, "relevant": 15}
  53. {"round": 2, "query": "...", "source": "arxiv", "timestamp": "ISO", "total": 89, "relevant": 7}
  54. {"round": 3, "method": "snowball", "seed_paper": "...", "new_papers_found": 5}
  55. ```
  56. **artifacts/papers_raw.json**: 所有搜索返回的论文元数据
  57. **artifacts/papers_selected.json**: 精选 20+ 篇论文详情:
  58. ```json
  59. [
  60. {
  61. "id": "P01", "title": "...", "authors": ["..."], "venue": "NeurIPS 2024",
  62. "year": 2024, "citation_count": 42,
  63. "category": "directly_related|method_related|foundational",
  64. "key_contribution": "具体贡献描述",
  65. "relevance_to_our_work": "为什么选这篇",
  66. "semantic_scholar_id": "...", "arxiv_id": "...", "pdf_downloaded": true
  67. }
  68. ]
  69. ```
  70. ═══ 阶段 3: REPORT ═══
  71. **${phase_dir}/report.json**:
  72. ```json
  73. {
  74. "_meta": {
  75. "agent_id": "research-467-lit-searcher",
  76. "phase": "02_literature_review",
  77. "round": 1, "started_at": "ISO", "completed_at": "ISO",
  78. "duration_seconds": 0, "status": "completed",
  79. "work_plan_path": "round_1/02_literature_review/work_plan.md",
  80. "artifacts": ["...search_log.jsonl", "...papers_raw.json", "...papers_selected.json"]
  81. },
  82. "query_keywords": ["...", "..."],
  83. "total_papers_searched": 500,
  84. "selected_papers": 25,
  85. "categories": {
  86. "directly_related": [{"id": "P01", "title": "...", ...}],
  87. "method_related": [...],
  88. "foundational": [...]
  89. },
  90. "research_gaps": ["...", "..."],
  91. "strongest_baselines": ["paper_title_1", "paper_title_2"],
  92. "suggested_datasets": ["dataset1", "dataset2"],
  93. "synthesis": "200-300字总结"
  94. }
  95. ```
  96. **${phase_dir}/report.md**: 可读版文献综述,包含:
  97. - 检索统计(总搜索量、筛选量、各类别数量)
  98. - 按类别组织的论文列表(每篇含一句话贡献总结)
  99. - 领域现状综合分析
  100. - 识别的研究空白
  101. - 最强基线方法推荐
  102. react:
  103. maxSteps: 25
  104. observationEnabled: true
  105. toolTimeout: 60
  106. verbose: true
  107. memory:
  108. enabled: true
  109. strategy: local
  110. size: 50
  111. ttl: 7200
  112. guard:
  113. validator: "'selected_papers' in x and int(x.get('selected_papers', 0)) >= 15 and '_meta' in x"
  114. retry: 2
  115. fallback: error
  116. mcp:
  117. onlineTool:
  118. scholar-mcp:
  119. - semantic_scholar_search
  120. - get_paper_details
  121. - get_citations
  122. - get_references
  123. arxiv-mcp:
  124. - arxiv_search
  125. - arxiv_download
  126. - pdf_to_text
  127. fs-mcp:
  128. - read_file
  129. - write_file
  130. - list_dir
  131. - mkdir
  132. localTools:
  133. - terminate
  134. policy:
  135. mode: auto
  136. maxConcurrent: 3
  137. retryOnFail: 2
  138. # 运行时引擎配置 (Phase 6.5)
  139. runtime:
  140. engine: cek # recursive | cek | adaptive
  141. costBudget: 0.56 # USD — 超过此金额自动暂停
  142. maxSteps: 10000 # CEK 最大转移步数
  143. app:
  144. mcp:
  145. custom:
  146. nodes:
  147. scholar-mcp:
  148. url: "${SCHOLAR_MCP_URL}"
  149. endpoint: /mcp/scholar
  150. headers:
  151. Authorization: "${SCHOLAR_MCP_TOKEN}"
  152. timeout: 60
  153. arxiv-mcp:
  154. url: "${ARXIV_MCP_URL}"
  155. endpoint: /mcp/arxiv
  156. headers:
  157. Authorization: "${ARXIV_MCP_TOKEN}"
  158. timeout: 60
  159. fs-mcp:
  160. url: "${FS_MCP_URL}"
  161. endpoint: /mcp/fs
  162. headers:
  163. Authorization: "${FS_MCP_TOKEN}"
  164. timeout: 30