jarvis-ai-assistant 0.7.8__py3-none-any.whl → 1.0.2__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 (279) hide show
  1. jarvis/__init__.py +1 -1
  2. jarvis/jarvis_agent/__init__.py +567 -222
  3. jarvis/jarvis_agent/agent_manager.py +19 -12
  4. jarvis/jarvis_agent/builtin_input_handler.py +79 -11
  5. jarvis/jarvis_agent/config_editor.py +7 -2
  6. jarvis/jarvis_agent/event_bus.py +24 -13
  7. jarvis/jarvis_agent/events.py +19 -1
  8. jarvis/jarvis_agent/file_context_handler.py +67 -64
  9. jarvis/jarvis_agent/file_methodology_manager.py +38 -24
  10. jarvis/jarvis_agent/jarvis.py +186 -114
  11. jarvis/jarvis_agent/language_extractors/__init__.py +8 -1
  12. jarvis/jarvis_agent/language_extractors/c_extractor.py +7 -4
  13. jarvis/jarvis_agent/language_extractors/cpp_extractor.py +9 -4
  14. jarvis/jarvis_agent/language_extractors/go_extractor.py +7 -4
  15. jarvis/jarvis_agent/language_extractors/java_extractor.py +27 -20
  16. jarvis/jarvis_agent/language_extractors/javascript_extractor.py +22 -17
  17. jarvis/jarvis_agent/language_extractors/python_extractor.py +7 -4
  18. jarvis/jarvis_agent/language_extractors/rust_extractor.py +7 -4
  19. jarvis/jarvis_agent/language_extractors/typescript_extractor.py +22 -17
  20. jarvis/jarvis_agent/language_support_info.py +250 -219
  21. jarvis/jarvis_agent/main.py +19 -23
  22. jarvis/jarvis_agent/memory_manager.py +9 -6
  23. jarvis/jarvis_agent/methodology_share_manager.py +21 -15
  24. jarvis/jarvis_agent/output_handler.py +4 -2
  25. jarvis/jarvis_agent/prompt_builder.py +7 -6
  26. jarvis/jarvis_agent/prompt_manager.py +113 -8
  27. jarvis/jarvis_agent/prompts.py +317 -85
  28. jarvis/jarvis_agent/protocols.py +5 -2
  29. jarvis/jarvis_agent/run_loop.py +192 -32
  30. jarvis/jarvis_agent/session_manager.py +7 -3
  31. jarvis/jarvis_agent/share_manager.py +23 -13
  32. jarvis/jarvis_agent/shell_input_handler.py +12 -8
  33. jarvis/jarvis_agent/stdio_redirect.py +25 -26
  34. jarvis/jarvis_agent/task_analyzer.py +29 -23
  35. jarvis/jarvis_agent/task_list.py +869 -0
  36. jarvis/jarvis_agent/task_manager.py +26 -23
  37. jarvis/jarvis_agent/tool_executor.py +6 -5
  38. jarvis/jarvis_agent/tool_share_manager.py +24 -14
  39. jarvis/jarvis_agent/user_interaction.py +3 -3
  40. jarvis/jarvis_agent/utils.py +9 -1
  41. jarvis/jarvis_agent/web_bridge.py +37 -17
  42. jarvis/jarvis_agent/web_output_sink.py +5 -2
  43. jarvis/jarvis_agent/web_server.py +165 -36
  44. jarvis/jarvis_c2rust/__init__.py +1 -1
  45. jarvis/jarvis_c2rust/cli.py +260 -141
  46. jarvis/jarvis_c2rust/collector.py +37 -18
  47. jarvis/jarvis_c2rust/constants.py +60 -0
  48. jarvis/jarvis_c2rust/library_replacer.py +242 -1010
  49. jarvis/jarvis_c2rust/library_replacer_checkpoint.py +133 -0
  50. jarvis/jarvis_c2rust/library_replacer_llm.py +287 -0
  51. jarvis/jarvis_c2rust/library_replacer_loader.py +191 -0
  52. jarvis/jarvis_c2rust/library_replacer_output.py +134 -0
  53. jarvis/jarvis_c2rust/library_replacer_prompts.py +124 -0
  54. jarvis/jarvis_c2rust/library_replacer_utils.py +188 -0
  55. jarvis/jarvis_c2rust/llm_module_agent.py +98 -1044
  56. jarvis/jarvis_c2rust/llm_module_agent_apply.py +170 -0
  57. jarvis/jarvis_c2rust/llm_module_agent_executor.py +288 -0
  58. jarvis/jarvis_c2rust/llm_module_agent_loader.py +170 -0
  59. jarvis/jarvis_c2rust/llm_module_agent_prompts.py +268 -0
  60. jarvis/jarvis_c2rust/llm_module_agent_types.py +57 -0
  61. jarvis/jarvis_c2rust/llm_module_agent_utils.py +150 -0
  62. jarvis/jarvis_c2rust/llm_module_agent_validator.py +119 -0
  63. jarvis/jarvis_c2rust/loaders.py +28 -10
  64. jarvis/jarvis_c2rust/models.py +5 -2
  65. jarvis/jarvis_c2rust/optimizer.py +192 -1974
  66. jarvis/jarvis_c2rust/optimizer_build_fix.py +286 -0
  67. jarvis/jarvis_c2rust/optimizer_clippy.py +766 -0
  68. jarvis/jarvis_c2rust/optimizer_config.py +49 -0
  69. jarvis/jarvis_c2rust/optimizer_docs.py +183 -0
  70. jarvis/jarvis_c2rust/optimizer_options.py +48 -0
  71. jarvis/jarvis_c2rust/optimizer_progress.py +469 -0
  72. jarvis/jarvis_c2rust/optimizer_report.py +52 -0
  73. jarvis/jarvis_c2rust/optimizer_unsafe.py +309 -0
  74. jarvis/jarvis_c2rust/optimizer_utils.py +469 -0
  75. jarvis/jarvis_c2rust/optimizer_visibility.py +185 -0
  76. jarvis/jarvis_c2rust/scanner.py +229 -166
  77. jarvis/jarvis_c2rust/transpiler.py +531 -2732
  78. jarvis/jarvis_c2rust/transpiler_agents.py +503 -0
  79. jarvis/jarvis_c2rust/transpiler_build.py +1294 -0
  80. jarvis/jarvis_c2rust/transpiler_codegen.py +204 -0
  81. jarvis/jarvis_c2rust/transpiler_compile.py +146 -0
  82. jarvis/jarvis_c2rust/transpiler_config.py +178 -0
  83. jarvis/jarvis_c2rust/transpiler_context.py +122 -0
  84. jarvis/jarvis_c2rust/transpiler_executor.py +516 -0
  85. jarvis/jarvis_c2rust/transpiler_generation.py +278 -0
  86. jarvis/jarvis_c2rust/transpiler_git.py +163 -0
  87. jarvis/jarvis_c2rust/transpiler_mod_utils.py +225 -0
  88. jarvis/jarvis_c2rust/transpiler_modules.py +336 -0
  89. jarvis/jarvis_c2rust/transpiler_planning.py +394 -0
  90. jarvis/jarvis_c2rust/transpiler_review.py +1196 -0
  91. jarvis/jarvis_c2rust/transpiler_symbols.py +176 -0
  92. jarvis/jarvis_c2rust/utils.py +269 -79
  93. jarvis/jarvis_code_agent/after_change.py +233 -0
  94. jarvis/jarvis_code_agent/build_validation_config.py +37 -30
  95. jarvis/jarvis_code_agent/builtin_rules.py +68 -0
  96. jarvis/jarvis_code_agent/code_agent.py +976 -1517
  97. jarvis/jarvis_code_agent/code_agent_build.py +227 -0
  98. jarvis/jarvis_code_agent/code_agent_diff.py +246 -0
  99. jarvis/jarvis_code_agent/code_agent_git.py +525 -0
  100. jarvis/jarvis_code_agent/code_agent_impact.py +177 -0
  101. jarvis/jarvis_code_agent/code_agent_lint.py +283 -0
  102. jarvis/jarvis_code_agent/code_agent_llm.py +159 -0
  103. jarvis/jarvis_code_agent/code_agent_postprocess.py +105 -0
  104. jarvis/jarvis_code_agent/code_agent_prompts.py +46 -0
  105. jarvis/jarvis_code_agent/code_agent_rules.py +305 -0
  106. jarvis/jarvis_code_agent/code_analyzer/__init__.py +52 -48
  107. jarvis/jarvis_code_agent/code_analyzer/base_language.py +12 -10
  108. jarvis/jarvis_code_agent/code_analyzer/build_validator/__init__.py +12 -11
  109. jarvis/jarvis_code_agent/code_analyzer/build_validator/base.py +16 -12
  110. jarvis/jarvis_code_agent/code_analyzer/build_validator/cmake.py +26 -17
  111. jarvis/jarvis_code_agent/code_analyzer/build_validator/detector.py +558 -104
  112. jarvis/jarvis_code_agent/code_analyzer/build_validator/fallback.py +27 -16
  113. jarvis/jarvis_code_agent/code_analyzer/build_validator/go.py +22 -18
  114. jarvis/jarvis_code_agent/code_analyzer/build_validator/java_gradle.py +21 -16
  115. jarvis/jarvis_code_agent/code_analyzer/build_validator/java_maven.py +20 -16
  116. jarvis/jarvis_code_agent/code_analyzer/build_validator/makefile.py +27 -16
  117. jarvis/jarvis_code_agent/code_analyzer/build_validator/nodejs.py +47 -23
  118. jarvis/jarvis_code_agent/code_analyzer/build_validator/python.py +71 -37
  119. jarvis/jarvis_code_agent/code_analyzer/build_validator/rust.py +162 -35
  120. jarvis/jarvis_code_agent/code_analyzer/build_validator/validator.py +111 -57
  121. jarvis/jarvis_code_agent/code_analyzer/build_validator.py +18 -12
  122. jarvis/jarvis_code_agent/code_analyzer/context_manager.py +185 -183
  123. jarvis/jarvis_code_agent/code_analyzer/context_recommender.py +2 -1
  124. jarvis/jarvis_code_agent/code_analyzer/dependency_analyzer.py +24 -15
  125. jarvis/jarvis_code_agent/code_analyzer/file_ignore.py +227 -141
  126. jarvis/jarvis_code_agent/code_analyzer/impact_analyzer.py +321 -247
  127. jarvis/jarvis_code_agent/code_analyzer/language_registry.py +37 -29
  128. jarvis/jarvis_code_agent/code_analyzer/language_support.py +21 -13
  129. jarvis/jarvis_code_agent/code_analyzer/languages/__init__.py +15 -9
  130. jarvis/jarvis_code_agent/code_analyzer/languages/c_cpp_language.py +75 -45
  131. jarvis/jarvis_code_agent/code_analyzer/languages/go_language.py +87 -52
  132. jarvis/jarvis_code_agent/code_analyzer/languages/java_language.py +84 -51
  133. jarvis/jarvis_code_agent/code_analyzer/languages/javascript_language.py +94 -64
  134. jarvis/jarvis_code_agent/code_analyzer/languages/python_language.py +109 -71
  135. jarvis/jarvis_code_agent/code_analyzer/languages/rust_language.py +97 -63
  136. jarvis/jarvis_code_agent/code_analyzer/languages/typescript_language.py +103 -69
  137. jarvis/jarvis_code_agent/code_analyzer/llm_context_recommender.py +271 -268
  138. jarvis/jarvis_code_agent/code_analyzer/symbol_extractor.py +76 -64
  139. jarvis/jarvis_code_agent/code_analyzer/tree_sitter_extractor.py +92 -19
  140. jarvis/jarvis_code_agent/diff_visualizer.py +998 -0
  141. jarvis/jarvis_code_agent/lint.py +223 -524
  142. jarvis/jarvis_code_agent/rule_share_manager.py +158 -0
  143. jarvis/jarvis_code_agent/rules/clean_code.md +144 -0
  144. jarvis/jarvis_code_agent/rules/code_review.md +115 -0
  145. jarvis/jarvis_code_agent/rules/documentation.md +165 -0
  146. jarvis/jarvis_code_agent/rules/generate_rules.md +52 -0
  147. jarvis/jarvis_code_agent/rules/performance.md +158 -0
  148. jarvis/jarvis_code_agent/rules/refactoring.md +139 -0
  149. jarvis/jarvis_code_agent/rules/security.md +160 -0
  150. jarvis/jarvis_code_agent/rules/tdd.md +78 -0
  151. jarvis/jarvis_code_agent/test_rules/cpp_test.md +118 -0
  152. jarvis/jarvis_code_agent/test_rules/go_test.md +98 -0
  153. jarvis/jarvis_code_agent/test_rules/java_test.md +99 -0
  154. jarvis/jarvis_code_agent/test_rules/javascript_test.md +113 -0
  155. jarvis/jarvis_code_agent/test_rules/php_test.md +117 -0
  156. jarvis/jarvis_code_agent/test_rules/python_test.md +91 -0
  157. jarvis/jarvis_code_agent/test_rules/ruby_test.md +102 -0
  158. jarvis/jarvis_code_agent/test_rules/rust_test.md +86 -0
  159. jarvis/jarvis_code_agent/utils.py +36 -26
  160. jarvis/jarvis_code_analysis/checklists/loader.py +21 -21
  161. jarvis/jarvis_code_analysis/code_review.py +64 -33
  162. jarvis/jarvis_data/config_schema.json +285 -192
  163. jarvis/jarvis_git_squash/main.py +8 -6
  164. jarvis/jarvis_git_utils/git_commiter.py +53 -76
  165. jarvis/jarvis_mcp/__init__.py +5 -2
  166. jarvis/jarvis_mcp/sse_mcp_client.py +40 -30
  167. jarvis/jarvis_mcp/stdio_mcp_client.py +27 -19
  168. jarvis/jarvis_mcp/streamable_mcp_client.py +35 -26
  169. jarvis/jarvis_memory_organizer/memory_organizer.py +78 -55
  170. jarvis/jarvis_methodology/main.py +48 -39
  171. jarvis/jarvis_multi_agent/__init__.py +56 -23
  172. jarvis/jarvis_multi_agent/main.py +15 -18
  173. jarvis/jarvis_platform/base.py +179 -111
  174. jarvis/jarvis_platform/human.py +27 -16
  175. jarvis/jarvis_platform/kimi.py +52 -45
  176. jarvis/jarvis_platform/openai.py +101 -40
  177. jarvis/jarvis_platform/registry.py +51 -33
  178. jarvis/jarvis_platform/tongyi.py +68 -38
  179. jarvis/jarvis_platform/yuanbao.py +59 -43
  180. jarvis/jarvis_platform_manager/main.py +68 -76
  181. jarvis/jarvis_platform_manager/service.py +24 -14
  182. jarvis/jarvis_rag/README_CONFIG.md +314 -0
  183. jarvis/jarvis_rag/README_DYNAMIC_LOADING.md +311 -0
  184. jarvis/jarvis_rag/README_ONLINE_MODELS.md +230 -0
  185. jarvis/jarvis_rag/__init__.py +57 -4
  186. jarvis/jarvis_rag/cache.py +3 -1
  187. jarvis/jarvis_rag/cli.py +48 -68
  188. jarvis/jarvis_rag/embedding_interface.py +39 -0
  189. jarvis/jarvis_rag/embedding_manager.py +7 -230
  190. jarvis/jarvis_rag/embeddings/__init__.py +41 -0
  191. jarvis/jarvis_rag/embeddings/base.py +114 -0
  192. jarvis/jarvis_rag/embeddings/cohere.py +66 -0
  193. jarvis/jarvis_rag/embeddings/edgefn.py +117 -0
  194. jarvis/jarvis_rag/embeddings/local.py +260 -0
  195. jarvis/jarvis_rag/embeddings/openai.py +62 -0
  196. jarvis/jarvis_rag/embeddings/registry.py +293 -0
  197. jarvis/jarvis_rag/llm_interface.py +8 -6
  198. jarvis/jarvis_rag/query_rewriter.py +8 -9
  199. jarvis/jarvis_rag/rag_pipeline.py +61 -52
  200. jarvis/jarvis_rag/reranker.py +7 -75
  201. jarvis/jarvis_rag/reranker_interface.py +32 -0
  202. jarvis/jarvis_rag/rerankers/__init__.py +41 -0
  203. jarvis/jarvis_rag/rerankers/base.py +109 -0
  204. jarvis/jarvis_rag/rerankers/cohere.py +67 -0
  205. jarvis/jarvis_rag/rerankers/edgefn.py +140 -0
  206. jarvis/jarvis_rag/rerankers/jina.py +79 -0
  207. jarvis/jarvis_rag/rerankers/local.py +89 -0
  208. jarvis/jarvis_rag/rerankers/registry.py +293 -0
  209. jarvis/jarvis_rag/retriever.py +58 -43
  210. jarvis/jarvis_sec/__init__.py +66 -141
  211. jarvis/jarvis_sec/agents.py +21 -17
  212. jarvis/jarvis_sec/analysis.py +80 -33
  213. jarvis/jarvis_sec/checkers/__init__.py +7 -13
  214. jarvis/jarvis_sec/checkers/c_checker.py +356 -164
  215. jarvis/jarvis_sec/checkers/rust_checker.py +47 -29
  216. jarvis/jarvis_sec/cli.py +43 -21
  217. jarvis/jarvis_sec/clustering.py +430 -272
  218. jarvis/jarvis_sec/file_manager.py +99 -55
  219. jarvis/jarvis_sec/parsers.py +9 -6
  220. jarvis/jarvis_sec/prompts.py +4 -3
  221. jarvis/jarvis_sec/report.py +44 -22
  222. jarvis/jarvis_sec/review.py +180 -107
  223. jarvis/jarvis_sec/status.py +50 -41
  224. jarvis/jarvis_sec/types.py +3 -0
  225. jarvis/jarvis_sec/utils.py +160 -83
  226. jarvis/jarvis_sec/verification.py +411 -181
  227. jarvis/jarvis_sec/workflow.py +132 -21
  228. jarvis/jarvis_smart_shell/main.py +28 -41
  229. jarvis/jarvis_stats/cli.py +14 -12
  230. jarvis/jarvis_stats/stats.py +28 -19
  231. jarvis/jarvis_stats/storage.py +14 -8
  232. jarvis/jarvis_stats/visualizer.py +12 -7
  233. jarvis/jarvis_tools/base.py +5 -2
  234. jarvis/jarvis_tools/clear_memory.py +13 -9
  235. jarvis/jarvis_tools/cli/main.py +23 -18
  236. jarvis/jarvis_tools/edit_file.py +572 -873
  237. jarvis/jarvis_tools/execute_script.py +10 -7
  238. jarvis/jarvis_tools/file_analyzer.py +7 -8
  239. jarvis/jarvis_tools/meta_agent.py +287 -0
  240. jarvis/jarvis_tools/methodology.py +5 -3
  241. jarvis/jarvis_tools/read_code.py +305 -1438
  242. jarvis/jarvis_tools/read_symbols.py +50 -17
  243. jarvis/jarvis_tools/read_webpage.py +19 -18
  244. jarvis/jarvis_tools/registry.py +435 -156
  245. jarvis/jarvis_tools/retrieve_memory.py +16 -11
  246. jarvis/jarvis_tools/save_memory.py +8 -6
  247. jarvis/jarvis_tools/search_web.py +31 -31
  248. jarvis/jarvis_tools/sub_agent.py +32 -28
  249. jarvis/jarvis_tools/sub_code_agent.py +44 -60
  250. jarvis/jarvis_tools/task_list_manager.py +1811 -0
  251. jarvis/jarvis_tools/virtual_tty.py +29 -19
  252. jarvis/jarvis_utils/__init__.py +4 -0
  253. jarvis/jarvis_utils/builtin_replace_map.py +2 -1
  254. jarvis/jarvis_utils/clipboard.py +9 -8
  255. jarvis/jarvis_utils/collections.py +331 -0
  256. jarvis/jarvis_utils/config.py +699 -194
  257. jarvis/jarvis_utils/dialogue_recorder.py +294 -0
  258. jarvis/jarvis_utils/embedding.py +6 -3
  259. jarvis/jarvis_utils/file_processors.py +7 -1
  260. jarvis/jarvis_utils/fzf.py +9 -3
  261. jarvis/jarvis_utils/git_utils.py +71 -42
  262. jarvis/jarvis_utils/globals.py +116 -32
  263. jarvis/jarvis_utils/http.py +6 -2
  264. jarvis/jarvis_utils/input.py +318 -83
  265. jarvis/jarvis_utils/jsonnet_compat.py +119 -104
  266. jarvis/jarvis_utils/methodology.py +37 -28
  267. jarvis/jarvis_utils/output.py +201 -44
  268. jarvis/jarvis_utils/utils.py +986 -628
  269. {jarvis_ai_assistant-0.7.8.dist-info → jarvis_ai_assistant-1.0.2.dist-info}/METADATA +49 -33
  270. jarvis_ai_assistant-1.0.2.dist-info/RECORD +304 -0
  271. jarvis/jarvis_code_agent/code_analyzer/structured_code.py +0 -556
  272. jarvis/jarvis_tools/generate_new_tool.py +0 -205
  273. jarvis/jarvis_tools/lsp_client.py +0 -1552
  274. jarvis/jarvis_tools/rewrite_file.py +0 -105
  275. jarvis_ai_assistant-0.7.8.dist-info/RECORD +0 -218
  276. {jarvis_ai_assistant-0.7.8.dist-info → jarvis_ai_assistant-1.0.2.dist-info}/WHEEL +0 -0
  277. {jarvis_ai_assistant-0.7.8.dist-info → jarvis_ai_assistant-1.0.2.dist-info}/entry_points.txt +0 -0
  278. {jarvis_ai_assistant-0.7.8.dist-info → jarvis_ai_assistant-1.0.2.dist-info}/licenses/LICENSE +0 -0
  279. {jarvis_ai_assistant-0.7.8.dist-info → jarvis_ai_assistant-1.0.2.dist-info}/top_level.txt +0 -0
@@ -1,72 +1,337 @@
1
1
  # -*- coding: utf-8 -*-
2
- from jarvis.jarvis_utils.tag import ct, ot
2
+ from jarvis.jarvis_utils.tag import ct
3
+ from jarvis.jarvis_utils.tag import ot
3
4
 
4
5
  DEFAULT_SUMMARY_PROMPT = """<report>
5
- 请生成任务执行的简明总结报告,包括:
6
+ 请生成任务执行的上下文结构化总结报告,作为后续对话的"无关键信息缺失"上下文支撑:
6
7
 
7
8
  <content>
8
- 1. 任务目标:任务重述
9
- 2. 执行结果:成功/失败
10
- 3. 关键信息:执行过程中提取的重要信息
11
- 4. 重要发现:任何值得注意的发现
12
- 5. 无效方案总结:如果当前是在修复问题,请总结尝试过但无效的方案,避免后续重复尝试
13
- - 已尝试的方法及其失败原因
14
- - 排除的错误假设
15
- - 不可行的解决路径
16
- 6. 后续建议:如果有的话
9
+ #### 1. 目标层次结构(必须清晰区分)
10
+ - **整体目标**(顶层愿景):
11
+ - 格式:"[目标类型] 实现[具体成果],达到[量化指标]"
12
+ - 示例:"[架构升级] 完成用户认证系统重构,达到QPS≥1000,99.9%可用性"
13
+
14
+ - **阶段目标**(当前阶段交付):
15
+ - 格式:"阶段[序号]:[具体目标] → [验收标准]"
16
+ - 示例:"阶段1:数据库表设计完成 → user/auth表结构定义+索引优化方案"
17
+
18
+ #### 2. 任务状态矩阵(精确跟踪,严格验证)
19
+ **⚠️ 关键原则:必须基于实际执行结果和验证证据,禁止推测或假设任务已完成**
20
+
21
+ - **已完成**(✅):**仅包含已通过验证的交付成果**
22
+ - **验证标准**:必须同时满足以下条件才能标记为"已完成":
23
+ 1. 有明确的执行记录(如代码已提交、文件已创建、功能已测试)
24
+ 2. 有验证证据(如测试通过、代码审查通过、功能运行正常)
25
+ 3. 达到验收标准(如满足性能指标、通过所有测试用例)
26
+ 4. **代码开发任务额外要求**:
27
+ - ✅ **编译/构建必须通过**:代码必须能够成功编译/构建,无编译错误、无语法错误、无链接错误
28
+ - ✅ **功能必须验证**:功能必须经过实际运行验证,不能仅凭代码存在就认为完成
29
+ - ✅ **错误必须修复**:如果存在编译错误、运行时错误、测试失败,必须明确标记为"未完成"或"部分完成"
30
+ - ✅ **测试必须通过**:如果有测试用例,必须通过测试;如果没有测试,必须手动验证功能正常
31
+ - 格式:"[优先级] [交付物] - [验证方式] - [验证证据] - [编译/构建状态]"
32
+ - 示例:"P0 用户表结构设计 - 已通过代码审查 - 审查记录:PR#123已合并,测试用例test_user_table通过 - 编译通过,无错误"
33
+ - **禁止行为**:
34
+ - ❌ 不能仅因为"计划执行"或"开始执行"就标记为已完成
35
+ - ❌ 不能因为"看起来应该完成"就标记为已完成
36
+ - ❌ **不能因为"代码已编写"就标记为已完成**(必须验证编译和功能)
37
+ - ❌ **不能在有编译错误时标记为已完成**(编译错误 = 任务未完成)
38
+ - ❌ **不能在有运行时错误时标记为已完成**(运行时错误 = 任务未完成)
39
+ - ❌ **不能在有测试失败时标记为已完成**(测试失败 = 任务未完成)
40
+
41
+ - **进行中**(🔄):已开始但未完成的任务
42
+ - 格式:"[优先级] [任务描述] - [当前进度] - [剩余工作]"
43
+ - 示例:"P1 实现JWT认证接口 - 已完成接口定义,待实现token生成逻辑"
44
+
45
+ - **部分完成**(⚠️):已完成部分但未达到完整验收标准
46
+ - 格式:"[优先级] [任务描述] - [已完成部分] - [缺失部分] - [编译/构建状态] - [错误信息]"
47
+ - 示例:"P2 用户登录功能 - 已完成前端UI和后端接口 - 待补充错误处理和日志记录 - 编译通过但有运行时错误 - 错误:登录接口返回500错误"
48
+ - **代码开发场景特别注意**:
49
+ - 如果存在编译错误,必须标记为"部分完成",并明确说明编译错误
50
+ - 如果存在运行时错误,必须标记为"部分完成",并明确说明运行时错误
51
+ - 如果存在测试失败,必须标记为"部分完成",并明确说明失败的测试
52
+
53
+ - **待完成**(📋):尚未开始或等待前置依赖的任务
54
+ - 格式:"[优先级] [任务描述] - [前置依赖]"
55
+ - 示例:"P1 实现JWT认证接口 - 依赖:用户表完成"
56
+
57
+ #### 3. 关键信息导航系统(快速索引)
58
+ - **关键信息位置**(📍):使用记忆标签建立索引
59
+ - 项目长期记忆:关键架构决策、配置方案、业务规则
60
+ - 全局长期记忆:通用解决方案、最佳实践、技术标准
61
+ - 短期记忆:当前任务的临时数据、调试信息、中间结果
62
+
63
+ - **关键文件路径**(📁):建立项目核心文件映射
64
+ - 配置文件:`src/jarvis/config/` - 系统配置和参数
65
+ - 核心代码:`src/jarvis/jarvis_agent/` - 代理核心逻辑
66
+ - 工具定义:`src/jarvis/jarvis_tools/` - 可用工具集合
67
+ - 测试文件:`tests/` - 测试用例和验证脚本
68
+
69
+ #### 4. 执行结果与关键发现(必须经过验证,信息缺失时可标注)
70
+ - **执行结果**:成功/失败/部分完成(必须基于实际执行结果,禁止推测;如无法确定可标注"未验证")
71
+ - **成功**:必须提供验证证据(如测试通过、功能运行正常、错误已修复)
72
+ - **代码开发任务额外要求**:必须明确说明编译/构建状态(通过/失败),功能验证状态(已验证/未验证),测试状态(通过/失败)
73
+ - **失败**:必须说明失败原因和错误信息(包括编译错误、运行时错误、测试失败等)
74
+ - **部分完成**:必须明确说明已完成部分和未完成部分,以及未通过验证的具体项
75
+ - **代码开发任务额外要求**:必须明确说明编译/构建状态(通过/失败/有错误),具体的错误信息(编译错误、运行时错误、测试失败等)
76
+ - **关键信息**:执行过程中提取的重要技术/业务信息(必须提供信息来源和验证方式;如信息不可获取可标注"信息缺失")
77
+ - **重要发现**:任何经过验证的发现或意外收获(必须说明验证过程;如无发现可省略)
78
+ - **无效方案总结**:如果当前是在修复问题,总结经过验证无效的尝试方案
79
+ - 已验证无效的方法及其具体失败原因
80
+ - 经过验证排除的错误假设
81
+ - 已证实不可行的解决路径(如无验证机会可标注"未验证")
82
+
83
+ #### 5. 技术与业务上下文(经过验证,信息缺失时可标注)
84
+ - **技术栈与版本**:项目技术栈、关键依赖、版本信息(基于实际检测或配置文件验证;如无法获取可标注"未检测")
85
+ - **架构决策**:技术选型理由、权衡考虑、未来扩展性(基于实际代码或文档验证;如文档缺失可标注"基于代码推断")
86
+ - **配置参数**:系统配置、环境变量、关键设置(基于实际配置文件验证;如无配置访问权限可标注"配置未获取")
87
+ - **代码位置**:核心文件、配置位置、关键实现(提供精确的文件路径和范围;如无法精确定位可标注"大致位置")
88
+ - **调试信息**:错误信息、性能数据、测试结果(基于实际运行结果;如无法重现可标注"未复现")
89
+
90
+ #### 6. 用户偏好与约束(精确记录)
91
+ - **质量要求**:代码规范、测试覆盖率、文档标准
92
+ - **性能约束**:响应时间、并发量、资源限制
93
+ - **兼容性要求**:系统版本、浏览器支持、设备适配
94
+ - **禁忌项**:明确禁止的技术方案或实现方式
95
+ - **代码风格**:缩进、命名规范、注释要求、代码组织方式
96
+
97
+ #### 7. 后续行动建议
98
+ - **下一步**:具体可执行的行动项
99
+ - **优先级排序**:基于依赖关系的任务执行顺序
100
+ - **注意事项**:潜在风险和需要特别关注的技术点
17
101
  </content>
18
102
 
19
103
  <format>
20
- 请使用简洁的要点描述,突出重要信息。
104
+ 1. 语言风格:简洁、客观、专业,使用编程领域规范表述;
105
+ 2. 结构组织:按"核心目标→已确认事实→决策与共识→技术细节→任务进展→待办事项→用户约束"的逻辑组织;
106
+ 3. 呈现形式:分点列出,关键技术内容用`代码块`/加粗标注,待办事项用"【优先级】+ 内容"明确;
107
+ 4. **任务状态呈现要求**:
108
+ - 必须严格区分"已完成"、"进行中"、"部分完成"、"待完成"四种状态
109
+ - "已完成"任务必须提供验证证据,不能仅凭推测
110
+ - **代码开发任务特别要求**:
111
+ - "已完成"任务必须明确说明编译/构建状态(通过/失败),功能验证状态(已验证/未验证)
112
+ - 如果存在编译错误,必须标记为"部分完成"或"进行中",不能标记为"已完成"
113
+ - 如果存在运行时错误,必须标记为"部分完成"或"进行中",不能标记为"已完成"
114
+ - 如果存在测试失败,必须标记为"部分完成"或"进行中",不能标记为"已完成"
115
+ - 如果任务未完成,必须如实标记为"进行中"或"部分完成",不能错误标记为"已完成"
116
+ 5. 长度限制:严格控制在500词以内,优先压缩冗余,不压缩必保信息。
21
117
  </format>
22
- </report>
23
- """
118
+ </report>"""
24
119
 
25
120
  SUMMARY_REQUEST_PROMPT = """<summary_request>
26
121
  <objective>
27
- 请对当前对话历史进行精准总结,核心目标是为后续对话提供“无关键信息缺失”的上下文支撑:既要提炼核心逻辑,又要完整保留影响后续决策/操作的关键细节,确保后续对话无需回溯原始历史即可顺畅推进。
122
+ 请对当前对话历史进行精准总结,核心目标是为后续对话提供"无关键信息缺失"的上下文支撑:既要提炼核心逻辑,又要完整保留影响后续决策/操作的关键细节,确保后续对话无需回溯原始历史即可顺畅推进。
123
+
124
+ **特别针对代码开发任务**:必须完整保留代码变更的上下文、原因、影响范围、错误信息、调试过程、测试结果等关键信息,避免后续大模型因信息缺失而偏离方向。
28
125
  </objective>
29
126
 
30
- <guidelines>
31
- #### 一、必保保留的关键信息(按优先级排序,不可遗漏)
32
- 1. 核心目标与边界:用户最终要完成的任务(含量化指标,如“3天内实现接口”“QPS≥1000”)、明确排除的范围(如“暂不支持批量上传”);
33
- 2. 已确认的关键事实:技术栈(含版本,如“Python 3.9 + Django 4.2”)、环境配置(如“测试环境地址:http://test.example.com”)、数据/参数(如“数据库表名:user_info,分页大小:20条”);
34
- 3. 重要决策与共识:双方确认的方案(如“选用JWT做身份验证”)、否定的方案(如“排除Redis集群,用单机缓存”)、决策依据(如“因团队无K8s运维经验,选择Docker Compose”);
35
- 4. 技术细节(精准保留,不简化):
36
- - 可直接复用的内容:完整命令(如“pip install requests==2.31.0”)、代码片段(关键逻辑,用`代码块`标注)、文件路径(如“/data/logs/app.log”)、接口地址/参数(如“POST /api/login,必填字段:phone/code”);
37
- - 报错与调试信息:错误类型(如“IndexError”)、报错关键词(如“list index out of range”)、已尝试的有效/无效操作(如“修改索引为[-1]无效,更换httpx库报错消失”);
38
- 5. 任务进展与待办:
39
- - 已完成步骤(如“已完成数据库表设计,已编写登录接口草稿”);
40
- - 待解决问题(明确优先级,如“高:跨域问题未处理;中:异常捕获逻辑待补充”);
41
- - 待确认/待补充信息(明确责任人与需求,如“用户需提供:测试数据库账号;助手需补充:接口文档示例”);
42
- 6. 用户偏好与约束:明确要求(如“代码需加注释”“输出JSON格式”)、限制条件(如“服务器内存4GB”“需兼容Windows 10”)、禁忌项(如“不可使用第三方ORM”)。
43
-
44
- #### 二、可省略的冗余内容(无需保留)
45
- - 寒暄与无关闲聊(如“您好”“谢谢”“今天天气不错”);
127
+ #### 1. 目标层次结构(必须清晰区分)
128
+ - **整体目标**(顶层愿景):
129
+ - 格式:"[目标类型] 实现[具体成果],达到[量化指标]"
130
+ - 示例:"[架构升级] 完成用户认证系统重构,达到QPS≥1000,99.9%可用性"
131
+ - 必须包含:业务意义、成功标准
132
+
133
+ - **阶段目标**(当前阶段交付):
134
+ - 格式:"阶段[序号]:[具体目标] [验收标准]"
135
+ - 示例:"阶段1:数据库表设计完成 → user/auth表结构定义+索引优化方案"
136
+ - 必须包含:当前阶段边界、可验证的交付物
137
+
138
+ #### 2. 任务状态矩阵(精确跟踪,严格验证)
139
+ **⚠️ 关键原则:必须基于实际执行结果和验证证据,禁止推测或假设任务已完成**
140
+
141
+ - **已完成**(✅):**仅包含已通过验证的交付成果**
142
+ - **验证标准**:必须同时满足以下条件才能标记为"已完成":
143
+ 1. 有明确的执行记录(如代码已提交、文件已创建、功能已测试)
144
+ 2. 有验证证据(如测试通过、代码审查通过、功能运行正常、错误已修复)
145
+ 3. 达到验收标准(如满足性能指标、通过所有测试用例、满足用户需求)
146
+ 4. **代码开发任务额外要求(必须全部满足)**:
147
+ - ✅ **编译/构建必须通过**:代码必须能够成功编译/构建,无编译错误、无语法错误、无链接错误、无类型错误
148
+ - ✅ **功能必须验证**:功能必须经过实际运行验证,不能仅凭代码存在就认为完成
149
+ - ✅ **错误必须修复**:如果存在编译错误、运行时错误、测试失败,必须明确标记为"未完成"或"部分完成",不能标记为"已完成"
150
+ - ✅ **测试必须通过**:如果有测试用例,必须通过测试;如果没有测试,必须手动验证功能正常
151
+ - ✅ **代码质量检查**:代码必须符合项目规范,无明显的代码质量问题
152
+ - 格式:"[优先级] [交付物] - [验证方式] - [验证证据] - [编译/构建状态] - [功能验证状态]"
153
+ - 示例:"P0 用户表结构设计 - 已通过代码审查 - 审查记录:PR#123已合并,测试用例test_user_table通过 - 编译通过,无错误 - 功能已验证,运行正常"
154
+ - **代码开发场景**:必须包含修改的文件路径、函数名、变更类型(新增/修改/删除)、编译状态、测试结果、功能验证结果
155
+ - **禁止行为(严格执行)**:
156
+ - ❌ 不能仅因为"计划执行"或"开始执行"就标记为已完成
157
+ - ❌ 不能因为"看起来应该完成"或"理论上应该完成"就标记为已完成
158
+ - ❌ **不能因为"代码已编写"就标记为已完成**(必须验证编译和功能)
159
+ - ❌ **不能在有编译错误时标记为已完成**(编译错误 = 任务未完成,必须标记为"部分完成"或"进行中")
160
+ - ❌ **不能在有运行时错误时标记为已完成**(运行时错误 = 任务未完成)
161
+ - ❌ **不能在有测试失败时标记为已完成**(测试失败 = 任务未完成)
162
+ - ❌ **不能因为"功能已实现"但仍有错误就标记为已完成**(有错误 = 未完成)
163
+ - ✅ 必须提供具体的验证证据(编译结果、测试结果、运行日志、审查记录等)
164
+
165
+ - **进行中**(🔄):已开始但未完成的任务
166
+ - 格式:"[优先级] [任务描述] - [当前进度] - [剩余工作]"
167
+ - 示例:"P1 实现JWT认证接口 - 已完成接口定义和token生成,待实现token验证逻辑"
168
+ - **代码开发场景**:必须说明已修改的文件、已实现的函数、待实现的函数
169
+
170
+ - **部分完成**(⚠️):已完成部分但未达到完整验收标准
171
+ - 格式:"[优先级] [任务描述] - [已完成部分] - [缺失部分] - [编译/构建状态] - [错误信息] - [未通过验证项]"
172
+ - 示例:"P2 用户登录功能 - 已完成前端UI和后端接口 - 待补充错误处理和日志记录 - 编译通过但有运行时错误 - 错误:登录接口返回500错误 - 测试用例test_error_handling未通过"
173
+ - **代码开发场景**:必须明确说明:
174
+ - 哪些功能已实现
175
+ - 编译/构建状态(通过/失败/有错误)
176
+ - 具体的错误信息(编译错误、运行时错误、测试失败等)
177
+ - 哪些测试未通过
178
+ - 哪些需求未满足
179
+ - **特别注意**:
180
+ - 如果存在编译错误,必须标记为"部分完成",不能标记为"已完成"
181
+ - 如果存在运行时错误,必须标记为"部分完成",不能标记为"已完成"
182
+ - 如果存在测试失败,必须标记为"部分完成",不能标记为"已完成"
183
+
184
+ - **待完成**(📋):尚未开始或等待前置依赖的任务
185
+ - 格式:"[优先级] [任务描述] - [前置依赖]"
186
+ - 示例:"P1 实现JWT认证接口 - 依赖:用户表完成"
187
+ - 必须包含:任务边界、依赖关系
188
+ - **代码开发场景**:必须包含待修改的文件、函数、具体实现要求
189
+
190
+ #### 3. 关键信息导航系统(快速索引)
191
+ - **关键信息位置**(📍):使用记忆标签建立索引
192
+ - 项目长期记忆:关键架构决策、配置方案、业务规则
193
+ - 全局长期记忆:通用解决方案、最佳实践、技术标准
194
+ - 短期记忆:当前任务的临时数据、调试信息、中间结果
195
+
196
+ - **关键文件路径**(📁):建立项目核心文件映射
197
+ - 配置文件:`src/jarvis/config/` - 系统配置和参数
198
+ - 核心代码:`src/jarvis/jarvis_agent/` - 代理核心逻辑
199
+ - 工具定义:`src/jarvis/jarvis_tools/` - 可用工具集合
200
+ - 测试文件:`tests/` - 测试用例和验证脚本
201
+ - 具体文件:提供精确到文件的路径和关键函数位置
202
+ - **代码开发场景**:必须列出所有已修改/待修改的文件完整路径,标注关键函数/类的行号范围
203
+
204
+ #### 4. 代码开发专项信息(必保保留,防止后续偏离)
205
+ - **代码变更详情**(🔧):
206
+ - 已修改文件清单:每个文件的完整路径、修改类型(新增/修改/删除/重构)- 基于实际验证;如无法获取完整信息可标注"部分信息缺失"
207
+ - 关键变更点:函数/类名、修改位置、变更原因 - 基于实际代码;如代码不可访问可标注"基于可用信息"
208
+ - 代码变更上下文:基于实际验证的变更原因、解决的问题、替代方案验证结果
209
+ - 影响范围分析:基于可用信息的影响评估;如无法完整分析可标注"影响范围待验证"
210
+ - 依赖关系:基于实际项目验证的修改依赖;如无完整依赖信息可标注"依赖关系部分未知"
211
+
212
+ - **错误与调试信息**(🐛):
213
+ - **编译错误**:基于实际编译结果的编译错误信息(错误类型、错误位置、错误原因)、修复状态;如果有编译错误,任务必须标记为"部分完成"或"进行中",不能标记为"已完成"
214
+ - 遇到的错误:基于实际运行记录的错误信息(堆栈、行号、错误类型)、经过验证的复现步骤;如错误无法重现可标注"错误信息待验证"
215
+ - 调试过程:经过验证的解决方案尝试、具体失败原因、基于实际测试的解决方案;如调试受限可标注"调试过程基于现有信息"
216
+ - 性能问题:基于可用测试的性能瓶颈、优化措施、效果评估;如无完整测试可标注"性能数据待补充"
217
+ - 边界情况:基于测试验证的边界条件、异常处理、测试用例;如测试不完整可标注"边界情况部分验证"
218
+
219
+ - **测试与验证**(✅):
220
+ - **编译/构建验证**:基于实际编译/构建结果的验证状态(通过/失败/有错误),具体的编译错误信息(如果有)
221
+ - 测试结果:基于实际运行的单元测试、集成测试、手动测试结果
222
+ - 验证方式:具体如何验证功能正确性、性能指标、兼容性的详细步骤
223
+ - 未通过的测试:实际失败的测试、经过分析的具体失败原因、修复状态
224
+ - 测试覆盖:基于实际测试工具验证的代码覆盖情况
225
+ - **功能验证**:功能是否经过实际运行验证,运行是否正常,是否有运行时错误
226
+
227
+ - **技术决策与权衡**(⚖️):
228
+ - 技术选型:基于实际评估选择的方案、经过验证其他方案不可行的具体原因
229
+ - 设计决策:基于实际代码分析的架构设计、接口设计、数据结构设计理由
230
+ - 权衡考虑:基于实际测试数据的性能vs可维护性、简单vs扩展性等权衡分析
231
+ - 已知限制:经过实际验证的当前方案局限性、基于实际分析的未来改进方向
232
+
233
+ - **未完成工作与待办**(📋):
234
+ - 部分完成的功能:哪些功能已实现但未完成、缺少什么
235
+ - 待修复的问题:已知bug、技术债务、需要重构的代码
236
+ - 待补充的内容:缺少的测试、文档、错误处理、日志
237
+ - 后续优化方向:性能优化、代码重构、功能扩展计划
238
+
239
+ #### 5. 上下文完整性检查清单(总结前自检 - 所有结论必须经过验证)
240
+ - [ ] 整体目标明确且可量化(包含基于实际需求验证的指标)
241
+ - [ ] 阶段目标递进且可验证(每个阶段有基于实际结果验证的验收标准)
242
+ - [ ] **已完成任务验证检查(关键)**:
243
+ - [ ] 每个"已完成"任务都有明确的执行记录(代码提交、文件创建、功能测试等)
244
+ - [ ] 每个"已完成"任务都有验证证据(测试通过、审查通过、运行正常等)
245
+ - [ ] 每个"已完成"任务都达到验收标准(满足性能指标、通过测试用例等)
246
+ - [ ] **代码开发任务额外检查**:
247
+ - [ ] 编译/构建必须通过(无编译错误、无语法错误、无链接错误)
248
+ - [ ] 功能必须经过实际运行验证(不能仅凭代码存在就认为完成)
249
+ - [ ] 所有测试必须通过(如果有测试用例)
250
+ - [ ] 无运行时错误(功能必须能够正常运行)
251
+ - [ ] 没有将"进行中"或"部分完成"的任务错误标记为"已完成"
252
+ - [ ] 没有基于推测或假设标记任务为"已完成"
253
+ - [ ] **没有在有编译错误时标记为"已完成"**
254
+ - [ ] **没有在有运行时错误时标记为"已完成"**
255
+ - [ ] **没有在有测试失败时标记为"已完成"**
256
+ - [ ] 任务状态分类准确(已完成/进行中/部分完成/待完成),每个任务都有明确的状态
257
+ - [ ] 待完成任务有基于实际分析的优先级和依赖关系(任务网络清晰且经过验证)
258
+ - [ ] 关键信息可通过经过验证的记忆标签快速定位(索引系统有效性已验证)
259
+ - [ ] 关键文件路径准确且最新(经过实际文件系统验证)
260
+ - [ ] 技术约束和边界条件已基于实际环境验证明确(兼容性和限制经过验证)
261
+ - [ ] 后续行动建议具体可操作且基于实际可行性验证(下一步明确指令经过验证)
262
+ - [ ] **代码开发专项检查(所有结论必须经过代码验证)**:
263
+ - [ ] 所有已修改文件的完整路径已基于实际git状态验证列出
264
+ - [ ] 关键函数/类的变更原因和上下文已基于实际代码验证说明
265
+ - [ ] **编译/构建状态已验证**:代码必须能够成功编译/构建,无编译错误
266
+ - [ ] **功能验证状态已确认**:功能必须经过实际运行验证,不能仅凭代码存在就认为完成
267
+ - [ ] 遇到的错误和基于实际调试的过程已记录(包括编译错误、运行时错误、测试失败)
268
+ - [ ] 测试结果和具体验证方式已基于实际运行明确
269
+ - [ ] 技术决策的理由和权衡已基于实际分析验证保留
270
+ - [ ] 未完成工作和待办事项已基于实际项目状态验证列出(包括编译错误、运行时错误、测试失败)
271
+ - [ ] 代码变更的影响范围已基于实际依赖分析验证
272
+ - [ ] **错误状态明确**:如果存在编译错误、运行时错误或测试失败,必须明确标记为"部分完成"或"进行中",不能标记为"已完成"
273
+
274
+ #### 6. 核心技术与业务信息(必保保留且经过验证)
275
+ 1. **技术栈与版本**:经过实际检测验证的Python版本、框架版本、关键依赖
276
+ 2. **架构决策**:基于实际代码验证的技术选型理由、权衡考虑、未来扩展性
277
+ 3. **配置参数**:基于实际配置文件验证的数据库配置、API密钥、环境变量
278
+ 4. **代码位置**:经过实际代码验证的核心函数、配置文件、关键算法实现(**必须包含经过验证的精确文件路径和函数签名**)
279
+ 5. **调试信息**:基于实际运行验证的错误日志、基于性能测试的性能数据、基于实际测试的测试结果(**必须包含经过验证的完整错误堆栈和调试过程**)
280
+ 6. **接口定义**:经过代码验证的API端点、参数格式、响应结构(**必须包含经过验证的函数签名、参数类型、返回值类型**)
281
+ 7. **数据模型**:基于实际数据库或ORM验证的数据库表结构、字段定义、关系映射
282
+ 8. **代码变更历史**:基于实际git log验证的diff摘要、经过验证的关键变更点、可验证的回滚点(**如果系统提供了git diff,必须整合到经过验证的总结中**)
283
+
284
+ #### 7. 用户偏好与约束(精确记录)
285
+ - **质量要求**:代码规范、测试覆盖率、文档标准
286
+ - **性能约束**:响应时间、并发量、资源限制
287
+ - **兼容性要求**:系统版本、浏览器支持、设备适配
288
+ - **禁忌项**:明确禁止的技术方案或实现方式(**必须明确记录,避免后续偏离**)
289
+ - **代码风格**:缩进、命名规范、注释要求、代码组织方式
290
+
291
+ #### 8. 可省略的冗余内容(无需保留)
292
+ - 寒暄与无关闲聊(如"您好""谢谢""今天天气不错");
46
293
  - 重复表述(用户多次强调的同一需求,仅保留1次核心表述);
47
- - 临时试错/未落地的想法(如“我先试试这个思路”“可能用XX方案”,未确认的不保留);
48
- - 与任务无关的细节(如“用户提及的其他项目经验”“无关的技术科普”)。
294
+ - **注意**:临时试错/未落地的想法如果包含重要信息(如"尝试了XX方案但失败,原因是YY"),必须保留失败原因,不能省略;
295
+ - 与任务无关的细节(如"用户提及的其他项目经验""无关的技术科普")。
296
+ - **代码开发场景特别注意**:即使某个方案被放弃,如果放弃原因对后续决策有影响,必须保留。
297
+
49
298
  </guidelines>
50
299
 
51
300
  <format>
52
- 1. 语言风格:简洁、客观、专业,使用编程领域规范表述(如“非阻塞IO”而非“不等待的输入输出”);
53
- 2. 结构组织:按“核心目标→已确认事实→决策与共识→技术细节→任务进展→待办事项→用户约束”的逻辑组织(替代“时间顺序”,更贴合后续对话需求);
54
- 3. 呈现形式:分点列出,关键技术内容用`代码块`/加粗标注,待办事项用“【优先级】+ 内容 + 责任人”明确(如“【高】补充跨域配置 - 助手”);
55
- 4. 长度限制:严格控制在500词以内,优先压缩冗余,不压缩必保信息(若必保信息较多,可适当放宽至600词)。
301
+ 1. 语言风格:简洁、客观、专业,使用编程领域规范表述(如"非阻塞IO"而非"不等待的输入输出");
302
+ 2. 结构组织:按"核心目标→已确认事实→决策与共识→技术细节→代码变更详情→任务进展→待办事项→用户约束"的逻辑组织(替代"时间顺序",更贴合后续对话需求);
303
+ 3. 呈现形式:分点列出,关键技术内容用`代码块`/加粗标注,待办事项用"【优先级】+ 内容"明确(如"【高】补充跨域配置");
304
+ 4. **任务状态呈现要求(关键)**:
305
+ - 必须严格区分"已完成"、"进行中"、"部分完成"、"待完成"四种状态
306
+ - "已完成"任务必须提供验证证据(测试结果、运行日志、审查记录等),不能仅凭推测或假设
307
+ - **代码开发任务特别要求(严格执行)**:
308
+ - "已完成"任务必须明确说明编译/构建状态(通过/失败),功能验证状态(已验证/未验证),测试状态(通过/失败)
309
+ - **如果存在编译错误,必须标记为"部分完成"或"进行中",绝对不能标记为"已完成"**
310
+ - **如果存在运行时错误,必须标记为"部分完成"或"进行中",绝对不能标记为"已完成"**
311
+ - **如果存在测试失败,必须标记为"部分完成"或"进行中",绝对不能标记为"已完成"**
312
+ - **不能因为"代码已编写"就标记为"已完成"**(必须验证编译和功能)
313
+ - 如果任务未完成,必须如实标记为"进行中"或"部分完成",不能错误标记为"已完成"
314
+ - 对于"部分完成"的任务,必须明确说明已完成部分和未完成部分,以及未通过验证的具体项(包括编译错误、运行时错误、测试失败等)
315
+ 5. **代码变更呈现**:使用结构化格式,例如:
316
+ - 文件:`src/xxx.py`(修改)
317
+ - 函数:`function_name()`(第10-25行,新增)
318
+ - 变更原因:解决XXX问题,因为YYY原因
319
+ - 影响范围:影响`module_a.py`的`func_b()`函数
320
+ - 验证状态:已通过测试/待测试/测试失败(必须如实标注)
321
+ 6. 长度限制:严格控制在500词以内,优先压缩冗余,不压缩必保信息(**代码开发任务信息较多时,可适当放宽至800词,确保关键信息不丢失**)。
56
322
  </format>
57
323
  </summary_request>
58
324
  """
59
325
 
60
326
 
61
327
  def get_task_analysis_prompt(
62
- has_save_memory: bool = False,
63
- has_generate_new_tool: bool = False
328
+ has_save_memory: bool = False, has_generate_new_tool: bool = False
64
329
  ) -> str:
65
330
  """根据配置返回任务分析提示词
66
-
331
+
67
332
  参数:
68
333
  has_save_memory: 是否有 save_memory 工具(工具可用性)
69
- has_generate_new_tool: 是否有 generate_new_tool 工具
334
+ has_generate_new_tool: 是否有 meta_agent 工具(原 generate_new_tool,自举式工具生成器)
70
335
  """
71
336
  # 第一步:记忆保存部分
72
337
  if not has_save_memory:
@@ -83,25 +348,26 @@ def get_task_analysis_prompt(
83
348
  3. 如果有价值,使用 save_memory 工具保存有价值的信息:
84
349
  - project_long_term: 保存与当前项目相关的长期信息(如项目配置、架构决策、开发规范等)
85
350
  - global_long_term: 保存通用的信息、用户偏好、知识或方法(如技术知识、最佳实践、用户习惯等)"""
86
-
351
+
87
352
  # 第二步:工具/方法论分析部分
88
353
  if has_generate_new_tool:
89
354
  solution_step = """第二步:分析任务解决方案
90
355
  1. 检查现有工具或方法论是否已经可以完成该任务,如果可以,直接说明即可,无需生成新内容
91
356
  2. 如果现有工具/方法论不足,评估当前任务是否可以通过编写新工具来自动化解决
92
- 3. 如果可以通过工具解决,请使用 generate_new_tool 工具创建新工具:
93
- - 使用 generate_new_tool 工具,传入 tool_name 和 tool_code 参数
94
- - tool_code 应包含完整的工具类定义,遵循工具代码要求
357
+ 3. 如果可以通过工具解决,请使用 meta_agent 工具创建或改进工具:
358
+ - 使用 meta_agent 工具,传入 tool_name 和 function_description 参数
359
+ - 工具将利用 CodeAgent/Agent 智能分析需求,自动生成或改进具备自举和自进化能力的完整工具代码
360
+ - 生成/改进后的工具将自动集成到 Jarvis 生态系统,支持编排 Agent 和 CodeAgent 处理复杂任务
95
361
  4. 如果无法通过编写通用工具完成,评估当前的执行流程是否可以总结为通用方法论
96
362
  5. 如果以上都不可行,给出详细理由"""
97
363
  else:
98
364
  solution_step = """第二步:分析任务解决方案
99
365
  1. 检查现有工具或方法论是否已经可以完成该任务,如果可以,直接说明即可,无需生成新内容
100
366
  2. 如果现有工具/方法论不足,评估当前任务是否可以通过编写新工具来自动化解决
101
- 3. 如果可以通过工具解决,请设计并提供工具代码(注意:当前环境不支持 generate_new_tool 工具,需要手动创建工具文件)
367
+ 3. 如果可以通过工具解决,请优先使用 meta_agent 工具创建/改进新工具(如果环境支持),否则手动提供工具代码
102
368
  4. 如果无法通过编写通用工具完成,评估当前的执行流程是否可以总结为通用方法论
103
369
  5. 如果以上都不可行,给出详细理由"""
104
-
370
+
105
371
  # 输出要求部分
106
372
  if has_generate_new_tool:
107
373
  output_requirements = f"""<output_requirements>
@@ -114,44 +380,10 @@ def get_task_analysis_prompt(
114
380
  {ot("TOOL_CALL")}
115
381
  {{
116
382
  "want": "创建新工具来解决XXX问题",
117
- "name": "generate_new_tool",
383
+ "name": "meta_agent",
118
384
  "arguments": {{
119
385
  "tool_name": "工具名称",
120
- "tool_code": `# -*- coding: utf-8 -*-
121
- from typing import Dict, Any
122
-
123
- class 工具名称:
124
- name = "工具名称"
125
- description = "Tool description"
126
- parameters = {{
127
- "type": "object",
128
- "properties": {{
129
- # 参数定义
130
- }},
131
- "required": []
132
- }}
133
- @staticmethod
134
- def check() -> bool:
135
- return True
136
- def execute(self, args: Dict[str, Any]) -> Dict[str, Any]:
137
- try:
138
- # 使用print显示执行过程
139
- print("ℹ️ 开始执行操作...")
140
- # 实现逻辑
141
- # ...
142
- print("✅ 操作已完成")
143
- return {{
144
- "success": True,
145
- "stdout": "结果输出",
146
- "stderr": ""
147
- }}
148
- except Exception as e:
149
- print(f"❌ 操作失败: {{str(e)}}")
150
- return {{
151
- "success": False,
152
- "stdout": "",
153
- "stderr": f"操作失败: {{str(e)}}"
154
- }}`
386
+ "function_description": "工具的详细功能描述,说明工具要解决的具体问题和预期行为"
155
387
  }}
156
388
  }}
157
389
  {ct("TOOL_CALL")}
@@ -186,7 +418,7 @@ class 工具名称:
186
418
  可用的工具/方法论:[列出工具名称或方法论名称]
187
419
  使用方法:[简要说明如何使用]
188
420
  2. 工具创建(如果需要创建新工具):
189
- 注意:当前环境不支持 generate_new_tool 工具。如果需要创建新工具,请提供完整的工具代码和说明,用户需要手动创建工具文件。
421
+ 注意:如果环境支持,请使用 meta_agent 工具创建/改进新工具;如果不支持,请提供完整的工具代码和说明,用户需要手动创建工具文件。
190
422
  3. 方法论创建(如果需要创建新方法论):
191
423
  {ot("TOOL_CALL")}
192
424
  {{
@@ -208,7 +440,7 @@ class 工具名称:
208
440
  注意:如果 content 参数包含多行内容,推荐使用 ||| 或 ``` 分隔符包裹,直接换行无需转义,支持保留缩进。
209
441
  如果以上三种情况都不适用,则直接输出原因分析,不要使用工具调用格式。
210
442
  </output_requirements>"""
211
-
443
+
212
444
  return f"""<task_analysis>
213
445
  <request>
214
446
  当前任务已结束,请按以下步骤分析该任务:
@@ -1,4 +1,7 @@
1
- from typing import Any, Protocol, Tuple, runtime_checkable
1
+ from typing import Any
2
+ from typing import Protocol
3
+ from typing import Tuple
4
+ from typing import runtime_checkable
2
5
 
3
6
 
4
7
  @runtime_checkable
@@ -26,4 +29,4 @@ class OutputHandlerProtocol(Protocol):
26
29
  返回:
27
30
  一个元组,包含一个布尔值(是否返回)和结果。
28
31
  """
29
- ...
32
+ ...