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.
- {jarvis_ai_assistant-0.3.22/src/jarvis_ai_assistant.egg-info → jarvis_ai_assistant-0.3.24}/PKG-INFO +10 -3
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/README.md +9 -2
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/pyproject.toml +1 -20
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/setup.py +1 -1
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/__init__.py +1 -1
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_agent/__init__.py +96 -13
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_agent/agent_manager.py +0 -3
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_agent/jarvis.py +2 -17
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_agent/main.py +2 -8
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_code_agent/code_agent.py +7 -14
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_code_analysis/code_review.py +12 -40
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_data/config_schema.json +4 -18
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_git_utils/git_commiter.py +7 -22
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_mcp/sse_mcp_client.py +4 -3
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_mcp/streamable_mcp_client.py +9 -8
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_memory_organizer/memory_organizer.py +46 -53
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_methodology/main.py +4 -2
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_platform/base.py +49 -12
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_platform/kimi.py +16 -22
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_platform/registry.py +7 -14
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_platform/tongyi.py +21 -32
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_platform/yuanbao.py +15 -17
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_platform_manager/main.py +14 -51
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_rag/cli.py +14 -13
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_rag/embedding_manager.py +18 -6
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_rag/llm_interface.py +0 -2
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_rag/rag_pipeline.py +26 -15
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_rag/retriever.py +33 -25
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_tools/cli/main.py +22 -15
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_tools/edit_file.py +1 -3
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_tools/file_analyzer.py +12 -6
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_tools/registry.py +16 -11
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_tools/sub_agent.py +1 -1
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_tools/sub_code_agent.py +1 -4
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_utils/config.py +14 -10
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_utils/input.py +6 -3
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_utils/methodology.py +11 -6
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_utils/utils.py +30 -13
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24/src/jarvis_ai_assistant.egg-info}/PKG-INFO +10 -3
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/LICENSE +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/MANIFEST.in +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/setup.cfg +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_agent/builtin_input_handler.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_agent/config_editor.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_agent/edit_file_handler.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_agent/file_methodology_manager.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_agent/memory_manager.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_agent/methodology_share_manager.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_agent/output_handler.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_agent/prompt_builder.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_agent/prompts.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_agent/protocols.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_agent/session_manager.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_agent/share_manager.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_agent/shell_input_handler.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_agent/task_analyzer.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_agent/task_manager.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_agent/tool_executor.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_agent/tool_share_manager.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_code_agent/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_code_agent/lint.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_code_analysis/checklists/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_code_analysis/checklists/c_cpp.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_code_analysis/checklists/csharp.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_code_analysis/checklists/data_format.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_code_analysis/checklists/devops.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_code_analysis/checklists/docs.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_code_analysis/checklists/go.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_code_analysis/checklists/infrastructure.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_code_analysis/checklists/java.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_code_analysis/checklists/javascript.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_code_analysis/checklists/kotlin.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_code_analysis/checklists/loader.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_code_analysis/checklists/php.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_code_analysis/checklists/python.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_code_analysis/checklists/ruby.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_code_analysis/checklists/rust.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_code_analysis/checklists/shell.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_code_analysis/checklists/sql.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_code_analysis/checklists/swift.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_code_analysis/checklists/web.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_data/tiktoken/9b5ad71b2ce5302211f9c61530b329a4922fc6a4 +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_git_squash/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_git_squash/main.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_mcp/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_mcp/stdio_mcp_client.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_memory_organizer/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_multi_agent/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_multi_agent/main.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_platform/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_platform/ai8.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_platform/human.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_platform/openai.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_platform_manager/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_platform_manager/service.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_rag/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_rag/cache.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_rag/query_rewriter.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_rag/reranker.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_smart_shell/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_smart_shell/main.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_stats/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_stats/cli.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_stats/stats.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_stats/storage.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_stats/visualizer.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_tools/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_tools/ask_user.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_tools/base.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_tools/clear_memory.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_tools/cli/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_tools/execute_script.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_tools/generate_new_tool.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_tools/methodology.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_tools/read_code.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_tools/read_webpage.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_tools/retrieve_memory.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_tools/rewrite_file.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_tools/save_memory.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_tools/search_web.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_tools/virtual_tty.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_utils/__init__.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_utils/builtin_replace_map.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_utils/clipboard.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_utils/embedding.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_utils/file_processors.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_utils/git_utils.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_utils/globals.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_utils/http.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_utils/output.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_utils/tag.py +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis_ai_assistant.egg-info/SOURCES.txt +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis_ai_assistant.egg-info/dependency_links.txt +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis_ai_assistant.egg-info/entry_points.txt +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis_ai_assistant.egg-info/requires.txt +0 -0
- {jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis_ai_assistant.egg-info/top_level.txt +0 -0
{jarvis_ai_assistant-0.3.22/src/jarvis_ai_assistant.egg-info → jarvis_ai_assistant-0.3.24}/PKG-INFO
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: jarvis-ai-assistant
|
3
|
-
Version: 0.3.
|
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
|
-
|
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
|
-
|
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.
|
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.
|
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",
|
{jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_agent/__init__.py
RENAMED
@@ -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
|
-
|
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(
|
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,
|
316
|
-
"""
|
317
|
-
|
318
|
-
|
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
|
检查记忆库状态,如果满足条件则提示用户整理。
|
{jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_agent/agent_manager.py
RENAMED
@@ -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
|
-
|
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(
|
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
|
-
|
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
|
-
|
70
|
-
config["llm_type"] = llm_type
|
64
|
+
|
71
65
|
if model_group:
|
72
66
|
config["model_group"] = model_group
|
73
67
|
|
{jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_code_agent/code_agent.py
RENAMED
@@ -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
|
-
|
300
|
+
# 避免在循环中逐条打印,先拼接后统一打印
|
301
|
+
lines = ["将进行以下设置:"]
|
304
302
|
for key, value in target_settings.items():
|
305
303
|
current = current_settings.get(key, "未设置")
|
306
|
-
|
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
|
-
|
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
|
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
|
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
|
-
|
607
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
908
|
+
|
937
909
|
"model_group": model_group,
|
938
910
|
}
|
939
911
|
result = tool.execute(tool_args)
|
{jarvis_ai_assistant-0.3.22 → jarvis_ai_assistant-0.3.24}/src/jarvis/jarvis_data/config_schema.json
RENAMED
@@ -126,16 +126,8 @@
|
|
126
126
|
"description": "常规操作模型名称",
|
127
127
|
"default": "deep_seek_v3"
|
128
128
|
},
|
129
|
-
|
130
|
-
|
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
|
-
|
172
|
-
|
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
|