jarvis-ai-assistant 0.1.193__tar.gz → 0.1.195__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 (109) hide show
  1. {jarvis_ai_assistant-0.1.193/src/jarvis_ai_assistant.egg-info → jarvis_ai_assistant-0.1.195}/PKG-INFO +362 -230
  2. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/README.md +361 -229
  3. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/pyproject.toml +1 -1
  4. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/setup.py +1 -1
  5. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/__init__.py +1 -1
  6. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_agent/__init__.py +45 -41
  7. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_agent/builtin_input_handler.py +26 -4
  8. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_agent/jarvis.py +30 -19
  9. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_agent/main.py +20 -12
  10. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_agent/output_handler.py +7 -7
  11. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_agent/shell_input_handler.py +14 -11
  12. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_code_agent/code_agent.py +81 -79
  13. jarvis_ai_assistant-0.1.195/src/jarvis/jarvis_code_agent/lint.py +151 -0
  14. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_code_analysis/checklists/__init__.py +1 -1
  15. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_code_analysis/checklists/c_cpp.py +1 -1
  16. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_code_analysis/checklists/csharp.py +1 -1
  17. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_code_analysis/checklists/data_format.py +1 -1
  18. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_code_analysis/checklists/devops.py +1 -1
  19. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_code_analysis/checklists/docs.py +1 -1
  20. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_code_analysis/checklists/go.py +1 -1
  21. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_code_analysis/checklists/infrastructure.py +1 -1
  22. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_code_analysis/checklists/java.py +1 -1
  23. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_code_analysis/checklists/javascript.py +1 -1
  24. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_code_analysis/checklists/kotlin.py +1 -1
  25. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_code_analysis/checklists/loader.py +31 -29
  26. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_code_analysis/checklists/php.py +1 -1
  27. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_code_analysis/checklists/python.py +1 -1
  28. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_code_analysis/checklists/ruby.py +1 -1
  29. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_code_analysis/checklists/rust.py +1 -1
  30. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_code_analysis/checklists/shell.py +1 -1
  31. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_code_analysis/checklists/sql.py +1 -1
  32. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_code_analysis/checklists/swift.py +1 -1
  33. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_code_analysis/checklists/web.py +1 -1
  34. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_code_analysis/code_review.py +292 -190
  35. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_dev/main.py +73 -56
  36. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_git_details/main.py +29 -33
  37. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_git_squash/main.py +13 -11
  38. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_git_utils/git_commiter.py +15 -5
  39. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_mcp/__init__.py +8 -10
  40. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_mcp/sse_mcp_client.py +182 -205
  41. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_mcp/stdio_mcp_client.py +93 -120
  42. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_mcp/streamable_mcp_client.py +117 -142
  43. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_methodology/main.py +71 -39
  44. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_multi_agent/__init__.py +24 -16
  45. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_multi_agent/main.py +10 -4
  46. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_platform/__init__.py +1 -1
  47. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_platform/base.py +44 -18
  48. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_platform/human.py +15 -3
  49. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_platform/kimi.py +117 -81
  50. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_platform/openai.py +23 -28
  51. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_platform/registry.py +43 -29
  52. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_platform/tongyi.py +16 -10
  53. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_platform/yuanbao.py +197 -144
  54. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_platform_manager/main.py +4 -2
  55. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_smart_shell/main.py +35 -30
  56. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_tools/ask_user.py +8 -16
  57. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_tools/base.py +3 -2
  58. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_tools/chdir.py +7 -19
  59. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_tools/cli/main.py +14 -10
  60. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_tools/code_plan.py +10 -31
  61. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_tools/create_code_agent.py +6 -11
  62. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_tools/create_sub_agent.py +10 -22
  63. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_tools/edit_file.py +98 -76
  64. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_tools/execute_script.py +46 -46
  65. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_tools/file_analyzer.py +22 -34
  66. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_tools/file_operation.py +69 -62
  67. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_tools/generate_new_tool.py +0 -2
  68. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_tools/methodology.py +19 -23
  69. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_tools/read_code.py +35 -35
  70. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_tools/read_webpage.py +7 -16
  71. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_tools/registry.py +63 -30
  72. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_tools/rewrite_file.py +26 -29
  73. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_tools/search_web.py +5 -8
  74. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_tools/virtual_tty.py +133 -122
  75. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_utils/__init__.py +0 -1
  76. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_utils/builtin_replace_map.py +9 -9
  77. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_utils/config.py +60 -37
  78. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_utils/embedding.py +24 -19
  79. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_utils/file_processors.py +16 -9
  80. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_utils/git_utils.py +157 -107
  81. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_utils/globals.py +1 -1
  82. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_utils/input.py +85 -52
  83. jarvis_ai_assistant-0.1.195/src/jarvis/jarvis_utils/jarvis_history.py +43 -0
  84. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_utils/methodology.py +31 -24
  85. jarvis_ai_assistant-0.1.195/src/jarvis/jarvis_utils/output.py +344 -0
  86. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_utils/tag.py +2 -1
  87. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_utils/utils.py +84 -52
  88. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195/src/jarvis_ai_assistant.egg-info}/PKG-INFO +362 -230
  89. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis_ai_assistant.egg-info/SOURCES.txt +1 -2
  90. jarvis_ai_assistant-0.1.193/src/jarvis/jarvis_agent/file_input_handler.py +0 -112
  91. jarvis_ai_assistant-0.1.193/src/jarvis/jarvis_code_agent/lint.py +0 -164
  92. jarvis_ai_assistant-0.1.193/src/jarvis/jarvis_tools/cli/__init__.py +0 -0
  93. jarvis_ai_assistant-0.1.193/src/jarvis/jarvis_utils/output.py +0 -260
  94. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/LICENSE +0 -0
  95. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/MANIFEST.in +0 -0
  96. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/setup.cfg +0 -0
  97. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_code_agent/__init__.py +0 -0
  98. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_data/config_schema.json +0 -0
  99. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis/jarvis_data/huggingface.tar.gz +0 -0
  100. {jarvis_ai_assistant-0.1.193/src/jarvis/jarvis_event → jarvis_ai_assistant-0.1.195/src/jarvis/jarvis_git_details}/__init__.py +0 -0
  101. {jarvis_ai_assistant-0.1.193/src/jarvis/jarvis_git_details → jarvis_ai_assistant-0.1.195/src/jarvis/jarvis_git_squash}/__init__.py +0 -0
  102. {jarvis_ai_assistant-0.1.193/src/jarvis/jarvis_git_squash → jarvis_ai_assistant-0.1.195/src/jarvis/jarvis_platform_manager}/__init__.py +0 -0
  103. {jarvis_ai_assistant-0.1.193/src/jarvis/jarvis_platform_manager → jarvis_ai_assistant-0.1.195/src/jarvis/jarvis_smart_shell}/__init__.py +0 -0
  104. {jarvis_ai_assistant-0.1.193/src/jarvis/jarvis_smart_shell → jarvis_ai_assistant-0.1.195/src/jarvis/jarvis_tools}/__init__.py +0 -0
  105. {jarvis_ai_assistant-0.1.193/src/jarvis/jarvis_tools → jarvis_ai_assistant-0.1.195/src/jarvis/jarvis_tools/cli}/__init__.py +0 -0
  106. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis_ai_assistant.egg-info/dependency_links.txt +0 -0
  107. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis_ai_assistant.egg-info/entry_points.txt +0 -0
  108. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/src/jarvis_ai_assistant.egg-info/requires.txt +0 -0
  109. {jarvis_ai_assistant-0.1.193 → jarvis_ai_assistant-0.1.195}/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.1.193
3
+ Version: 0.1.195
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
@@ -78,26 +78,13 @@ Dynamic: requires-python
78
78
 
79
79
  *您的智能开发和系统交互助手*
80
80
 
81
- [核心特色](#core-features) • [视频介绍](#video-introduction) • [快速开始](#quick-start) • [配置说明](#configuration) • [工具说明](#tools) • [扩展开发](#extensions) • [贡献指南](#contributing) • [许可证](#license) • [Wiki文档](https://deepwiki.com/skyfireitdiy/Jarvis)
81
+ [快速开始](#quick-start) • [核心功能](#core-features) • [配置说明](#configuration) • [工具说明](#tools) • [扩展开发](#extensions) • [贡献指南](#contributing) • [许可证](#license) • [Wiki文档](https://deepwiki.com/skyfireitdiy/Jarvis)
82
82
  </div>
83
83
 
84
84
  ---
85
85
 
86
- ## 🌟 核心特色 <a id="core-features"></a>
87
-
88
- - 🆓 零成本接入:无缝集成腾讯元宝(推荐首选)、Kimi等优质模型,无需支付API费用,同时保留强大的文件处理、搜索和推理能力
89
- - 🛠️ 工具驱动:内置丰富工具集,涵盖脚本执行、代码开发、网页搜索、终端操作等核心功能
90
- - 👥 人机协作:支持实时交互,用户可随时介入指导,确保AI行为符合预期
91
- - 🔌 高度可扩展:支持自定义工具和平台,轻松集成MCP协议
92
- - 📈 智能进化:内置方法论系统,持续学习优化,越用越智能
93
-
94
-
95
- ## 📺 视频介绍<a id="video-introduction"></a>
96
-
97
- [![视频介绍](docs/images/intro.png)](https://player.bilibili.com/player.html?isOutside=true&aid=114306578382907&bvid=BV1x2dAYeEpM&cid=29314583629&p=1)
98
-
99
-
100
86
  ## 🚀 快速开始 <a id="quick-start"></a>
87
+
101
88
  ### 系统要求
102
89
  - 目前只能在Linux系统下使用(很多工具依赖Linux系统)
103
90
  - Windows没有测试过,但Windows 10以上的用户可以在WSL上使用此工具
@@ -113,106 +100,6 @@ pip3 install -e .
113
100
  pip3 install jarvis-ai-assistant
114
101
  ```
115
102
 
116
- ### 预定义任务(pre-command)
117
-
118
- 您可以创建预定义任务文件来快速执行常用命令:
119
-
120
- 1. 在`~/.jarvis/pre-command`或当前目录的`.jarvis/pre-command`文件中定义任务
121
- 2. 使用YAML格式定义任务,例如:
122
- ```yaml
123
- build: "构建项目并运行测试"
124
- deploy: "部署应用到生产环境"
125
- ```
126
- 3. 运行`jarvis`命令时会自动加载这些任务并提示选择执行
127
-
128
- ### 最小化配置
129
-
130
- 将以下配置写入到`~/.jarvis/config.yaml`文件中。
131
-
132
- #### 腾讯元宝 (推荐首选)
133
- ```yaml
134
- JARVIS_PLATFORM: yuanbao # 推荐使用腾讯元宝平台,适配性最佳
135
- JARVIS_MODEL: deep_seek_v3
136
- JARVIS_THINKING_PLATFORM: yuanbao
137
- JARVIS_THINKING_MODEL: deep_seek
138
- ENV:
139
- YUANBAO_COOKIES: <元宝cookies>
140
- YUANBAO_AGENT_ID: <元宝AgentID>
141
- ```
142
-
143
- 元宝cookies以及AgentID获取方式:
144
-
145
- ![元宝cookies以及AgentID获取方式](docs/images/yuanbao.png)
146
-
147
- 浏览器地址栏中那部分是AgentID。
148
-
149
-
150
- #### Kimi
151
- ```yaml
152
- JARVIS_PLATFORM: kimi
153
- JARVIS_MODEL: kimi
154
- JARVIS_THINKING_PLATFORM: kimi
155
- JARVIS_THINKING_MODEL: k1
156
-
157
- ENV:
158
- KIMI_API_KEY: <Kimi API KEY>
159
- ```
160
-
161
- Kimi API Key获取方式:
162
-
163
- ![Kimi API Key获取方式](docs/images/kimi.png)
164
-
165
- 删除Bearer前缀,剩下的内容就是Kimi API Key。
166
-
167
-
168
- #### 通义千问
169
- ```yaml
170
- JARVIS_PLATFORM: tongyi
171
- JARVIS_MODEL: Normal # 可选模型:Normal, Thinking, Deep-Research, Code-Chat
172
- JARVIS_THINKING_PLATFORM: tongyi
173
- JARVIS_THINKING_MODEL: Thinking
174
-
175
- ENV:
176
- TONGYI_COOKIES: <通义千问cookies>
177
- ```
178
-
179
- 通义千问cookies获取方式:
180
-
181
- ![通义千问cookies获取方式](docs/images/tongyi.png)
182
-
183
- 1. 登录[通义千问](https://www.tongyi.com/qianwen)
184
- 2. 打开浏览器开发者工具(F12)
185
- 3. 在Network标签页中找到任意请求
186
- 4. 在请求头中找到Cookie字段,复制其值
187
-
188
- 配置说明:
189
- 1. `TONGYI_COOKIES`: 必填,用于身份验证
190
- 2. 支持的模型:
191
- - `Normal`: 标准对话模型
192
- - `Thinking`: 深度思考模型
193
- - `Deep-Research`: 深度研究模型
194
- - `Code-Chat`: 代码对话模型
195
-
196
-
197
- #### OpenAI
198
- ```yaml
199
- JARVIS_PLATFORM: openai
200
- JARVIS_MODEL: gpt-4o # 默认模型,可选gpt-4-turbo, gpt-3.5-turbo等
201
- JARVIS_THINKING_PLATFORM: openai
202
- JARVIS_THINKING_MODEL: gpt-4o
203
-
204
- OPENAI_API_KEY: <OpenAI API Key>
205
- OPENAI_API_BASE: https://api.openai.com/v1 # 可选,默认为官方API地址
206
- ```
207
-
208
- 配置说明:
209
- 1. `OPENAI_API_KEY`: 必填。
210
- 2. `OPENAI_API_BASE`: 可选,用于自定义API端点
211
-
212
- 以上配置编写到`~/.jarvis/config.yaml`文件中。
213
-
214
- 支持的模型可通过`jarvis-platform-manager --list-models`查看完整列表。
215
-
216
103
  ### 基本使用
217
104
  | 命令 | 快捷方式 | 功能描述 |
218
105
  |------|----------|----------|
@@ -222,7 +109,6 @@ OPENAI_API_BASE: https://api.openai.com/v1 # 可选,默认为官方API地址
222
109
  | `jarvis-platform-manager` | - | 使用平台管理功能 |
223
110
  | `jarvis-code-review` | - | 使用代码审查功能 |
224
111
  | `jarvis-git-commit` | `jgc` | 使用自动化git commit功能 |
225
- | `jarvis-code-agent` | `jca` | 使用代码代理功能 |
226
112
  | `jarvis-dev` | - | 使用dev功能(开发中) |
227
113
  | `jarvis-git-squash` | - | 使用git squash功能 |
228
114
  | `jarvis-multi-agent` | - | 使用多代理功能 |
@@ -231,17 +117,74 @@ OPENAI_API_BASE: https://api.openai.com/v1 # 可选,默认为官方API地址
231
117
  | `jarvis-git-details` | - | 使用git details功能 |
232
118
  | `jarvis-methodology` | - | 使用方法论功能 |
233
119
 
234
- ## 💻 代码代理功能 (jarvis-code-agent)
120
+ ### Jarvis功能 (jarvis)
235
121
 
236
- `jarvis-code-agent` 是Jarvis的代码分析与修改工具,主要功能包括:
122
+ `jarvis` 是Jarvis的通用代理工具,提供开箱即用的AI助手功能。
237
123
 
238
- ### 1. 核心功能
124
+ #### 1. 核心功能
125
+ - 任务分析与规划
126
+ - 代码分析与修改
127
+ - 系统交互与操作
128
+ - 方法论应用与优化
129
+ - 多代理协作
130
+
131
+ #### 2. 使用方式
132
+ ```bash
133
+ # 基本用法
134
+ jarvis
135
+
136
+ # 带参数使用
137
+ jarvis -p <平台> -m <模型> -t "初始任务"
138
+ ```
139
+
140
+ #### 3. 命令行参数
141
+ | 参数 | 描述 |
142
+ |------|------|
143
+ | `-p/--platform` | 指定AI平台 (yuanbao/kimi/tongyi/openai) |
144
+ | `-m/--model` | 指定模型名称 |
145
+ | `-t/--task` | 指定初始任务 |
146
+
147
+ #### 4. 工作流程
148
+ 1. 初始化环境
149
+ 2. 加载默认配置
150
+ 3. 创建代理实例
151
+ 4. 执行初始任务(如果指定)
152
+ 5. 进入交互式模式(如果没有初始任务)
153
+ 6. 根据用户输入执行任务
154
+
155
+ #### 5. 任务执行特点
156
+ - 自动应用最佳方法论
157
+ - 智能任务分解
158
+ - 多工具协同工作
159
+ - 实时进度反馈
160
+ - 自动生成任务总结
161
+
162
+ #### 6. 示例
163
+ ```bash
164
+ # 基本使用
165
+ jarvis
166
+
167
+ # 指定平台和模型
168
+ jarvis -p yuanbao -m deep_seek_v3
169
+
170
+ # 直接执行任务
171
+ jarvis -t "分析项目结构并生成架构图"
172
+
173
+ # 组合使用
174
+ jarvis -p kimi -m k1 -t "优化项目性能"
175
+ ```
176
+
177
+ ### 代码代理功能 (jarvis-code-agent)
178
+
179
+ `jarvis-code-agent` 是Jarvis的代码分析与修改工具,专注于代码工程任务。
180
+
181
+ #### 1. 核心功能
239
182
  - 代码分析与修改
240
183
  - 代码审查与优化
241
184
  - 自动化git操作
242
185
  - 代码问题诊断与修复
243
186
 
244
- ### 2. 使用方式
187
+ #### 2. 使用方式
245
188
  ```bash
246
189
  # 基本用法
247
190
  jarvis-code-agent
@@ -253,21 +196,21 @@ jca
253
196
  jarvis-code-agent -p <平台> -m <模型> -r "需求描述"
254
197
  ```
255
198
 
256
- ### 3. 命令行参数
199
+ #### 3. 命令行参数
257
200
  | 参数 | 描述 |
258
201
  |------|------|
259
202
  | `-p/--platform` | 指定AI平台 (yuanbao/kimi/tongyi/openai) |
260
203
  | `-m/--model` | 指定模型名称 |
261
204
  | `-r/--requirement` | 直接指定需求描述 |
262
205
 
263
- ### 4. 工作流程
264
- 1. 初始化环境 (查找git根目录,检查未提交修改)
206
+ #### 4. 工作流程
207
+ 1. 初始化环境(查找git根目录,检查未提交修改)
265
208
  2. 分析用户需求
266
209
  3. 执行代码修改
267
210
  4. 自动处理git提交
268
211
  5. 显示修改结果
269
212
 
270
- ### 5. 示例
213
+ #### 5. 示例
271
214
  ```bash
272
215
  # 使用默认平台分析代码
273
216
  jca
@@ -279,21 +222,177 @@ jca -p yuanbao -m deep_seek_v3
279
222
  jca -r "修复src/example.py中的内存泄漏问题"
280
223
  ```
281
224
 
282
- ## 🏗️ 平台管理功能
225
+ ### Git提交功能 (jarvis-git-commit)
226
+
227
+ `jarvis-git-commit` 是Jarvis的自动化git提交工具,能够智能分析代码变更并生成规范的提交信息。
228
+
229
+ #### 1. 核心功能
230
+ - 自动分析git变更
231
+ - 智能生成符合规范的提交信息
232
+ - 支持自定义提交信息前缀和后缀
233
+ - 自动处理大文件差异
234
+ - 支持多行提交信息
235
+
236
+ #### 2. 使用方式
237
+ ```bash
238
+ # 基本用法
239
+ jarvis-git-commit
240
+
241
+ # 或使用快捷命令
242
+ jgc
243
+
244
+ # 带参数使用
245
+ jarvis-git-commit --root-dir <目录> --prefix "前缀" --suffix "后缀"
246
+ ```
247
+
248
+ #### 3. 命令行参数
249
+ | 参数 | 描述 |
250
+ |------|------|
251
+ | `--root-dir` | Git仓库的根目录路径(默认为当前目录) |
252
+ | `--prefix` | 提交信息前缀(可选) |
253
+ | `--suffix` | 提交信息后缀(可选) |
254
+
255
+ #### 4. 提交信息格式
256
+ 提交信息遵循以下格式:
257
+ ```
258
+ <类型>(<范围>): <主题>
259
+
260
+ [可选] 详细描述变更内容和原因
261
+ ```
262
+
263
+ 类型说明:
264
+ - `fix`: 修复bug
265
+ - `feat`: 新功能
266
+ - `docs`: 文档更新
267
+ - `style`: 代码格式修改
268
+ - `refactor`: 代码重构
269
+ - `test`: 测试相关
270
+ - `chore`: 其他修改
271
+
272
+ 默认格式规则(可配置):
273
+ 1. 类型必须使用上述预定义类型
274
+ 2. 范围表示变更的模块或组件(例如:auth, database, ui)
275
+ 3. 主题行不超过72个字符,不以句号结尾,使用祈使语气
276
+ 4. 详细描述部分应解释"是什么"和"为什么",而非"如何"
277
+
278
+ #### 5. 工作流程
279
+ 1. 检查git环境并确认有未提交的更改
280
+ 2. 自动暂存所有更改
281
+ 3. 分析代码差异
282
+ 4. 智能生成提交信息
283
+ 5. 执行git提交
284
+ 6. 显示提交结果
285
+
286
+ #### 6. 示例
287
+ ```bash
288
+ # 基本提交
289
+ jgc
290
+
291
+ # 指定仓库目录
292
+ jgc --root-dir /path/to/repo
293
+
294
+ # 添加提交信息前缀
295
+ jgc --prefix "[紧急修复]"
296
+
297
+ # 添加提交信息后缀
298
+ jgc --suffix "相关issue: #123"
299
+ ```
300
+
301
+ ### 自定义代理功能 (jarvis-agent)
302
+
303
+ `jarvis-agent` 是Jarvis的核心代理工具,提供通用的AI助手功能,支持自定义配置和任务执行。
304
+
305
+ #### 1. 核心功能
306
+ - 通用任务处理
307
+ - 自定义代理配置
308
+ - 多步骤任务规划
309
+ - 子代理任务拆分
310
+ - 交互式任务执行
311
+
312
+ #### 2. 使用方式
313
+ ```bash
314
+ # 基本用法
315
+ jarvis-agent
316
+
317
+ # 带参数使用
318
+ jarvis-agent -f <配置文件> -c <代理定义文件> -t "初始任务"
319
+ ```
320
+
321
+ #### 3. 命令行参数
322
+ | 参数 | 描述 |
323
+ |------|------|
324
+ | `-f/--config` | 指定配置文件路径(可选) |
325
+ | `-c/--agent_definition` | 指定代理定义文件路径(可选) |
326
+ | `-t/--task` | 指定初始任务(可选) |
283
327
 
284
- `jarvis-platform-manager` 提供以下子命令来管理AI平台和模型:
328
+ #### 4. 配置文件格式
329
+ 代理定义文件使用YAML格式:
330
+ ```yaml
331
+ # 代理配置示例
332
+ name: "自定义代理名称"
333
+ system_prompt: "系统提示词"
334
+ auto_complete: false
335
+ need_summary: true
336
+ ```
285
337
 
286
- ### 1. 列出支持的平台和模型
338
+ #### 5. 工作流程
339
+ 1. 初始化环境
340
+ 2. 加载配置文件(如果指定)
341
+ 3. 创建代理实例
342
+ 4. 执行初始任务(如果指定)
343
+ 5. 进入交互式模式(如果没有初始任务)
344
+ 6. 根据用户输入执行任务
345
+
346
+ #### 6. 任务执行特点
347
+ - 支持多行输入
348
+ - 自动任务规划
349
+ - 复杂任务自动拆分子代理
350
+ - 交互式执行过程
351
+ - 任务执行状态反馈
352
+
353
+ #### 7. 示例
287
354
  ```bash
355
+ # 基本使用
356
+ jarvis-agent
357
+
358
+ # 使用配置文件
359
+ jarvis-agent -f ~/.jarvis/config.yaml
360
+
361
+ # 使用代理定义文件
362
+ jarvis-agent -c custom_agent.yaml
363
+
364
+ # 直接执行任务
365
+ jarvis-agent -t "分析项目代码结构并生成文档"
366
+
367
+ # 组合使用
368
+ jarvis-agent -f config.yaml -c agent.yaml -t "优化项目性能"
369
+ ```
370
+
371
+ ### 平台管理功能 (jarvis-platform-manager)
372
+
373
+ `jarvis-platform-manager` 是Jarvis的平台管理工具,用于管理AI平台、模型和提供API服务。
374
+
375
+ #### 1. 核心功能
376
+ - 查看支持的平台和模型
377
+ - 与指定平台和模型进行交互式对话
378
+ - 启动OpenAI兼容的API服务
379
+ - 加载预定义角色进行对话
380
+
381
+ #### 2. 子命令说明
382
+
383
+ ##### 2.1 查看平台信息
384
+ ```bash
385
+ # 显示所有支持的平台和模型
288
386
  jarvis-platform-manager info
289
387
  ```
290
- 显示所有支持的AI平台及其可用模型列表。
291
388
 
292
- ### 2. 与指定平台和模型聊天
389
+ ##### 2.2 交互式对话
293
390
  ```bash
391
+ # 与指定平台和模型对话
294
392
  jarvis-platform-manager chat -p <平台名称> -m <模型名称>
295
393
  ```
296
- 启动交互式聊天会话,支持以下命令:
394
+
395
+ 可用命令:
297
396
  - `/bye` - 退出聊天
298
397
  - `/clear` - 清除当前会话
299
398
  - `/upload <文件路径>` - 上传文件到当前会话
@@ -301,17 +400,25 @@ jarvis-platform-manager chat -p <平台名称> -m <模型名称>
301
400
  - `/save <文件名>` - 保存最后一条消息
302
401
  - `/saveall <文件名>` - 保存完整对话历史
303
402
 
304
- ### 3. 启动OpenAI兼容的API服务
403
+ ##### 2.3 启动API服务
305
404
  ```bash
405
+ # 启动OpenAI兼容的API服务
306
406
  jarvis-platform-manager service --host <IP地址> --port <端口号> -p <平台名称> -m <模型名称>
307
407
  ```
308
- 启动一个兼容OpenAI API的服务,可用于其他应用程序集成。
309
408
 
310
- ### 4. 加载角色配置文件
409
+ 参数说明:
410
+ - `--host`: 服务主机地址(默认:127.0.0.1)
411
+ - `--port`: 服务端口(默认:8000)
412
+ - `-p/--platform`: 指定默认平台
413
+ - `-m/--model`: 指定默认模型
414
+
415
+ ##### 2.4 角色对话
311
416
  ```bash
417
+ # 加载角色配置文件并开始对话
312
418
  jarvis-platform-manager role -c <配置文件路径>
313
419
  ```
314
- 从YAML配置文件加载预定义角色进行对话。配置文件格式示例:
420
+
421
+ 角色配置文件格式(YAML):
315
422
  ```yaml
316
423
  roles:
317
424
  - name: "代码助手"
@@ -326,17 +433,96 @@ roles:
326
433
  system_prompt: "你是一个技术文档撰写专家,擅长将复杂技术概念转化为清晰易懂的文字"
327
434
  ```
328
435
 
436
+ #### 3. 示例
437
+ ```bash
438
+ # 查看支持的平台和模型
439
+ jarvis-platform-manager info
440
+
441
+ # 与元宝平台的deep_seek_v3模型对话
442
+ jarvis-platform-manager chat -p yuanbao -m deep_seek_v3
443
+
444
+ # 启动API服务
445
+ jarvis-platform-manager service --host 0.0.0.0 --port 8080 -p yuanbao -m deep_seek_v3
446
+
447
+ # 使用角色配置文件
448
+ jarvis-platform-manager role -c ~/.jarvis/roles.yaml
449
+ ```
450
+
451
+ ## 🌟 核心功能 <a id="core-features"></a>
329
452
 
330
- ---
453
+ ### 1. 主要特性
454
+ - 🆓 零成本接入:无缝集成腾讯元宝(推荐首选)、Kimi等优质模型,无需支付API费用
455
+ - 🛠️ 工具驱动:内置丰富工具集,涵盖脚本执行、代码开发、网页搜索、终端操作等核心功能
456
+ - 👥 人机协作:支持实时交互,用户可随时介入指导,确保AI行为符合预期
457
+ - 🔌 高度可扩展:支持自定义工具和平台,轻松集成MCP协议
458
+ - 📈 智能进化:内置方法论系统,持续学习优化,越用越智能
459
+
460
+ ### 2. 视频介绍
461
+ [![视频介绍](docs/images/intro.png)](https://player.bilibili.com/player.html?isOutside=true&aid=114306578382907&bvid=BV1x2dAYeEpM&cid=29314583629&p=1)
462
+
463
+ ### 3. 预定义任务
464
+ 您可以创建预定义任务文件来快速执行常用命令:
465
+
466
+ 1. 在`~/.jarvis/pre-command`或当前目录的`.jarvis/pre-command`文件中定义任务
467
+ 2. 使用YAML格式定义任务,例如:
468
+ ```yaml
469
+ build: "构建项目并运行测试"
470
+ deploy: "部署应用到生产环境"
471
+ ```
472
+ 3. 运行`jarvis`命令时会自动加载这些任务并提示选择执行
331
473
 
332
474
  ## ⚙️ 配置说明 <a id="configuration"></a>
333
- ### 配置项
475
+
476
+ ### 1. 平台配置
477
+
478
+ #### 腾讯元宝 (推荐首选)
479
+ ```yaml
480
+ JARVIS_PLATFORM: yuanbao
481
+ JARVIS_MODEL: deep_seek_v3
482
+ JARVIS_THINKING_PLATFORM: yuanbao
483
+ JARVIS_THINKING_MODEL: deep_seek
484
+ ENV:
485
+ YUANBAO_COOKIES: <元宝cookies>
486
+ YUANBAO_AGENT_ID: <元宝AgentID>
487
+ ```
488
+
489
+ #### Kimi
490
+ ```yaml
491
+ JARVIS_PLATFORM: kimi
492
+ JARVIS_MODEL: kimi
493
+ JARVIS_THINKING_PLATFORM: kimi
494
+ JARVIS_THINKING_MODEL: k1
495
+ ENV:
496
+ KIMI_API_KEY: <Kimi API KEY>
497
+ ```
498
+
499
+ #### 通义千问
500
+ ```yaml
501
+ JARVIS_PLATFORM: tongyi
502
+ JARVIS_MODEL: Normal
503
+ JARVIS_THINKING_PLATFORM: tongyi
504
+ JARVIS_THINKING_MODEL: Thinking
505
+ ENV:
506
+ TONGYI_COOKIES: <通义千问cookies>
507
+ ```
508
+
509
+ #### OpenAI
510
+ ```yaml
511
+ JARVIS_PLATFORM: openai
512
+ JARVIS_MODEL: gpt-4o
513
+ JARVIS_THINKING_PLATFORM: openai
514
+ JARVIS_THINKING_MODEL: gpt-4o
515
+ OPENAI_API_KEY: <OpenAI API Key>
516
+ OPENAI_API_BASE: https://api.openai.com/v1
517
+ ```
518
+
519
+ ### 2. 配置项说明
334
520
  | 变量名称 | 默认值 | 说明 |
335
521
  |----------|--------|------|
336
- | `ENV` | {} | 环境变量配置,用于设置系统环境变量 |
522
+ | `ENV` | {} | 环境变量配置 |
337
523
  | `JARVIS_MAX_TOKEN_COUNT` | 960000 | 上下文窗口的最大token数量 |
338
524
  | `JARVIS_MAX_INPUT_TOKEN_COUNT` | 32000 | 输入的最大token数量 |
339
- | `JARVIS_AUTO_COMPLETE` | false | 是否启用自动完成功能(任务判定完成的时候会自动终止) |
525
+ | `JARVIS_AUTO_COMPLETE` | false | 是否启用自动完成功能 |
340
526
  | `JARVIS_SHELL_NAME` | bash | 系统shell名称 |
341
527
  | `JARVIS_PLATFORM` | yuanbao | 默认AI平台 |
342
528
  | `JARVIS_MODEL` | deep_seek_v3 | 默认模型 |
@@ -344,8 +530,8 @@ roles:
344
530
  | `JARVIS_THINKING_MODEL` | JARVIS_MODEL | 推理任务使用的模型 |
345
531
  | `JARVIS_EXECUTE_TOOL_CONFIRM` | false | 执行工具前是否需要确认 |
346
532
  | `JARVIS_CONFIRM_BEFORE_APPLY_PATCH` | true | 应用补丁前是否需要确认 |
347
- | `JARVIS_MAX_TOOL_CALL_COUNT` | 20 | 最大连续工具调用次数,如果是0表示无限制 |
348
- | `JARVIS_AUTO_UPDATE` | true | 是否自动更新Jarvis(仅在以git仓库方式安装时有效) |
533
+ | `JARVIS_MAX_TOOL_CALL_COUNT` | 20 | 最大连续工具调用次数 |
534
+ | `JARVIS_AUTO_UPDATE` | true | 是否自动更新Jarvis |
349
535
  | `JARVIS_MAX_BIG_CONTENT_SIZE` | 160000 | 最大大内容大小 |
350
536
  | `JARVIS_PRETTY_OUTPUT` | false | 是否启用PrettyOutput |
351
537
  | `JARVIS_GIT_COMMIT_PROMPT` | "" | 自定义git提交信息生成提示模板 |
@@ -354,43 +540,30 @@ roles:
354
540
  | `JARVIS_USE_ANALYSIS` | true | 是否启用任务分析功能 |
355
541
  | `JARVIS_DATA_PATH` | ~/.jarvis | Jarvis数据存储目录路径 |
356
542
 
357
- 所有配置编写到`~/.jarvis/config.yaml`文件中即可生效。
358
-
359
- ### 配置文件格式
360
- 配置文件仅支持YAML格式:
361
- ```yaml
362
- JARVIS_PLATFORM: yuanbao
363
- JARVIS_MODEL: deep_seek_v3
364
- ENV:
365
- YUANBAO_COOKIES: "your_cookies_here"
366
- ```
367
-
368
- ---
369
543
  ## 🛠️ 工具说明 <a id="tools"></a>
370
- ### 内置工具
544
+
545
+ ### 1. 内置工具
371
546
  | 工具名称 | 描述 |
372
547
  |----------|------|
373
548
  | ask_user | 交互式用户输入收集 |
374
549
  | chdir | 更改当前工作目录 |
375
- | rewrite_file | 文件重写工具,用于完全重写或创建文件,提供完整的文件内容替换 |
376
- | edit_file | 代码编辑工具,用于精确修改文件内容,支持搜索替换方式编辑 |
377
- | code_plan | 理解需求并制定详细的代码修改计划,在修改前获取用户确认 |
378
- | create_code_agent | 代码开发工具,当需要修改代码时使用 |
379
- | create_sub_agent | 创建子代理以处理特定任务,子代理将生成任务总结报告 |
380
- | execute_script | 执行脚本并返回结果,支持任意解释器。 |
381
- | file_analyzer | 分析文件内容并提取关键信息。支持的文件:文本文件、word文档、pdf文件、图片 |
382
- | file_operation | 文件批量操作工具,可批量读写多个文件,支持文本文件,适用于需要同时处理多个文件的场景(读取配置文件、保存生成内容等) |
383
- | methodology | 方法论管理工具,支持添加、更新和删除操作 |
384
- | read_code | 代码阅读与分析工具,用于读取源代码文件并添加行号,针对代码文件优化,提供更好的格式化输出和行号显示,适用于代码分析、审查和理解代码实现的场景 |
550
+ | rewrite_file | 文件重写工具 |
551
+ | edit_file | 代码编辑工具 |
552
+ | code_plan | 理解需求并制定代码修改计划 |
553
+ | create_code_agent | 代码开发工具 |
554
+ | create_sub_agent | 创建子代理处理特定任务 |
555
+ | execute_script | 执行脚本并返回结果 |
556
+ | file_analyzer | 分析文件内容并提取关键信息 |
557
+ | file_operation | 文件批量操作工具 |
558
+ | methodology | 方法论管理工具 |
559
+ | read_code | 代码阅读与分析工具 |
385
560
  | read_webpage | 读取网页内容并分析 |
386
561
  | search_web | 使用互联网搜索 |
387
- | virtual_tty | 控制虚拟终端执行各种操作,如启动终端、输入命令、获取输出等。 |
562
+ | virtual_tty | 控制虚拟终端执行操作 |
388
563
 
564
+ ### 2. 命令替换功能
565
+ 支持使用特殊标记`'<tag>'`触发命令替换功能:
389
566
 
390
- ### 命令替换功能
391
- Jarvis支持使用特殊标记`'<tag>'`来触发命令替换功能,其中`tag`是预定义的标记名称。系统会自动将这些标记替换为预定义的模板内容。
392
-
393
- #### 内置标记
394
567
  | 标记 | 功能 |
395
568
  |------|------|
396
569
  | `'Summary'` | 总结当前会话并清空历史记录 |
@@ -404,39 +577,28 @@ Jarvis支持使用特殊标记`'<tag>'`来触发命令替换功能,其中`tag`
404
577
  | `'Dev'` | 调用create_code_agent开发需求 |
405
578
  | `'Fix'` | 修复问题 |
406
579
 
407
- #### 自定义替换
408
- 可以通过以下方式配置自定义替换规则:
409
-
410
- **配置文件**:
411
- 在`~/.jarvis/config.yaml`中添加`JARVIS_REPLACE_MAP`配置项:
580
+ ### 3. 自定义替换配置
581
+ 在`~/.jarvis/config.yaml`中添加:
412
582
  ```yaml
413
583
  JARVIS_REPLACE_MAP:
414
584
  tag_name:
415
585
  template: "替换后的内容"
416
586
  description: "标记描述"
417
- append: false # 可选,true表示追加到输入末尾,false表示直接替换
587
+ append: false
418
588
  ```
419
589
 
420
-
421
-
422
- #### 文件路径补全
423
- 在交互式输入中,输入`@`可以触发文件路径补全功能,支持模糊匹配。
424
-
425
-
426
- ### 工具位置
427
- - 内置工具:`src/jarvis/tools/`
428
- - 用户工具:`~/.jarvis/tools/`
429
- ---
430
590
  ## 🛠️ 扩展开发 <a id="extensions"></a>
431
- ### 添加新工具
591
+
592
+ ### 1. 添加新工具
432
593
  在 `~/.jarvis/tools/` 中创建新的 Python 文件:
433
594
  ```python
434
595
  from typing import Dict, Any
435
596
  from jarvis.utils import OutputType, PrettyOutput
597
+
436
598
  class CustomTool:
437
- name = "工具名称" # 调用时使用的工具名称
438
- description = "工具描述" # 工具用途
439
- parameters = { # 参数的 JSON Schema
599
+ name = "工具名称"
600
+ description = "工具描述"
601
+ parameters = {
440
602
  "type": "object",
441
603
  "properties": {
442
604
  "param1": {
@@ -446,22 +608,10 @@ class CustomTool:
446
608
  },
447
609
  "required": ["param1"]
448
610
  }
611
+
449
612
  def execute(self, args: Dict[str, Any]) -> Dict[str, Any]:
450
- """执行工具功能
451
-
452
- 参数:
453
- args: 传递给工具的参数
454
-
455
- 返回:
456
- 包含执行结果的字典:
457
- {
458
- "success": bool,
459
- "stdout": str, # 成功时的输出
460
- "stderr": str, # 可选的错误详情
461
- }
462
- """
463
613
  try:
464
- # 在此实现工具逻辑
614
+ # 实现工具逻辑
465
615
  result = "工具执行结果"
466
616
  return {
467
617
  "success": True,
@@ -476,69 +626,54 @@ class CustomTool:
476
626
  }
477
627
  ```
478
628
 
479
-
480
- ### 添加MCP
481
- MCP(模型上下文协议)支持以下配置方式:
482
-
483
- #### 配置文件
484
- 在`~/.jarvis/config.yaml`中添加`JARVIS_MCP`配置项:
629
+ ### 2. 添加MCP
630
+ 在`~/.jarvis/config.yaml`中添加:
485
631
  ```yaml
486
632
  JARVIS_MCP:
487
633
  - type: stdio # 或 sse/streamable
488
634
  name: MCP名称
489
- command: 可执行命令 # stdio模式必填
490
- base_url: http://example.com/api # sse/streamable模式必填
491
- args: [参数列表] # 可选
492
- env: # 可选环境变量
635
+ command: 可执行命令
636
+ base_url: http://example.com/api
637
+ args: [参数列表]
638
+ env:
493
639
  KEY: VALUE
494
- enable: true # 可选,默认为true
640
+ enable: true
495
641
  ```
496
642
 
497
-
498
-
499
- ### 添加新大模型平台
643
+ ### 3. 添加新大模型平台
500
644
  在 `~/.jarvis/platforms/` 中创建新的 Python 文件:
501
645
  ```python
502
646
  from jarvis.jarvis_platform.base import BasePlatform
647
+
503
648
  class CustomPlatform(BasePlatform):
504
649
  def __init__(self):
505
- # 初始化平台
506
650
  pass
507
651
 
508
652
  def __del__(self):
509
- # 销毁平台
510
653
  pass
511
654
 
512
655
  def chat(self, message: str) -> str:
513
- # 执行对话
514
656
  pass
515
657
 
516
658
  def upload_files(self, file_list: List[str]) -> bool:
517
- # 上传文件
518
659
  pass
519
660
 
520
661
  def delete_chat(self):
521
- # 删除对话
522
662
  pass
523
663
 
524
664
  def set_model_name(self, model_name: str):
525
- # 设置模型名称
526
665
  pass
527
666
 
528
667
  def set_system_prompt(self, message: str):
529
- # 设置系统消息
530
668
  pass
531
669
 
532
670
  def get_model_list(self) -> List[Tuple[str, str]]:
533
- # 获取模型列表
534
671
  pass
535
672
 
536
673
  def name(self) -> str:
537
- # 获取平台名称
538
674
  pass
539
675
  ```
540
676
 
541
-
542
677
  ## 🤝 贡献指南 <a id="contributing"></a>
543
678
  1. Fork 仓库
544
679
  2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
@@ -546,10 +681,7 @@ class CustomPlatform(BasePlatform):
546
681
  4. 推送到分支 (`git push origin feature/AmazingFeature`)
547
682
  5. 开启 Pull Request
548
683
 
549
- ---
550
-
551
684
  ## 📄 许可证 <a id="license"></a>
552
-
553
685
  本项目采用 MIT 许可证 - 详见 [LICENSE](LICENSE) 文件。
554
686
 
555
687
  ---