realtimex-deeptutor 0.5.0.post1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (276) hide show
  1. realtimex_deeptutor/__init__.py +67 -0
  2. realtimex_deeptutor-0.5.0.post1.dist-info/METADATA +1612 -0
  3. realtimex_deeptutor-0.5.0.post1.dist-info/RECORD +276 -0
  4. realtimex_deeptutor-0.5.0.post1.dist-info/WHEEL +5 -0
  5. realtimex_deeptutor-0.5.0.post1.dist-info/entry_points.txt +2 -0
  6. realtimex_deeptutor-0.5.0.post1.dist-info/licenses/LICENSE +661 -0
  7. realtimex_deeptutor-0.5.0.post1.dist-info/top_level.txt +2 -0
  8. src/__init__.py +40 -0
  9. src/agents/__init__.py +24 -0
  10. src/agents/base_agent.py +657 -0
  11. src/agents/chat/__init__.py +24 -0
  12. src/agents/chat/chat_agent.py +435 -0
  13. src/agents/chat/prompts/en/chat_agent.yaml +35 -0
  14. src/agents/chat/prompts/zh/chat_agent.yaml +35 -0
  15. src/agents/chat/session_manager.py +311 -0
  16. src/agents/co_writer/__init__.py +0 -0
  17. src/agents/co_writer/edit_agent.py +260 -0
  18. src/agents/co_writer/narrator_agent.py +423 -0
  19. src/agents/co_writer/prompts/en/edit_agent.yaml +113 -0
  20. src/agents/co_writer/prompts/en/narrator_agent.yaml +88 -0
  21. src/agents/co_writer/prompts/zh/edit_agent.yaml +113 -0
  22. src/agents/co_writer/prompts/zh/narrator_agent.yaml +88 -0
  23. src/agents/guide/__init__.py +16 -0
  24. src/agents/guide/agents/__init__.py +11 -0
  25. src/agents/guide/agents/chat_agent.py +104 -0
  26. src/agents/guide/agents/interactive_agent.py +223 -0
  27. src/agents/guide/agents/locate_agent.py +149 -0
  28. src/agents/guide/agents/summary_agent.py +150 -0
  29. src/agents/guide/guide_manager.py +500 -0
  30. src/agents/guide/prompts/en/chat_agent.yaml +41 -0
  31. src/agents/guide/prompts/en/interactive_agent.yaml +202 -0
  32. src/agents/guide/prompts/en/locate_agent.yaml +68 -0
  33. src/agents/guide/prompts/en/summary_agent.yaml +157 -0
  34. src/agents/guide/prompts/zh/chat_agent.yaml +41 -0
  35. src/agents/guide/prompts/zh/interactive_agent.yaml +626 -0
  36. src/agents/guide/prompts/zh/locate_agent.yaml +68 -0
  37. src/agents/guide/prompts/zh/summary_agent.yaml +157 -0
  38. src/agents/ideagen/__init__.py +12 -0
  39. src/agents/ideagen/idea_generation_workflow.py +426 -0
  40. src/agents/ideagen/material_organizer_agent.py +173 -0
  41. src/agents/ideagen/prompts/en/idea_generation.yaml +187 -0
  42. src/agents/ideagen/prompts/en/material_organizer.yaml +69 -0
  43. src/agents/ideagen/prompts/zh/idea_generation.yaml +187 -0
  44. src/agents/ideagen/prompts/zh/material_organizer.yaml +69 -0
  45. src/agents/question/__init__.py +24 -0
  46. src/agents/question/agents/__init__.py +18 -0
  47. src/agents/question/agents/generate_agent.py +381 -0
  48. src/agents/question/agents/relevance_analyzer.py +207 -0
  49. src/agents/question/agents/retrieve_agent.py +239 -0
  50. src/agents/question/coordinator.py +718 -0
  51. src/agents/question/example.py +109 -0
  52. src/agents/question/prompts/en/coordinator.yaml +75 -0
  53. src/agents/question/prompts/en/generate_agent.yaml +77 -0
  54. src/agents/question/prompts/en/relevance_analyzer.yaml +41 -0
  55. src/agents/question/prompts/en/retrieve_agent.yaml +32 -0
  56. src/agents/question/prompts/zh/coordinator.yaml +75 -0
  57. src/agents/question/prompts/zh/generate_agent.yaml +77 -0
  58. src/agents/question/prompts/zh/relevance_analyzer.yaml +39 -0
  59. src/agents/question/prompts/zh/retrieve_agent.yaml +30 -0
  60. src/agents/research/agents/__init__.py +23 -0
  61. src/agents/research/agents/decompose_agent.py +507 -0
  62. src/agents/research/agents/manager_agent.py +228 -0
  63. src/agents/research/agents/note_agent.py +180 -0
  64. src/agents/research/agents/rephrase_agent.py +263 -0
  65. src/agents/research/agents/reporting_agent.py +1333 -0
  66. src/agents/research/agents/research_agent.py +714 -0
  67. src/agents/research/data_structures.py +451 -0
  68. src/agents/research/main.py +188 -0
  69. src/agents/research/prompts/en/decompose_agent.yaml +89 -0
  70. src/agents/research/prompts/en/manager_agent.yaml +24 -0
  71. src/agents/research/prompts/en/note_agent.yaml +121 -0
  72. src/agents/research/prompts/en/rephrase_agent.yaml +58 -0
  73. src/agents/research/prompts/en/reporting_agent.yaml +380 -0
  74. src/agents/research/prompts/en/research_agent.yaml +173 -0
  75. src/agents/research/prompts/zh/decompose_agent.yaml +89 -0
  76. src/agents/research/prompts/zh/manager_agent.yaml +24 -0
  77. src/agents/research/prompts/zh/note_agent.yaml +121 -0
  78. src/agents/research/prompts/zh/rephrase_agent.yaml +58 -0
  79. src/agents/research/prompts/zh/reporting_agent.yaml +380 -0
  80. src/agents/research/prompts/zh/research_agent.yaml +173 -0
  81. src/agents/research/research_pipeline.py +1309 -0
  82. src/agents/research/utils/__init__.py +60 -0
  83. src/agents/research/utils/citation_manager.py +799 -0
  84. src/agents/research/utils/json_utils.py +98 -0
  85. src/agents/research/utils/token_tracker.py +297 -0
  86. src/agents/solve/__init__.py +80 -0
  87. src/agents/solve/analysis_loop/__init__.py +14 -0
  88. src/agents/solve/analysis_loop/investigate_agent.py +414 -0
  89. src/agents/solve/analysis_loop/note_agent.py +190 -0
  90. src/agents/solve/main_solver.py +862 -0
  91. src/agents/solve/memory/__init__.py +34 -0
  92. src/agents/solve/memory/citation_memory.py +353 -0
  93. src/agents/solve/memory/investigate_memory.py +226 -0
  94. src/agents/solve/memory/solve_memory.py +340 -0
  95. src/agents/solve/prompts/en/analysis_loop/investigate_agent.yaml +55 -0
  96. src/agents/solve/prompts/en/analysis_loop/note_agent.yaml +54 -0
  97. src/agents/solve/prompts/en/solve_loop/manager_agent.yaml +67 -0
  98. src/agents/solve/prompts/en/solve_loop/precision_answer_agent.yaml +62 -0
  99. src/agents/solve/prompts/en/solve_loop/response_agent.yaml +90 -0
  100. src/agents/solve/prompts/en/solve_loop/solve_agent.yaml +75 -0
  101. src/agents/solve/prompts/en/solve_loop/tool_agent.yaml +38 -0
  102. src/agents/solve/prompts/zh/analysis_loop/investigate_agent.yaml +53 -0
  103. src/agents/solve/prompts/zh/analysis_loop/note_agent.yaml +54 -0
  104. src/agents/solve/prompts/zh/solve_loop/manager_agent.yaml +66 -0
  105. src/agents/solve/prompts/zh/solve_loop/precision_answer_agent.yaml +62 -0
  106. src/agents/solve/prompts/zh/solve_loop/response_agent.yaml +90 -0
  107. src/agents/solve/prompts/zh/solve_loop/solve_agent.yaml +76 -0
  108. src/agents/solve/prompts/zh/solve_loop/tool_agent.yaml +41 -0
  109. src/agents/solve/solve_loop/__init__.py +22 -0
  110. src/agents/solve/solve_loop/citation_manager.py +74 -0
  111. src/agents/solve/solve_loop/manager_agent.py +274 -0
  112. src/agents/solve/solve_loop/precision_answer_agent.py +96 -0
  113. src/agents/solve/solve_loop/response_agent.py +301 -0
  114. src/agents/solve/solve_loop/solve_agent.py +325 -0
  115. src/agents/solve/solve_loop/tool_agent.py +470 -0
  116. src/agents/solve/utils/__init__.py +64 -0
  117. src/agents/solve/utils/config_validator.py +313 -0
  118. src/agents/solve/utils/display_manager.py +223 -0
  119. src/agents/solve/utils/error_handler.py +363 -0
  120. src/agents/solve/utils/json_utils.py +98 -0
  121. src/agents/solve/utils/performance_monitor.py +407 -0
  122. src/agents/solve/utils/token_tracker.py +541 -0
  123. src/api/__init__.py +0 -0
  124. src/api/main.py +240 -0
  125. src/api/routers/__init__.py +1 -0
  126. src/api/routers/agent_config.py +69 -0
  127. src/api/routers/chat.py +296 -0
  128. src/api/routers/co_writer.py +337 -0
  129. src/api/routers/config.py +627 -0
  130. src/api/routers/dashboard.py +18 -0
  131. src/api/routers/guide.py +337 -0
  132. src/api/routers/ideagen.py +436 -0
  133. src/api/routers/knowledge.py +821 -0
  134. src/api/routers/notebook.py +247 -0
  135. src/api/routers/question.py +537 -0
  136. src/api/routers/research.py +394 -0
  137. src/api/routers/settings.py +164 -0
  138. src/api/routers/solve.py +305 -0
  139. src/api/routers/system.py +252 -0
  140. src/api/run_server.py +61 -0
  141. src/api/utils/history.py +172 -0
  142. src/api/utils/log_interceptor.py +21 -0
  143. src/api/utils/notebook_manager.py +415 -0
  144. src/api/utils/progress_broadcaster.py +72 -0
  145. src/api/utils/task_id_manager.py +100 -0
  146. src/config/__init__.py +0 -0
  147. src/config/accessors.py +18 -0
  148. src/config/constants.py +34 -0
  149. src/config/defaults.py +18 -0
  150. src/config/schema.py +38 -0
  151. src/config/settings.py +50 -0
  152. src/core/errors.py +62 -0
  153. src/knowledge/__init__.py +23 -0
  154. src/knowledge/add_documents.py +606 -0
  155. src/knowledge/config.py +65 -0
  156. src/knowledge/example_add_documents.py +236 -0
  157. src/knowledge/extract_numbered_items.py +1039 -0
  158. src/knowledge/initializer.py +621 -0
  159. src/knowledge/kb.py +22 -0
  160. src/knowledge/manager.py +782 -0
  161. src/knowledge/progress_tracker.py +182 -0
  162. src/knowledge/start_kb.py +535 -0
  163. src/logging/__init__.py +103 -0
  164. src/logging/adapters/__init__.py +17 -0
  165. src/logging/adapters/lightrag.py +184 -0
  166. src/logging/adapters/llamaindex.py +141 -0
  167. src/logging/config.py +80 -0
  168. src/logging/handlers/__init__.py +20 -0
  169. src/logging/handlers/console.py +75 -0
  170. src/logging/handlers/file.py +201 -0
  171. src/logging/handlers/websocket.py +127 -0
  172. src/logging/logger.py +709 -0
  173. src/logging/stats/__init__.py +16 -0
  174. src/logging/stats/llm_stats.py +179 -0
  175. src/services/__init__.py +56 -0
  176. src/services/config/__init__.py +61 -0
  177. src/services/config/knowledge_base_config.py +210 -0
  178. src/services/config/loader.py +260 -0
  179. src/services/config/unified_config.py +603 -0
  180. src/services/embedding/__init__.py +45 -0
  181. src/services/embedding/adapters/__init__.py +22 -0
  182. src/services/embedding/adapters/base.py +106 -0
  183. src/services/embedding/adapters/cohere.py +127 -0
  184. src/services/embedding/adapters/jina.py +99 -0
  185. src/services/embedding/adapters/ollama.py +116 -0
  186. src/services/embedding/adapters/openai_compatible.py +96 -0
  187. src/services/embedding/client.py +159 -0
  188. src/services/embedding/config.py +156 -0
  189. src/services/embedding/provider.py +119 -0
  190. src/services/llm/__init__.py +152 -0
  191. src/services/llm/capabilities.py +313 -0
  192. src/services/llm/client.py +302 -0
  193. src/services/llm/cloud_provider.py +530 -0
  194. src/services/llm/config.py +200 -0
  195. src/services/llm/error_mapping.py +103 -0
  196. src/services/llm/exceptions.py +152 -0
  197. src/services/llm/factory.py +450 -0
  198. src/services/llm/local_provider.py +347 -0
  199. src/services/llm/providers/anthropic.py +95 -0
  200. src/services/llm/providers/base_provider.py +93 -0
  201. src/services/llm/providers/open_ai.py +83 -0
  202. src/services/llm/registry.py +71 -0
  203. src/services/llm/telemetry.py +40 -0
  204. src/services/llm/types.py +27 -0
  205. src/services/llm/utils.py +333 -0
  206. src/services/prompt/__init__.py +25 -0
  207. src/services/prompt/manager.py +206 -0
  208. src/services/rag/__init__.py +64 -0
  209. src/services/rag/components/__init__.py +29 -0
  210. src/services/rag/components/base.py +59 -0
  211. src/services/rag/components/chunkers/__init__.py +18 -0
  212. src/services/rag/components/chunkers/base.py +34 -0
  213. src/services/rag/components/chunkers/fixed.py +71 -0
  214. src/services/rag/components/chunkers/numbered_item.py +94 -0
  215. src/services/rag/components/chunkers/semantic.py +97 -0
  216. src/services/rag/components/embedders/__init__.py +14 -0
  217. src/services/rag/components/embedders/base.py +32 -0
  218. src/services/rag/components/embedders/openai.py +63 -0
  219. src/services/rag/components/indexers/__init__.py +18 -0
  220. src/services/rag/components/indexers/base.py +35 -0
  221. src/services/rag/components/indexers/graph.py +172 -0
  222. src/services/rag/components/indexers/lightrag.py +156 -0
  223. src/services/rag/components/indexers/vector.py +146 -0
  224. src/services/rag/components/parsers/__init__.py +18 -0
  225. src/services/rag/components/parsers/base.py +35 -0
  226. src/services/rag/components/parsers/markdown.py +52 -0
  227. src/services/rag/components/parsers/pdf.py +115 -0
  228. src/services/rag/components/parsers/text.py +86 -0
  229. src/services/rag/components/retrievers/__init__.py +18 -0
  230. src/services/rag/components/retrievers/base.py +34 -0
  231. src/services/rag/components/retrievers/dense.py +200 -0
  232. src/services/rag/components/retrievers/hybrid.py +164 -0
  233. src/services/rag/components/retrievers/lightrag.py +169 -0
  234. src/services/rag/components/routing.py +286 -0
  235. src/services/rag/factory.py +234 -0
  236. src/services/rag/pipeline.py +215 -0
  237. src/services/rag/pipelines/__init__.py +32 -0
  238. src/services/rag/pipelines/academic.py +44 -0
  239. src/services/rag/pipelines/lightrag.py +43 -0
  240. src/services/rag/pipelines/llamaindex.py +313 -0
  241. src/services/rag/pipelines/raganything.py +384 -0
  242. src/services/rag/service.py +244 -0
  243. src/services/rag/types.py +73 -0
  244. src/services/search/__init__.py +284 -0
  245. src/services/search/base.py +87 -0
  246. src/services/search/consolidation.py +398 -0
  247. src/services/search/providers/__init__.py +128 -0
  248. src/services/search/providers/baidu.py +188 -0
  249. src/services/search/providers/exa.py +194 -0
  250. src/services/search/providers/jina.py +161 -0
  251. src/services/search/providers/perplexity.py +153 -0
  252. src/services/search/providers/serper.py +209 -0
  253. src/services/search/providers/tavily.py +161 -0
  254. src/services/search/types.py +114 -0
  255. src/services/setup/__init__.py +34 -0
  256. src/services/setup/init.py +285 -0
  257. src/services/tts/__init__.py +16 -0
  258. src/services/tts/config.py +99 -0
  259. src/tools/__init__.py +91 -0
  260. src/tools/code_executor.py +536 -0
  261. src/tools/paper_search_tool.py +171 -0
  262. src/tools/query_item_tool.py +310 -0
  263. src/tools/question/__init__.py +15 -0
  264. src/tools/question/exam_mimic.py +616 -0
  265. src/tools/question/pdf_parser.py +211 -0
  266. src/tools/question/question_extractor.py +397 -0
  267. src/tools/rag_tool.py +173 -0
  268. src/tools/tex_chunker.py +339 -0
  269. src/tools/tex_downloader.py +253 -0
  270. src/tools/web_search.py +71 -0
  271. src/utils/config_manager.py +206 -0
  272. src/utils/document_validator.py +168 -0
  273. src/utils/error_rate_tracker.py +111 -0
  274. src/utils/error_utils.py +82 -0
  275. src/utils/json_parser.py +110 -0
  276. src/utils/network/circuit_breaker.py +79 -0
@@ -0,0 +1,380 @@
1
+ # ReportingAgent 提示词配置 - 深度研究报告生成
2
+ # 设计目标:生成元素丰富、逻辑连贯、内容翔实的学术级深度研究报告
3
+
4
+ # 引用指令模板
5
+ citation:
6
+ enabled_instruction: |
7
+ **引用要求(重要)**:
8
+ - 格式:使用 `[N]` 格式,其中 N 是下表中的参考编号
9
+ - 只使用引用参考表中的参考编号 - 不要编造编号!
10
+ - 将引用放在使用该来源信息的句子或论述末尾
11
+ - 不要添加参考文献部分 - 它将自动生成
12
+
13
+ **引用参考表**(使用这些确切编号):
14
+ {citation_table}
15
+
16
+ **示例**:
17
+ - "根据最新研究 [5],该方法实现了..."
18
+ - "这种方法已在多项研究中得到验证 [3][7]。"
19
+
20
+ disabled_instruction: |
21
+ **引用要求**:
22
+ - 不要在文本中添加任何行内引用,如 [1]、[[1]] 或 [N]
23
+ - 不要在末尾添加参考文献部分 - 参考文献将单独处理
24
+ - 专注于内容综合,不使用引用标记
25
+
26
+ system:
27
+ role: |
28
+ 你是一位顶级学术写作与内容整合专家,擅长将复杂的研究成果转化为结构清晰、论述深刻的专业报告。你的报告应具备以下特质:
29
+
30
+ **核心写作理念**:
31
+ 1. **深度优于广度**:宁可深入剖析少数关键点,也不泛泛而谈
32
+ 2. **论证优于陈述**:每个观点都应有充分的证据、推理或实例支撑
33
+ 3. **结构化呈现**:善用公式、表格、流程图、代码等多种元素增强表达力
34
+ 4. **学术严谨性**:准确引用来源,区分事实与推断,承认局限性
35
+
36
+ **重要格式要求**:
37
+ - 所有输出必须严格遵循 JSON 格式
38
+ - 只输出有效的 JSON 对象,不要包含任何额外的文本、解释或代码块标记
39
+ - JSON 必须可以被直接解析,不能包含注释或格式错误
40
+ - 如果输出中包含 Markdown 内容,请将其作为 JSON 字符串值,并正确转义特殊字符
41
+
42
+ process:
43
+ deduplicate: |
44
+ 分析以下话题列表,识别重复或高度相似的话题。
45
+
46
+ **重要:你必须只输出一个有效的 JSON 对象,不要包含任何其他文本、解释或代码块标记。**
47
+
48
+ 话题列表:
49
+ {topics}
50
+
51
+ 总话题数:{total_topics}
52
+
53
+ **分析步骤:**
54
+ 1. 理解每个话题的核心内容和研究视角
55
+ 2. 识别语义重复或高度相似的话题(注意:视角不同的同一概念不算重复)
56
+ 3. 选择最具代表性、内容最丰富的话题保留
57
+
58
+ **输出格式要求(严格遵循):**
59
+ - 只输出 JSON 对象,不要使用 ```json 代码块包裹
60
+ - 不要添加任何解释性文字
61
+ - 确保 JSON 格式完全有效,可以直接被解析
62
+
63
+ 输出示例(仅作为格式参考,不要复制内容):
64
+ {{
65
+ "duplicates": [{{"indices": [0, 3], "reason": "语义重复:两者都讨论XX的基本原理"}}],
66
+ "keep_indices": [0, 1, 2, 4],
67
+ "summary": "保留了4个互补性话题,覆盖理论基础、技术实现、应用场景和前沿发展"
68
+ }}
69
+
70
+ **现在请直接输出 JSON 对象,不要包含任何其他内容。**
71
+
72
+ generate_outline: |
73
+ 为以下研究生成结构化的三级标题体系大纲。
74
+
75
+ **重要:你必须只输出一个有效的 JSON 对象,不要包含任何其他文本、解释或代码块标记。**
76
+
77
+ 研究主题:{topic}
78
+
79
+ 研究话题(包含subtopic、overview和tool_summaries):
80
+ {topics_json}
81
+
82
+ 总话题数:{total_topics}
83
+
84
+ **大纲设计原则**:
85
+
86
+ 1. **三级标题体系**:
87
+ - 一级标题(#):报告总标题
88
+ - 二级标题(##):主要章节(引言、核心章节1-N、结论)
89
+ - 三级标题(###):章节内的子主题
90
+ - 四级标题(####):细分内容(可选,用于复杂章节)
91
+
92
+ 2. **逻辑结构设计**:
93
+ - 识别话题间的逻辑关系:层次、依赖、并列、递进、对比
94
+ - 按认知规律排序:概念→原理→方法→应用→评估→展望
95
+ - 确保章节间有明确的过渡逻辑
96
+
97
+ 3. **章节设计指南**:
98
+ - 每个主章节应有明确的研究问题或目标
99
+ - 子章节应覆盖该主题的核心维度
100
+ - instruction 应指明需要涵盖的关键要素和呈现方式
101
+
102
+ **输出格式要求(严格遵循):**
103
+ - 只输出 JSON 对象,不要使用 ```json 代码块包裹
104
+ - 不要添加任何解释性文字
105
+
106
+ 输出示例(仅作为格式参考,不要复制内容):
107
+ {{
108
+ "title": "# 报告总标题:精确表达研究主题",
109
+ "introduction": "## 引言",
110
+ "introduction_instruction": "阐述研究背景、问题动机、研究目标和报告结构",
111
+ "sections": [
112
+ {{
113
+ "title": "## 1. 第一主章节标题",
114
+ "instruction": "本章重点阐述...需要包含原理推导和关键公式",
115
+ "block_id": "block_1",
116
+ "subsections": [
117
+ {{
118
+ "title": "### 1.1 子章节标题",
119
+ "instruction": "详细说明...建议使用表格对比"
120
+ }},
121
+ {{
122
+ "title": "### 1.2 子章节标题",
123
+ "instruction": "分析...建议使用流程图展示"
124
+ }}
125
+ ]
126
+ }}
127
+ ],
128
+ "conclusion": "## 结论与展望",
129
+ "conclusion_instruction": "总结核心发现、研究贡献、局限性和未来方向"
130
+ }}
131
+
132
+ **现在请直接输出 JSON 对象,不要包含任何其他内容。**
133
+
134
+ write_introduction: |
135
+ 撰写研究报告的引言部分。
136
+
137
+ **重要:你必须只输出一个有效的 JSON 对象,不要包含任何其他文本、解释或代码块标记。**
138
+
139
+ 研究主题:{topic}
140
+ 引言指导:{introduction_instruction}
141
+ 研究话题概览:{topics_summary}
142
+ 总话题数:{total_topics}
143
+
144
+ **引言写作框架**(400-600字):
145
+
146
+ 1. **开篇立意**(第1段):
147
+ - 从宏观背景或重要趋势切入
148
+ - 引出研究领域的核心挑战或机遇
149
+ - 点明研究的必要性和紧迫性
150
+
151
+ 2. **问题聚焦**(第2段):
152
+ - 明确本研究要解决的具体问题
153
+ - 阐述现有方法或认知的不足
154
+ - 引出研究的核心目标
155
+
156
+ 3. **研究范围**(第3段):
157
+ - 概述研究涵盖的主要维度
158
+ - 说明各部分之间的逻辑关系
159
+ - 预告核心发现或贡献(可选)
160
+
161
+ 4. **结构导引**(第4段):
162
+ - 简要介绍报告各章节的组织安排
163
+ - 帮助读者建立阅读预期
164
+
165
+ **写作要求**:
166
+ - 使用学术化但不晦涩的语言
167
+ - 每段有明确的主题句
168
+ - 段落间有自然过渡
169
+ - 不要使用章节标题,直接写正文内容
170
+
171
+ **输出格式要求(严格遵循):**
172
+ - 只输出 JSON 对象,不要使用 ```json 代码块包裹
173
+ - JSON 字符串中的特殊字符(如引号、换行符)必须正确转义
174
+
175
+ 输出示例:
176
+ {{
177
+ "introduction": "完整的引言内容(Markdown格式,不含标题,400-600字)"
178
+ }}
179
+
180
+ **现在请直接输出 JSON 对象,不要包含任何其他内容。**
181
+
182
+ write_section_body: |
183
+ 基于研究数据撰写深度章节内容。
184
+
185
+ **重要:你必须只输出一个有效的 JSON 对象,不要包含任何其他文本、解释或代码块标记。**
186
+
187
+ 研究主题: {topic}
188
+ 章节标题: {section_title}
189
+ 写作指导: {section_instruction}
190
+ 数据源: {block_data}
191
+
192
+ **深度写作框架**:
193
+
194
+ ## 第一步:素材深度解析
195
+
196
+ 1. **信息分级处理**:
197
+ - **核心层**:关键定义、核心公式、主要结论 → 必须完整呈现
198
+ - **支撑层**:推导过程、实验数据、案例分析 → 选择性深入
199
+ - **背景层**:历史沿革、相关工作 → 简要提及
200
+
201
+ 2. **信息可信度评估**:
202
+ - 优先采信:peer-reviewed论文 > 权威教材 > 技术文档 > 网络资源
203
+ - 冲突处理:标注不同观点,或选择最新/最权威来源
204
+
205
+ ## 第二步:结构化组织
206
+
207
+ **三级标题体系**(必须遵循):
208
+ - 本章节使用 `##` 作为主标题
209
+ - 使用 `###` 组织子主题(2-4个为宜)
210
+ - 复杂子主题可使用 `####` 进一步细分
211
+
212
+ **逻辑架构模式**(选择最适合的一种):
213
+ - **演绎式**:原理→推论→应用→验证
214
+ - **归纳式**:现象→分析→规律→理论
215
+ - **对比式**:方法A vs 方法B → 优劣分析 → 适用场景
216
+ - **问题导向式**:问题→现有方案→局限性→改进思路
217
+
218
+ ## 第三步:多模态元素运用
219
+
220
+ **必须根据内容特点选择性使用以下元素**:
221
+
222
+ 1. **数学公式**(LaTeX格式):
223
+ - 行内公式:`$E = mc^2$`
224
+ - 独立公式块:
225
+ ```
226
+ $$
227
+ \mathcal{L} = \sum_{i=1}^{n} \ell(y_i, f(x_i)) + \lambda \Omega(f)
228
+ $$
229
+ ```
230
+ - 适用:定义、定理、推导、优化目标等
231
+
232
+ 2. **表格**(Markdown格式):
233
+ - 适用:多维度对比、参数配置、实验结果、分类汇总
234
+ - 格式示例:
235
+ ```
236
+ | 方法 | 准确率 | 效率 | 适用场景 |
237
+ |------|--------|------|----------|
238
+ | A | 95% | 快 | 实时系统 |
239
+ | B | 98% | 慢 | 离线分析 |
240
+ ```
241
+
242
+ 3. **流程图**(Mermaid格式):
243
+ - 适用:算法流程、系统架构、决策逻辑、数据流向
244
+ - 格式示例:
245
+ ```mermaid
246
+ graph TD
247
+ A[输入] --> B{{处理}}
248
+ B --> C[输出]
249
+ ```
250
+
251
+ 4. **代码块**:
252
+ - 适用:算法实现、配置示例、API调用
253
+ - 必须标注语言类型(python/javascript/sql等)
254
+
255
+ 5. **列表与层级**:
256
+ - 有序列表:步骤、排名、优先级
257
+ - 无序列表:特点、要素、选项
258
+ - 嵌套列表:层级关系、分类体系
259
+
260
+ ## 第四步:学术写作规范
261
+ {citation_instruction}
262
+
263
+ 1. **深度转述**:
264
+ - 避免直接复制,用学术语言重组表达
265
+ - 示例转换:
266
+ - 原:「X方法效果好」
267
+ - 改:「实验结果表明,X方法在Y指标上取得了显著提升,相较基线方法提高了Z%」
268
+
269
+ 2. **论证完整性**:
270
+ - 每个核心观点都应有:论点 → 论据 → 论证 → 小结
271
+ - 适当使用过渡句连接段落
272
+
273
+ 3. **专业术语处理**:
274
+ - 首次出现时给出定义或解释
275
+ - 可使用「术语(英文原文)」格式
276
+
277
+ **输出格式要求(严格遵循):**
278
+ - 只输出 JSON 对象,不要使用 ```json 代码块包裹
279
+ - JSON 字符串中的换行符应使用 \n 转义
280
+ - 确保 JSON 格式完全有效
281
+
282
+ 输出示例:
283
+ {{
284
+ "section_content": "## 章节标题\n\n开篇段落...\n\n### 1.1 子章节标题\n\n内容...\n\n### 1.2 子章节标题\n\n内容...{citation_output_hint}"
285
+ }}
286
+
287
+ **字数要求**:每个章节至少800字,内容翔实、论述充分
288
+
289
+ **现在请直接输出 JSON 对象,不要包含任何其他内容。**
290
+
291
+ write_conclusion: |
292
+ 撰写研究报告的结论部分。
293
+
294
+ **重要:你必须只输出一个有效的 JSON 对象,不要包含任何其他文本、解释或代码块标记。**
295
+
296
+ 研究主题:{topic}
297
+ 结论指导:{conclusion_instruction}
298
+ 关键发现:{topics_findings}
299
+ 总话题数:{total_topics}
300
+
301
+ **结论写作框架**(500-700字):
302
+
303
+ 1. **研究回顾与核心发现**(第1-2段):
304
+ - 简要回顾研究问题和方法
305
+ - 系统总结各章节的核心发现
306
+ - 归纳形成整体性结论
307
+
308
+ 2. **研究贡献与价值**(第3段):
309
+ - **理论贡献**:对领域认知的推进
310
+ - **方法贡献**:新方法、新框架、新工具
311
+ - **实践价值**:对实际应用的指导意义
312
+
313
+ 3. **局限性与反思**(第4段):
314
+ - 诚实指出研究的局限性
315
+ - 说明数据、方法或范围的约束
316
+ - 提示结论的适用边界
317
+
318
+ 4. **未来展望**(第5段):
319
+ - 指出待解决的开放问题
320
+ - 提出有价值的研究方向
321
+ - 展望领域发展趋势
322
+
323
+ **写作要求**:
324
+ - 结论应有高度概括性,避免重复正文细节
325
+ - 体现批判性思维,不回避局限性
326
+ - 展望应具体可行,不泛泛而谈
327
+ - 不要使用章节标题,直接写正文内容
328
+
329
+ **输出格式要求(严格遵循):**
330
+ - 只输出 JSON 对象,不要使用 ```json 代码块包裹
331
+ - JSON 字符串中的特殊字符必须正确转义
332
+
333
+ 输出示例:
334
+ {{
335
+ "conclusion": "完整的结论内容(Markdown格式,不含标题,500-700字)"
336
+ }}
337
+
338
+ **现在请直接输出 JSON 对象,不要包含任何其他内容。**
339
+
340
+ # 新增:子章节写作提示词(用于三级标题内容)
341
+ write_subsection: |
342
+ 基于父章节上下文,撰写子章节内容。
343
+
344
+ **重要:你必须只输出一个有效的 JSON 对象,不要包含任何其他文本、解释或代码块标记。**
345
+
346
+ 研究主题: {topic}
347
+ 父章节标题: {parent_section_title}
348
+ 子章节标题: {subsection_title}
349
+ 写作指导: {subsection_instruction}
350
+ 相关数据: {subsection_data}
351
+
352
+ **写作要求**:
353
+
354
+ 1. **内容定位**:
355
+ - 聚焦子章节的具体主题
356
+ - 与父章节保持逻辑连贯
357
+ - 避免与其他子章节内容重复
358
+
359
+ 2. **深度要求**:
360
+ - 提供具体的技术细节或案例分析
361
+ - 适当使用公式、表格、图表等元素
362
+ - 论述要有理有据
363
+
364
+ 3. **格式规范**:
365
+ - 使用 `###` 作为子章节标题
366
+ - 可使用 `####` 进一步细分(可选)
367
+ - 段落清晰,逻辑分明
368
+
369
+ **输出格式要求(严格遵循):**
370
+ - 只输出 JSON 对象
371
+ - JSON 字符串中的换行符应使用 \n 转义
372
+
373
+ 输出示例:
374
+ {{
375
+ "subsection_content": "### 子章节标题\n\n内容...\n\n#### 细分主题(可选)\n\n内容..."
376
+ }}
377
+
378
+ **字数要求**:每个子章节300-500字
379
+
380
+ **现在请直接输出 JSON 对象,不要包含任何其他内容。**
@@ -0,0 +1,173 @@
1
+ # ResearchAgent 提示词配置
2
+
3
+ system:
4
+ role: |
5
+ 你是一个基于知识库的深度研究策略专家,负责系统性地从知识库中挖掘与话题相关的内容,并根据需要拓展到外部资源。
6
+
7
+ # 动态内容的指导模板
8
+ guidance:
9
+ # 当 web_search 和 paper_search 都启用时的在线搜索指导
10
+ online_search_both: |
11
+ **在线搜索评估指导(web_search 和 paper_search 已启用)**:
12
+
13
+ 在评估知识充足性时,除了评估知识库内容覆盖度外,还需要考虑:
14
+
15
+ 1. **内容时效性评估**:
16
+ - 当前知识是否包含最新发展、行业趋势和应用案例?
17
+ - 是否需要补充最新背景信息和当前应用状态?
18
+ - 知识库内容是否可能过时,需要最新信息补充?
19
+
20
+ 2. **知识扩展评估**:
21
+ - 知识是否已从基础知识库内容扩展到最新发展?
22
+ - 是否通过 web_search 补充了实时背景、行业案例和最新应用?
23
+ - 是否通过 paper_search 补充了前沿学术研究、最新理论进展和具体研究工作?
24
+
25
+ 3. **研究完整性评估**:
26
+ - 如果话题涉及前沿研究或最新发展,是否通过在线搜索补充了相关内容?
27
+ - 是否形成了从知识库基础到最新发展的完整知识链?
28
+
29
+ 判断标准:
30
+ - 如果知识库内容已充分探索 且 已通过在线搜索补充必要的实时信息/前沿研究,则视为充足
31
+ - 如果知识库内容已充分探索 但 缺少必要的实时信息/前沿研究补充,则视为不充足
32
+ - 如果知识库内容尚未充分探索,优先继续探索知识库,暂时忽略在线搜索
33
+
34
+ # 当只启用 web_search 时的在线搜索指导
35
+ online_search_web_only: |
36
+ **在线搜索评估指导(web_search 已启用)**:
37
+
38
+ 在评估知识充足性时,除了评估知识库内容覆盖度外,还需要考虑:
39
+
40
+ 1. **内容时效性评估**:
41
+ - 当前知识是否包含最新发展、行业趋势和应用案例?
42
+ - 是否需要补充最新背景信息和当前应用状态?
43
+ - 知识库内容是否可能过时,需要最新信息补充?
44
+
45
+ 2. **知识扩展评估**:
46
+ - 知识是否已从基础知识库内容扩展到最新发展?
47
+ - 是否通过 web_search 补充了实时背景、行业案例和最新应用?
48
+
49
+ 判断标准:
50
+ - 如果知识库内容已充分探索 且 已通过 web_search 补充必要的实时信息,则视为充足
51
+ - 如果知识库内容已充分探索 但 缺少必要的实时信息补充,则视为不充足
52
+ - 如果知识库内容尚未充分探索,优先继续探索知识库,暂时忽略 web_search
53
+
54
+ # 当只启用 paper_search 时的在线搜索指导
55
+ online_search_paper_only: |
56
+ **在线搜索评估指导(paper_search 已启用)**:
57
+
58
+ 在评估知识充足性时,除了评估知识库内容覆盖度外,还需要考虑:
59
+
60
+ 1. **前沿研究评估**:
61
+ - 当前知识是否包含相关前沿学术研究和最新理论进展?
62
+ - 是否需要补充具体研究工作、最新方法和最新发现?
63
+ - 知识库内容是否缺乏前沿研究视角?
64
+
65
+ 2. **知识扩展评估**:
66
+ - 知识是否已从基础知识库内容扩展到前沿研究?
67
+ - 是否通过 paper_search 补充了前沿学术研究、最新理论进展和具体研究工作?
68
+
69
+ 判断标准:
70
+ - 如果知识库内容已充分探索 且 已通过 paper_search 补充必要的前沿研究,则视为充足
71
+ - 如果知识库内容已充分探索 但 缺少必要的前沿研究补充,则视为不充足
72
+ - 如果知识库内容尚未充分探索,优先继续探索知识库,暂时忽略 paper_search
73
+
74
+ # 灵活模式的迭代模式标准
75
+ iteration_mode_flexible: |
76
+ - **灵活模式(自动)**:你有自主权决定充足性。
77
+ - 如果知识确实全面,你可以提前得出充足结论
78
+ - 但仍需确保在得出结论前核心方面已被覆盖
79
+ - 质量优于数量:关注有意义的覆盖,而非迭代次数
80
+
81
+ # 固定模式的迭代模式标准
82
+ iteration_mode_fixed: |
83
+ - **固定模式**:在宣布充足性时要保守。
84
+ - 在早期迭代(1-{early_threshold}):很少得出充足结论,继续探索
85
+ - 在中期迭代:需要有力证据证明全面覆盖
86
+ - 仅在后期迭代({early_threshold}+):如果确实全面,才考虑充足
87
+ - 目标是彻底探索,而非快速完成
88
+
89
+ process:
90
+ check_sufficiency: |
91
+ 判断以下话题的当前知识是否充足。仅输出 JSON 对象:
92
+
93
+ 话题: {topic}
94
+ 话题概览: {overview}
95
+ 当前知识: {current_knowledge}
96
+ 迭代次数: {iteration}
97
+ {online_search_instruction}
98
+ {research_depth_guidance}
99
+ {iteration_mode_criteria}
100
+
101
+ **重要原则:深度优先于广度**
102
+
103
+ 你必须严格、系统地评估当前知识是否真正达到了"深度研究"的标准,而非仅仅"表面覆盖"。
104
+
105
+ **评估步骤:**
106
+
107
+ 1. **明确核心要素**(至少评估以下6个维度):
108
+ - □ 概念定义:是否有清晰、完整的定义?
109
+ - □ 核心原理:是否深入解释了工作机制、推导过程?
110
+ - □ 关键公式/算法:是否包含具体的数学表达或算法步骤?
111
+ - □ 应用场景:是否有具体的应用案例或实例分析?
112
+ - □ 关联关系:是否探索了与其他概念/领域的联系?
113
+ - □ 局限与发展:是否讨论了局限性、挑战或前沿发展?
114
+
115
+ 2. **严格评估覆盖情况**:
116
+ - 统计已覆盖维度数量(至少需要覆盖4个以上维度)
117
+ - 评估每个维度的深度(表面提及 vs 深入分析)
118
+ - 识别关键遗漏(哪些维度完全未涉及或深度不足)
119
+
120
+ 3. **判断充足性标准**:
121
+ - **充足**(is_sufficient=true):满足以下**全部**条件
122
+ ① 至少覆盖5个核心维度
123
+ ② 每个已覆盖维度都有实质内容(非仅提及)
124
+ ③ 迭代次数 ≥ 3(确保已进行多轮探索)
125
+ - **不充足**(is_sufficient=false):任一条件不满足
126
+
127
+ 输出 JSON:
128
+ {{
129
+ "is_sufficient": true/false,
130
+ "covered_dimensions": ["已覆盖的维度列表"],
131
+ "missing_dimensions": ["缺失或深度不足的维度列表"],
132
+ "coverage_score": 0.0-1.0,
133
+ "reason": "判断理由(具体说明覆盖情况和判断依据)"
134
+ }}
135
+
136
+ generate_query_plan: |
137
+ 知识不充分时,制定下一步查询计划。仅输出 JSON 对象:
138
+
139
+ 话题: {topic}
140
+ 话题概览: {overview}
141
+ 当前知识: {current_knowledge}
142
+ 迭代次数: {iteration}
143
+ 已存在话题:
144
+ {existing_topics}
145
+
146
+ **可用工具列表(只能使用以下工具)**:
147
+ {available_tools}
148
+
149
+ {tool_phase_guidance}
150
+
151
+ **查询设计原则**:
152
+ 1. **重要**:只能从上方"可用工具列表"中选择工具,不要使用未列出的工具
153
+ 2. 每次查询应针对一个具体的知识缺口
154
+ 3. 避免与当前知识中已有内容重复
155
+ 4. 查询应具体、可执行(避免过于宽泛)
156
+ 5. 如果使用 paper_search,必须使用英文关键词
157
+
158
+ **新话题评估**:仅当发现与主题高度相关且与现有话题完全不同的重要分支时,才建议添加新话题(score ≥ 0.85)
159
+
160
+ 输出 JSON:
161
+ {{
162
+ "query": "具体查询语句",
163
+ "tool_type": "从可用工具列表中选择",
164
+ "target_dimension": "本次查询针对的知识维度",
165
+ "rationale": "工具选择理由和查询目标",
166
+ "parallel": false,
167
+ "fallback": ["rag_hybrid", "rag_naive"],
168
+ "should_add_new_topic": false,
169
+ "new_sub_topic": null,
170
+ "new_overview": null,
171
+ "new_topic_reason": null,
172
+ "new_topic_score": 0.0
173
+ }}