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