jarvis-ai-assistant 0.3.22__tar.gz → 0.3.24__tar.gz

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 (136) hide show
  1. {jarvis_ai_assistant-0.3.22/src/jarvis_ai_assistant.egg-info → jarvis_ai_assistant-0.3.24}/PKG-INFO +10 -3
  2. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/README.md +9 -2
  3. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/pyproject.toml +1 -20
  4. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/setup.py +1 -1
  5. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/__init__.py +1 -1
  6. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_agent/__init__.py +96 -13
  7. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_agent/agent_manager.py +0 -3
  8. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_agent/jarvis.py +2 -17
  9. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_agent/main.py +2 -8
  10. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_code_agent/code_agent.py +7 -14
  11. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_code_analysis/code_review.py +12 -40
  12. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_data/config_schema.json +4 -18
  13. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_git_utils/git_commiter.py +7 -22
  14. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_mcp/sse_mcp_client.py +4 -3
  15. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_mcp/streamable_mcp_client.py +9 -8
  16. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_memory_organizer/memory_organizer.py +46 -53
  17. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_methodology/main.py +4 -2
  18. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_platform/base.py +49 -12
  19. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_platform/kimi.py +16 -22
  20. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_platform/registry.py +7 -14
  21. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_platform/tongyi.py +21 -32
  22. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_platform/yuanbao.py +15 -17
  23. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_platform_manager/main.py +14 -51
  24. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_rag/cli.py +14 -13
  25. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_rag/embedding_manager.py +18 -6
  26. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_rag/llm_interface.py +0 -2
  27. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_rag/rag_pipeline.py +26 -15
  28. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_rag/retriever.py +33 -25
  29. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_tools/cli/main.py +22 -15
  30. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_tools/edit_file.py +1 -3
  31. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_tools/file_analyzer.py +12 -6
  32. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_tools/registry.py +16 -11
  33. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_tools/sub_agent.py +1 -1
  34. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_tools/sub_code_agent.py +1 -4
  35. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_utils/config.py +14 -10
  36. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_utils/input.py +6 -3
  37. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_utils/methodology.py +11 -6
  38. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_utils/utils.py +30 -13
  39. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24/src/jarvis_ai_assistant.egg-info}/PKG-INFO +10 -3
  40. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/LICENSE +0 -0
  41. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/MANIFEST.in +0 -0
  42. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/setup.cfg +0 -0
  43. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_agent/builtin_input_handler.py +0 -0
  44. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_agent/config_editor.py +0 -0
  45. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_agent/edit_file_handler.py +0 -0
  46. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_agent/file_methodology_manager.py +0 -0
  47. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_agent/memory_manager.py +0 -0
  48. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_agent/methodology_share_manager.py +0 -0
  49. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_agent/output_handler.py +0 -0
  50. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_agent/prompt_builder.py +0 -0
  51. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_agent/prompts.py +0 -0
  52. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_agent/protocols.py +0 -0
  53. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_agent/session_manager.py +0 -0
  54. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_agent/share_manager.py +0 -0
  55. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_agent/shell_input_handler.py +0 -0
  56. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_agent/task_analyzer.py +0 -0
  57. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_agent/task_manager.py +0 -0
  58. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_agent/tool_executor.py +0 -0
  59. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_agent/tool_share_manager.py +0 -0
  60. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_code_agent/__init__.py +0 -0
  61. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_code_agent/lint.py +0 -0
  62. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_code_analysis/checklists/__init__.py +0 -0
  63. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_code_analysis/checklists/c_cpp.py +0 -0
  64. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_code_analysis/checklists/csharp.py +0 -0
  65. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_code_analysis/checklists/data_format.py +0 -0
  66. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_code_analysis/checklists/devops.py +0 -0
  67. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_code_analysis/checklists/docs.py +0 -0
  68. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_code_analysis/checklists/go.py +0 -0
  69. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_code_analysis/checklists/infrastructure.py +0 -0
  70. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_code_analysis/checklists/java.py +0 -0
  71. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_code_analysis/checklists/javascript.py +0 -0
  72. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_code_analysis/checklists/kotlin.py +0 -0
  73. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_code_analysis/checklists/loader.py +0 -0
  74. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_code_analysis/checklists/php.py +0 -0
  75. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_code_analysis/checklists/python.py +0 -0
  76. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_code_analysis/checklists/ruby.py +0 -0
  77. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_code_analysis/checklists/rust.py +0 -0
  78. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_code_analysis/checklists/shell.py +0 -0
  79. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_code_analysis/checklists/sql.py +0 -0
  80. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_code_analysis/checklists/swift.py +0 -0
  81. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_code_analysis/checklists/web.py +0 -0
  82. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_data/tiktoken/9b5ad71b2ce5302211f9c61530b329a4922fc6a4 +0 -0
  83. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_git_squash/__init__.py +0 -0
  84. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_git_squash/main.py +0 -0
  85. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_mcp/__init__.py +0 -0
  86. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_mcp/stdio_mcp_client.py +0 -0
  87. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_memory_organizer/__init__.py +0 -0
  88. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_multi_agent/__init__.py +0 -0
  89. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_multi_agent/main.py +0 -0
  90. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_platform/__init__.py +0 -0
  91. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_platform/ai8.py +0 -0
  92. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_platform/human.py +0 -0
  93. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_platform/openai.py +0 -0
  94. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_platform_manager/__init__.py +0 -0
  95. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_platform_manager/service.py +0 -0
  96. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_rag/__init__.py +0 -0
  97. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_rag/cache.py +0 -0
  98. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_rag/query_rewriter.py +0 -0
  99. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_rag/reranker.py +0 -0
  100. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_smart_shell/__init__.py +0 -0
  101. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_smart_shell/main.py +0 -0
  102. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_stats/__init__.py +0 -0
  103. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_stats/cli.py +0 -0
  104. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_stats/stats.py +0 -0
  105. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_stats/storage.py +0 -0
  106. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_stats/visualizer.py +0 -0
  107. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_tools/__init__.py +0 -0
  108. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_tools/ask_user.py +0 -0
  109. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_tools/base.py +0 -0
  110. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_tools/clear_memory.py +0 -0
  111. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_tools/cli/__init__.py +0 -0
  112. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_tools/execute_script.py +0 -0
  113. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_tools/generate_new_tool.py +0 -0
  114. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_tools/methodology.py +0 -0
  115. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_tools/read_code.py +0 -0
  116. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_tools/read_webpage.py +0 -0
  117. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_tools/retrieve_memory.py +0 -0
  118. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_tools/rewrite_file.py +0 -0
  119. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_tools/save_memory.py +0 -0
  120. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_tools/search_web.py +0 -0
  121. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_tools/virtual_tty.py +0 -0
  122. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_utils/__init__.py +0 -0
  123. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_utils/builtin_replace_map.py +0 -0
  124. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_utils/clipboard.py +0 -0
  125. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_utils/embedding.py +0 -0
  126. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_utils/file_processors.py +0 -0
  127. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_utils/git_utils.py +0 -0
  128. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_utils/globals.py +0 -0
  129. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_utils/http.py +0 -0
  130. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_utils/output.py +0 -0
  131. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_utils/tag.py +0 -0
  132. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis_ai_assistant.egg-info/SOURCES.txt +0 -0
  133. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis_ai_assistant.egg-info/dependency_links.txt +0 -0
  134. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis_ai_assistant.egg-info/entry_points.txt +0 -0
  135. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis_ai_assistant.egg-info/requires.txt +0 -0
  136. {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis_ai_assistant.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jarvis-ai-assistant
3
- Version: 0.3.22
3
+ Version: 0.3.24
4
4
  Summary: Jarvis: An AI assistant that uses tools to interact with the system
5
5
  Home-page: https://github.com/skyfireitdiy/Jarvis
6
6
  Author: skyfire
@@ -296,8 +296,7 @@ JARVIS_PLATFORM: yuanbao
296
296
  JARVIS_MODEL: deep_seek_v3
297
297
 
298
298
  # 用于“思考”步骤的模型,通常选择能力更强的模型
299
- JARVIS_THINKING_PLATFORM: yuanbao
300
- JARVIS_THINKING_MODEL: deep_seek
299
+
301
300
 
302
301
  # 平台所需的环境变量
303
302
  ENV:
@@ -312,6 +311,14 @@ JARVIS_PRINT_ERROR_TRACEBACK: true
312
311
  ```
313
312
  - 也可以在单次调用时通过传入 `traceback=True` 临时开启回溯打印。
314
313
 
314
+ 提示:AI 工具筛选阈值
315
+ - 当可用工具数量过多时,可能会干扰模型的决策。Jarvis 支持在可用工具数量超过阈值时,先让 AI 自动筛选相关工具再启动,以专注于本次任务。
316
+ - 默认阈值为 30,可在配置中调整:
317
+ ```yaml
318
+ # ~/.jarvis/config.yaml
319
+ JARVIS_TOOL_FILTER_THRESHOLD: 30
320
+ ```
321
+
315
322
  Jarvis 支持多种平台,包括 **Kimi**, **通义千问**, **OpenAI** 等。详细的配置选项、模型组设置以及所有可用参数,请参阅 [**使用指南**](docs/jarvis_book/4.使用指南.md)。
316
323
 
317
324
  > **模型推荐**: 目前效果较好的模型是 `claude-opus-4-20250514`,可以通过国内代理商购买,例如 [FoxiAI](https://foxi-ai.top)。
@@ -210,8 +210,7 @@ JARVIS_PLATFORM: yuanbao
210
210
  JARVIS_MODEL: deep_seek_v3
211
211
 
212
212
  # 用于“思考”步骤的模型,通常选择能力更强的模型
213
- JARVIS_THINKING_PLATFORM: yuanbao
214
- JARVIS_THINKING_MODEL: deep_seek
213
+
215
214
 
216
215
  # 平台所需的环境变量
217
216
  ENV:
@@ -226,6 +225,14 @@ JARVIS_PRINT_ERROR_TRACEBACK: true
226
225
  ```
227
226
  - 也可以在单次调用时通过传入 `traceback=True` 临时开启回溯打印。
228
227
 
228
+ 提示:AI 工具筛选阈值
229
+ - 当可用工具数量过多时,可能会干扰模型的决策。Jarvis 支持在可用工具数量超过阈值时,先让 AI 自动筛选相关工具再启动,以专注于本次任务。
230
+ - 默认阈值为 30,可在配置中调整:
231
+ ```yaml
232
+ # ~/.jarvis/config.yaml
233
+ JARVIS_TOOL_FILTER_THRESHOLD: 30
234
+ ```
235
+
229
236
  Jarvis 支持多种平台,包括 **Kimi**, **通义千问**, **OpenAI** 等。详细的配置选项、模型组设置以及所有可用参数,请参阅 [**使用指南**](docs/jarvis_book/4.使用指南.md)。
230
237
 
231
238
  > **模型推荐**: 目前效果较好的模型是 `claude-opus-4-20250514`,可以通过国内代理商购买,例如 [FoxiAI](https://foxi-ai.top)。
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "jarvis-ai-assistant"
7
- version = "0.3.22"
7
+ version = "0.3.24"
8
8
  description = "Jarvis: An AI assistant that uses tools to interact with the system"
9
9
  readme = "README.md"
10
10
  authors = [{ name = "skyfire", email = "skyfireitdiy@hotmail.com" }]
@@ -102,22 +102,3 @@ jst = "jarvis.jarvis_stats.cli:main"
102
102
 
103
103
 
104
104
 
105
- [tool.uv]
106
- index-strategy = "unsafe-first-match"
107
-
108
- [[tool.uv.index]]
109
- url = "https://pypi.org/simple"
110
- default = true
111
-
112
- [[tool.uv.index]]
113
- name = "tencent"
114
- url = "https://mirrors.cloud.tencent.com/pypi/simple"
115
-
116
- [[tool.uv.index]]
117
- name = "aliyun"
118
- url = "https://mirrors.aliyun.com/pypi/simple/"
119
-
120
- [[tool.uv.index]]
121
- name = "ustc"
122
- url = "https://pypi.mirrors.ustc.edu.cn/simple/"
123
-
@@ -3,7 +3,7 @@ from setuptools import setup, find_packages # type: ignore
3
3
 
4
4
  setup(
5
5
  name="jarvis-ai-assistant",
6
- version="0.3.22",
6
+ version="0.3.24",
7
7
  author="skyfire",
8
8
  author_email="skyfireitdiy@hotmail.com",
9
9
  description="An AI assistant that uses various tools to interact with the system",
@@ -1,4 +1,4 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  """Jarvis AI Assistant"""
3
3
 
4
- __version__ = "0.3.22"
4
+ __version__ = "0.3.24"
@@ -34,12 +34,11 @@ from jarvis.jarvis_utils.config import (
34
34
  get_max_token_count,
35
35
  get_normal_model_name,
36
36
  get_normal_platform_name,
37
- get_thinking_model_name,
38
- get_thinking_platform_name,
39
37
  is_execute_tool_confirm,
40
38
  is_force_save_memory,
41
39
  is_use_analysis,
42
40
  is_use_methodology,
41
+ get_tool_filter_threshold,
43
42
  )
44
43
  from jarvis.jarvis_utils.embedding import get_context_token_count
45
44
  from jarvis.jarvis_utils.globals import (
@@ -224,7 +223,6 @@ class Agent:
224
223
  system_prompt: str,
225
224
  name: str = "Jarvis",
226
225
  description: str = "",
227
- llm_type: str = "normal",
228
226
  model_group: Optional[str] = None,
229
227
  summary_prompt: Optional[str] = None,
230
228
  auto_complete: bool = False,
@@ -246,7 +244,7 @@ class Agent:
246
244
  system_prompt: 系统提示词,定义Agent的行为准则
247
245
  name: Agent名称,默认为"Jarvis"
248
246
  description: Agent描述信息
249
- llm_type: LLM类型,可以是 'normal' 或 'thinking'
247
+
250
248
  summary_prompt: 任务总结提示模板
251
249
  auto_complete: 是否自动完成任务
252
250
  output_handler: 输出处理器列表
@@ -277,7 +275,7 @@ class Agent:
277
275
  )
278
276
 
279
277
  # 初始化模型和会话
280
- self._init_model(llm_type, model_group)
278
+ self._init_model(model_group)
281
279
  self._init_session()
282
280
 
283
281
  # 初始化处理器
@@ -312,14 +310,10 @@ class Agent:
312
310
  # 输出统计信息(包含欢迎信息)
313
311
  show_agent_startup_stats(name, self.model.name(), self.get_tool_registry()) # type: ignore
314
312
 
315
- def _init_model(self, llm_type: str, model_group: Optional[str]):
316
- """初始化模型平台"""
317
- if llm_type == "thinking":
318
- platform_name = get_thinking_platform_name(model_group)
319
- model_name = get_thinking_model_name(model_group)
320
- else: # 默认为 normal
321
- platform_name = get_normal_platform_name(model_group)
322
- model_name = get_normal_model_name(model_group)
313
+ def _init_model(self, model_group: Optional[str]):
314
+ """初始化模型平台(统一使用 normal 平台/模型)"""
315
+ platform_name = get_normal_platform_name(model_group)
316
+ model_name = get_normal_model_name(model_group)
323
317
 
324
318
  self.model = PlatformRegistry().create_platform(platform_name)
325
319
  if self.model is None:
@@ -865,6 +859,10 @@ class Agent:
865
859
 
866
860
  def _first_run(self):
867
861
  """首次运行初始化"""
862
+ # 如果工具过多,使用AI进行筛选
863
+ if self.session.prompt:
864
+ self._filter_tools_if_needed(self.session.prompt)
865
+
868
866
  # 准备记忆标签提示
869
867
  memory_tags_prompt = self.memory_manager.prepare_memory_tags_prompt()
870
868
 
@@ -877,6 +875,91 @@ class Agent:
877
875
 
878
876
  self.first = False
879
877
 
878
+ def _filter_tools_if_needed(self, task: str):
879
+ """如果工具数量超过阈值,使用大模型筛选相关工具"""
880
+ import re
881
+ from jarvis.jarvis_tools.registry import ToolRegistry
882
+
883
+ tool_registry = self.get_tool_registry()
884
+ if not isinstance(tool_registry, ToolRegistry):
885
+ return
886
+
887
+ all_tools = tool_registry.get_all_tools()
888
+ threshold = get_tool_filter_threshold()
889
+ if len(all_tools) <= threshold:
890
+ return
891
+
892
+ # 为工具选择构建提示
893
+ tools_prompt_part = ""
894
+ tool_names = []
895
+ for i, tool in enumerate(all_tools, 1):
896
+ tool_names.append(tool["name"])
897
+ tools_prompt_part += f"{i}. {tool['name']}: {tool['description']}\n"
898
+
899
+ selection_prompt = f"""
900
+ 用户任务是:
901
+ <task>
902
+ {task}
903
+ </task>
904
+
905
+ 这是一个可用工具的列表:
906
+ <tools>
907
+ {tools_prompt_part}
908
+ </tools>
909
+
910
+ 请根据用户任务,从列表中选择最相关的工具。
911
+ 请仅返回所选工具的编号,以逗号分隔。例如:1, 5, 12
912
+ """
913
+ PrettyOutput.print(
914
+ f"工具数量超过{threshold}个,正在使用AI筛选相关工具...", OutputType.INFO
915
+ )
916
+
917
+ # 使用临时模型实例调用模型,以避免污染历史记录
918
+ try:
919
+ from jarvis.jarvis_platform.registry import PlatformRegistry
920
+
921
+ temp_model = PlatformRegistry().create_platform(
922
+ self.model.platform_name() # type: ignore
923
+ )
924
+ if not temp_model:
925
+ raise RuntimeError("为工具选择创建临时模型失败。")
926
+
927
+ temp_model.set_model_name(self.model.name()) # type: ignore
928
+ temp_model.set_system_prompt("你是一个帮助筛选工具的助手。")
929
+ selected_tools_str = temp_model.chat_until_success(
930
+ selection_prompt
931
+ ) # type: ignore
932
+
933
+ # 解析响应并筛选工具
934
+ selected_indices = [
935
+ int(i.strip()) for i in re.findall(r"\d+", selected_tools_str)
936
+ ]
937
+ selected_tool_names = [
938
+ tool_names[i - 1]
939
+ for i in selected_indices
940
+ if 0 < i <= len(tool_names)
941
+ ]
942
+
943
+ if selected_tool_names:
944
+ # 移除重复项
945
+ selected_tool_names = sorted(list(set(selected_tool_names)))
946
+ tool_registry.use_tools(selected_tool_names)
947
+ # 使用筛选后的工具列表重新设置系统提示
948
+ self._setup_system_prompt()
949
+ PrettyOutput.print(
950
+ f"已筛选出 {len(selected_tool_names)} 个相关工具: {', '.join(selected_tool_names)}",
951
+ OutputType.SUCCESS,
952
+ )
953
+ else:
954
+ PrettyOutput.print(
955
+ "AI 未能筛选出任何相关工具,将使用所有工具。", OutputType.WARNING
956
+ )
957
+
958
+ except Exception as e:
959
+ PrettyOutput.print(
960
+ f"工具筛选失败: {e},将使用所有工具。", OutputType.ERROR
961
+ )
962
+
880
963
  def _check_and_organize_memory(self):
881
964
  """
882
965
  检查记忆库状态,如果满足条件则提示用户整理。
@@ -22,12 +22,10 @@ class AgentManager:
22
22
 
23
23
  def __init__(
24
24
  self,
25
- llm_type: str,
26
25
  model_group: Optional[str] = None,
27
26
  tool_group: Optional[str] = None,
28
27
  restore_session: bool = False,
29
28
  ):
30
- self.llm_type = llm_type
31
29
  self.model_group = model_group
32
30
  self.tool_group = tool_group
33
31
  self.restore_session = restore_session
@@ -43,7 +41,6 @@ class AgentManager:
43
41
 
44
42
  self.agent = Agent(
45
43
  system_prompt=origin_agent_system_prompt,
46
- llm_type=self.llm_type,
47
44
  model_group=self.model_group,
48
45
  input_handler=[shell_input_handler, builtin_input_handler],
49
46
  output_handler=[ToolRegistry()], # type: ignore
@@ -195,7 +195,6 @@ def preload_config_for_flags(config_file: Optional[str]) -> None:
195
195
 
196
196
 
197
197
  def try_switch_to_jca_if_git_repo(
198
- llm_type: str,
199
198
  model_group: Optional[str],
200
199
  tool_group: Optional[str],
201
200
  config_file: Optional[str],
@@ -221,8 +220,6 @@ def try_switch_to_jca_if_git_repo(
221
220
  ):
222
221
  # 构建并切换到 jarvis-code-agent 命令,传递兼容参数
223
222
  args = ["jarvis-code-agent"]
224
- if llm_type:
225
- args += ["-t", llm_type]
226
223
  if model_group:
227
224
  args += ["-g", model_group]
228
225
  if tool_group:
@@ -244,7 +241,6 @@ def try_switch_to_jca_if_git_repo(
244
241
 
245
242
 
246
243
  def handle_builtin_config_selector(
247
- llm_type: str,
248
244
  model_group: Optional[str],
249
245
  tool_group: Optional[str],
250
246
  config_file: Optional[str],
@@ -421,8 +417,6 @@ def handle_builtin_config_selector(
421
417
  if sel["category"] == "agent":
422
418
  # jarvis-agent 支持 -f/--config(全局配置)与 -c/--agent-definition
423
419
  args = [sel["cmd"], "-c", sel["file"]]
424
- if llm_type:
425
- args += ["--llm-type", llm_type]
426
420
  if model_group:
427
421
  args += ["-g", model_group]
428
422
  if config_file:
@@ -439,8 +433,6 @@ def handle_builtin_config_selector(
439
433
  elif sel["category"] == "roles":
440
434
  # jarvis-platform-manager role 子命令,支持 -c/-t/-g
441
435
  args = [sel["cmd"], "role", "-c", sel["file"]]
442
- if llm_type:
443
- args += ["-t", llm_type]
444
436
  if model_group:
445
437
  args += ["-g", model_group]
446
438
 
@@ -460,12 +452,6 @@ def handle_builtin_config_selector(
460
452
  @app.callback(invoke_without_command=True)
461
453
  def run_cli(
462
454
  ctx: typer.Context,
463
- llm_type: str = typer.Option(
464
- "normal",
465
- "-t",
466
- "--llm-type",
467
- help="使用的LLM类型,可选值:'normal'(普通)或 'thinking'(思考模式)",
468
- ),
469
455
  task: Optional[str] = typer.Option(
470
456
  None, "-T", "--task", help="从命令行直接输入任务内容"
471
457
  ),
@@ -525,11 +511,11 @@ def run_cli(
525
511
 
526
512
  # 在初始化环境前检测Git仓库,并可选择自动切换到代码开发模式(jca)
527
513
  try_switch_to_jca_if_git_repo(
528
- llm_type, model_group, tool_group, config_file, restore_session, task
514
+ model_group, tool_group, config_file, restore_session, task
529
515
  )
530
516
 
531
517
  # 在进入默认通用代理前,列出内置配置供选择(agent/multi_agent/roles)
532
- handle_builtin_config_selector(llm_type, model_group, tool_group, config_file, task)
518
+ handle_builtin_config_selector(model_group, tool_group, config_file, task)
533
519
 
534
520
  # 初始化环境
535
521
  init_env(
@@ -539,7 +525,6 @@ def run_cli(
539
525
  # 运行主流程
540
526
  try:
541
527
  agent_manager = AgentManager(
542
- llm_type=llm_type,
543
528
  model_group=model_group,
544
529
  tool_group=tool_group,
545
530
  restore_session=restore_session,
@@ -46,12 +46,7 @@ def cli(
46
46
  None, "-c", "--agent-definition", help="代理定义文件路径"
47
47
  ),
48
48
  task: Optional[str] = typer.Option(None, "-T", "--task", help="初始任务内容"),
49
- llm_type: str = typer.Option(
50
- "normal",
51
- "-t",
52
- "--llm-type",
53
- help="使用的LLM类型,覆盖配置文件中的设置",
54
- ),
49
+
55
50
  model_group: Optional[str] = typer.Option(
56
51
  None, "-g", "--llm-group", help="使用的模型组,覆盖配置文件中的设置"
57
52
  ),
@@ -66,8 +61,7 @@ def cli(
66
61
  config = load_config(agent_definition) if agent_definition else {}
67
62
 
68
63
  # Override config with command-line arguments if provided
69
- if llm_type:
70
- config["llm_type"] = llm_type
64
+
71
65
  if model_group:
72
66
  config["model_group"] = model_group
73
67
 
@@ -48,7 +48,6 @@ class CodeAgent:
48
48
 
49
49
  def __init__(
50
50
  self,
51
- llm_type: str = "normal",
52
51
  model_group: Optional[str] = None,
53
52
  need_summary: bool = True,
54
53
  append_tools: Optional[str] = None,
@@ -70,7 +69,6 @@ class CodeAgent:
70
69
  "retrieve_memory",
71
70
  "clear_memory",
72
71
  "sub_code_agent",
73
- "edit_file",
74
72
  ]
75
73
 
76
74
  if append_tools:
@@ -87,8 +85,7 @@ class CodeAgent:
87
85
  system_prompt=code_system_prompt,
88
86
  name="CodeAgent",
89
87
  auto_complete=False,
90
- output_handler=[tool_registry], # type: ignore
91
- llm_type=llm_type,
88
+ output_handler=[tool_registry, EditFileHandler()], # type: ignore
92
89
  model_group=model_group,
93
90
  input_handler=[shell_input_handler, builtin_input_handler],
94
91
  need_summary=need_summary,
@@ -300,10 +297,12 @@ class CodeAgent:
300
297
  "⚠️ 正在修改git换行符敏感设置,这会影响所有文件的换行符处理方式",
301
298
  OutputType.WARNING,
302
299
  )
303
- PrettyOutput.print("将进行以下设置:", OutputType.INFO)
300
+ # 避免在循环中逐条打印,先拼接后统一打印
301
+ lines = ["将进行以下设置:"]
304
302
  for key, value in target_settings.items():
305
303
  current = current_settings.get(key, "未设置")
306
- PrettyOutput.print(f"{key}: {current} -> {value}", OutputType.INFO)
304
+ lines.append(f"{key}: {current} -> {value}")
305
+ PrettyOutput.print("\n".join(lines), OutputType.INFO)
307
306
 
308
307
  # 直接执行设置,不需要用户确认
309
308
  for key, value in target_settings.items():
@@ -640,7 +639,7 @@ class CodeAgent:
640
639
  if lint_tools_info and is_enable_static_analysis():
641
640
  addon_prompt = f"""
642
641
  请对以下修改的文件进行静态扫描:
643
- {file_list}
642
+ {file_list}
644
643
  {tool_info}
645
644
  如果本次修改引入了警告和错误,请根据警告和错误信息修复代码
646
645
  注意:如果要进行静态检查,需要在所有的修改都完成之后进行集中检查,如果文件有多个检查工具,尽量一次全部调用,不要分多次调用
@@ -673,12 +672,7 @@ class CodeAgent:
673
672
 
674
673
  @app.command()
675
674
  def cli(
676
- llm_type: str = typer.Option(
677
- "normal",
678
- "-t",
679
- "--llm-type",
680
- help="使用的LLM类型,可选值:'normal'(普通)或 'thinking'(思考模式)",
681
- ),
675
+
682
676
  model_group: Optional[str] = typer.Option(
683
677
  None, "-g", "--llm-group", help="使用的模型组,覆盖配置文件中的设置"
684
678
  ),
@@ -754,7 +748,6 @@ def cli(
754
748
  find_git_root_and_cd(curr_dir)
755
749
  try:
756
750
  agent = CodeAgent(
757
- llm_type=llm_type,
758
751
  model_group=model_group,
759
752
  need_summary=False,
760
753
  append_tools=append_tools,
@@ -591,24 +591,17 @@ class CodeReviewTool:
591
591
  tool_registry = ToolRegistry()
592
592
  tool_registry.dont_use_tools(["code_review"])
593
593
 
594
- # Get llm_type and model_group from args
595
- llm_type = args.get("llm_type", "normal")
594
+ # Get model_group from args (thinking mode removed)
596
595
  model_group = args.get("model_group")
597
596
 
598
- # Get platform and model based on llm_type and model_group
597
+ # Get platform and model from model_group
599
598
  from jarvis.jarvis_utils.config import (
600
599
  get_normal_platform_name,
601
600
  get_normal_model_name,
602
- get_thinking_platform_name,
603
- get_thinking_model_name,
604
601
  )
605
602
 
606
- if llm_type == "thinking":
607
- platform_name = get_thinking_platform_name(model_group)
608
- model_name = get_thinking_model_name(model_group)
609
- else:
610
- platform_name = get_normal_platform_name(model_group)
611
- model_name = get_normal_model_name(model_group)
603
+ platform_name = get_normal_platform_name(model_group)
604
+ model_name = get_normal_model_name(model_group)
612
605
 
613
606
  # If no explicit parameters, try to get from existing agent
614
607
  calling_agent = agent or get_agent(current_agent_name)
@@ -698,7 +691,6 @@ class CodeReviewTool:
698
691
  [在此处插入完整MARKDOWN格式的审查报告]
699
692
  {ct("REPORT")}""",
700
693
  output_handler=[tool_registry], # type: ignore
701
- llm_type="thinking",
702
694
  auto_complete=False,
703
695
  )
704
696
 
@@ -821,12 +813,7 @@ def extract_code_report(result: str) -> str:
821
813
  def review_commit(
822
814
  commit: str = typer.Argument(..., help="要审查的提交SHA"),
823
815
  root_dir: str = typer.Option(".", "--root-dir", help="代码库根目录路径"),
824
- llm_type: str = typer.Option(
825
- "normal",
826
- "-t",
827
- "--llm-type",
828
- help="使用的LLM类型,可选值:'normal'(普通)或 'thinking'(思考模式)",
829
- ),
816
+
830
817
  model_group: Optional[str] = typer.Option(
831
818
  None, "-g", "--llm-group", help="使用的模型组,覆盖配置文件中的设置"
832
819
  ),
@@ -837,7 +824,7 @@ def review_commit(
837
824
  "review_type": "commit",
838
825
  "commit_sha": commit,
839
826
  "root_dir": root_dir,
840
- "llm_type": llm_type,
827
+
841
828
  "model_group": model_group,
842
829
  }
843
830
  result = tool.execute(tool_args)
@@ -852,12 +839,7 @@ def review_commit(
852
839
  @app.command("current")
853
840
  def review_current(
854
841
  root_dir: str = typer.Option(".", "--root-dir", help="代码库根目录路径"),
855
- llm_type: str = typer.Option(
856
- "normal",
857
- "-t",
858
- "--llm-type",
859
- help="使用的LLM类型,可选值:'normal'(普通)或 'thinking'(思考模式)",
860
- ),
842
+
861
843
  model_group: Optional[str] = typer.Option(
862
844
  None, "-g", "--llm-group", help="使用的模型组,覆盖配置文件中的设置"
863
845
  ),
@@ -867,7 +849,7 @@ def review_current(
867
849
  tool_args = {
868
850
  "review_type": "current",
869
851
  "root_dir": root_dir,
870
- "llm_type": llm_type,
852
+
871
853
  "model_group": model_group,
872
854
  }
873
855
  result = tool.execute(tool_args)
@@ -884,12 +866,7 @@ def review_range(
884
866
  start_commit: str = typer.Argument(..., help="起始提交SHA"),
885
867
  end_commit: str = typer.Argument(..., help="结束提交SHA"),
886
868
  root_dir: str = typer.Option(".", "--root-dir", help="代码库根目录路径"),
887
- llm_type: str = typer.Option(
888
- "normal",
889
- "-t",
890
- "--llm-type",
891
- help="使用的LLM类型,可选值:'normal'(普通)或 'thinking'(思考模式)",
892
- ),
869
+
893
870
  model_group: Optional[str] = typer.Option(
894
871
  None, "-g", "--llm-group", help="使用的模型组,覆盖配置文件中的设置"
895
872
  ),
@@ -901,7 +878,7 @@ def review_range(
901
878
  "start_commit": start_commit,
902
879
  "end_commit": end_commit,
903
880
  "root_dir": root_dir,
904
- "llm_type": llm_type,
881
+
905
882
  "model_group": model_group,
906
883
  }
907
884
  result = tool.execute(tool_args)
@@ -917,12 +894,7 @@ def review_range(
917
894
  def review_file(
918
895
  file: str = typer.Argument(..., help="要审查的文件路径"),
919
896
  root_dir: str = typer.Option(".", "--root-dir", help="代码库根目录路径"),
920
- llm_type: str = typer.Option(
921
- "normal",
922
- "-t",
923
- "--llm-type",
924
- help="使用的LLM类型,可选值:'normal'(普通)或 'thinking'(思考模式)",
925
- ),
897
+
926
898
  model_group: Optional[str] = typer.Option(
927
899
  None, "-g", "--llm-group", help="使用的模型组,覆盖配置文件中的设置"
928
900
  ),
@@ -933,7 +905,7 @@ def review_file(
933
905
  "review_type": "file",
934
906
  "file_path": file,
935
907
  "root_dir": root_dir,
936
- "llm_type": llm_type,
908
+
937
909
  "model_group": model_group,
938
910
  }
939
911
  result = tool.execute(tool_args)
@@ -126,16 +126,8 @@
126
126
  "description": "常规操作模型名称",
127
127
  "default": "deep_seek_v3"
128
128
  },
129
- "JARVIS_THINKING_PLATFORM": {
130
- "type": "string",
131
- "description": "思考操作平台名称",
132
- "default": "yuanbao"
133
- },
134
- "JARVIS_THINKING_MODEL": {
135
- "type": "string",
136
- "description": "思考操作模型名称",
137
- "default": "deep_seek_v3"
138
- },
129
+
130
+
139
131
  "JARVIS_WEB_SEARCH_PLATFORM": {
140
132
  "type": "string",
141
133
  "description": "Web搜索使用的平台名称",
@@ -168,14 +160,8 @@
168
160
  "type": "string",
169
161
  "default": "deep_seek_v3"
170
162
  },
171
- "JARVIS_THINKING_PLATFORM": {
172
- "type": "string",
173
- "default": "yuanbao"
174
- },
175
- "JARVIS_THINKING_MODEL": {
176
- "type": "string",
177
- "default": "deep_seek_v3"
178
- },
163
+
164
+
179
165
  "JARVIS_MAX_INPUT_TOKEN_COUNT": {
180
166
  "type": "number",
181
167
  "default": 32000