jarvis-ai-assistant 0.1.26__py3-none-any.whl → 0.1.27__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of jarvis-ai-assistant might be problematic. Click here for more details.
- jarvis/__init__.py +1 -1
- jarvis/__pycache__/__init__.cpython-313.pyc +0 -0
- jarvis/__pycache__/agent.cpython-313.pyc +0 -0
- jarvis/agent.py +18 -60
- {jarvis_ai_assistant-0.1.26.dist-info → jarvis_ai_assistant-0.1.27.dist-info}/METADATA +1 -1
- {jarvis_ai_assistant-0.1.26.dist-info → jarvis_ai_assistant-0.1.27.dist-info}/RECORD +10 -10
- {jarvis_ai_assistant-0.1.26.dist-info → jarvis_ai_assistant-0.1.27.dist-info}/LICENSE +0 -0
- {jarvis_ai_assistant-0.1.26.dist-info → jarvis_ai_assistant-0.1.27.dist-info}/WHEEL +0 -0
- {jarvis_ai_assistant-0.1.26.dist-info → jarvis_ai_assistant-0.1.27.dist-info}/entry_points.txt +0 -0
- {jarvis_ai_assistant-0.1.26.dist-info → jarvis_ai_assistant-0.1.27.dist-info}/top_level.txt +0 -0
jarvis/__init__.py
CHANGED
|
Binary file
|
|
Binary file
|
jarvis/agent.py
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import json
|
|
2
2
|
import subprocess
|
|
3
|
+
import time
|
|
3
4
|
from typing import Dict, Any, List, Optional, Tuple
|
|
4
5
|
|
|
5
6
|
import yaml
|
|
@@ -56,13 +57,13 @@ class Agent:
|
|
|
56
57
|
}]
|
|
57
58
|
else:
|
|
58
59
|
PrettyOutput.print("工具调用缺少必要字段", OutputType.ERROR)
|
|
59
|
-
raise
|
|
60
|
+
raise Exception("工具调用缺少必要字段")
|
|
60
61
|
except yaml.YAMLError as e:
|
|
61
62
|
PrettyOutput.print(f"YAML解析错误: {str(e)}", OutputType.ERROR)
|
|
62
|
-
raise
|
|
63
|
+
raise Exception(f"YAML解析错误: {str(e)}")
|
|
63
64
|
except Exception as e:
|
|
64
65
|
PrettyOutput.print(f"处理工具调用时发生错误: {str(e)}", OutputType.ERROR)
|
|
65
|
-
raise
|
|
66
|
+
raise Exception(f"处理工具调用时发生错误: {str(e)}")
|
|
66
67
|
in_tool_call = False
|
|
67
68
|
continue
|
|
68
69
|
|
|
@@ -74,7 +75,13 @@ class Agent:
|
|
|
74
75
|
def _call_model(self, message: str) -> str:
|
|
75
76
|
"""调用模型获取响应"""
|
|
76
77
|
try:
|
|
77
|
-
|
|
78
|
+
while True:
|
|
79
|
+
ret = self.model.chat(message)
|
|
80
|
+
if not ret:
|
|
81
|
+
PrettyOutput.print("模型返回空值,可能负载过重,5s后重试...", OutputType.WARNING)
|
|
82
|
+
time.sleep(5)
|
|
83
|
+
continue
|
|
84
|
+
return ret
|
|
78
85
|
except Exception as e:
|
|
79
86
|
raise Exception(f"{self.name}: 模型调用失败: {str(e)}")
|
|
80
87
|
|
|
@@ -110,24 +117,21 @@ class Agent:
|
|
|
110
117
|
|
|
111
118
|
核心能力:
|
|
112
119
|
1. 使用现有工具完成任务
|
|
113
|
-
2.
|
|
114
|
-
3. 通过 create_sub_agent 创建子代理处理独立任务
|
|
115
|
-
4. 访问和理解网页内容(无需使用工具)
|
|
120
|
+
2. 访问和理解网页内容(无需使用工具)
|
|
116
121
|
5. 遵循 ReAct (思考-行动-观察) 框架
|
|
117
122
|
|
|
118
123
|
工作流程:
|
|
119
124
|
1. 思考
|
|
120
125
|
- 分析需求和可用工具
|
|
121
|
-
-
|
|
122
|
-
-
|
|
126
|
+
- 评估是否能用现有工具完成
|
|
127
|
+
- 考虑是否需要访问网页
|
|
123
128
|
- 规划解决方案
|
|
124
|
-
- 确定是否需要访问网页
|
|
125
129
|
|
|
126
130
|
2. 行动 (如果需要)
|
|
127
|
-
-
|
|
128
|
-
- 创建新工具
|
|
129
|
-
- 创建子代理
|
|
131
|
+
- 优先使用现有工具
|
|
130
132
|
- 访问网页获取信息
|
|
133
|
+
- 创建新工具(成本高,谨慎使用)
|
|
134
|
+
- 创建子代理(成本高,谨慎使用)
|
|
131
135
|
- 询问更多信息
|
|
132
136
|
|
|
133
137
|
3. 观察
|
|
@@ -135,58 +139,12 @@ class Agent:
|
|
|
135
139
|
- 分析反馈
|
|
136
140
|
- 规划下一步
|
|
137
141
|
|
|
138
|
-
网页访问能力:
|
|
139
|
-
- 可以直接访问和阅读网页内容
|
|
140
|
-
- 无需使用额外工具
|
|
141
|
-
- 可以提取和分析网页信息
|
|
142
|
-
- 支持多种网页格式
|
|
143
|
-
- 注意:仅支持公开访问的网页
|
|
144
|
-
|
|
145
|
-
任务拆分建议:
|
|
146
|
-
- 当任务包含多个独立步骤时
|
|
147
|
-
- 当子任务需要独立的上下文时
|
|
148
|
-
- 当子任务有明确的完成目标时
|
|
149
|
-
- 当需要并行处理多个任务时
|
|
150
|
-
|
|
151
|
-
创建子代理时,必须提供尽可能多的上下文信息,以确保其正确工作。
|
|
152
|
-
|
|
153
|
-
创建子代理示例:
|
|
154
|
-
<START_TOOL_CALL>
|
|
155
|
-
name: create_sub_agent
|
|
156
|
-
arguments:
|
|
157
|
-
agent_name: CodeAnalyzer
|
|
158
|
-
task: 分析项目代码质量
|
|
159
|
-
context: |
|
|
160
|
-
这是一个Python项目
|
|
161
|
-
使用了Flask框架
|
|
162
|
-
需要关注性能和安全性
|
|
163
|
-
goal: 生成代码质量分析报告
|
|
164
|
-
<END_TOOL_CALL>
|
|
165
|
-
|
|
166
|
-
创建新工具示例:
|
|
167
|
-
<START_TOOL_CALL>
|
|
168
|
-
name: generate_tool
|
|
169
|
-
arguments:
|
|
170
|
-
tool_name: custom_tool_name
|
|
171
|
-
class_name: CustomToolName
|
|
172
|
-
description: 详细的工具描述
|
|
173
|
-
parameters:
|
|
174
|
-
type: object
|
|
175
|
-
properties:
|
|
176
|
-
param1:
|
|
177
|
-
type: string
|
|
178
|
-
description: 参数1的描述
|
|
179
|
-
required: [param1]
|
|
180
|
-
<END_TOOL_CALL>
|
|
181
|
-
|
|
182
142
|
工具使用格式:
|
|
183
143
|
<START_TOOL_CALL>
|
|
184
144
|
name: tool_name
|
|
185
145
|
arguments:
|
|
186
146
|
param1: value1
|
|
187
|
-
param2:
|
|
188
|
-
multiline
|
|
189
|
-
value
|
|
147
|
+
param2: value2
|
|
190
148
|
<END_TOOL_CALL>
|
|
191
149
|
|
|
192
150
|
严格规则:
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
jarvis/__init__.py,sha256=
|
|
2
|
-
jarvis/agent.py,sha256=
|
|
1
|
+
jarvis/__init__.py,sha256=Fj_UT_4WMGLEY1mjykZXmNgbvAZS2nJ4td9FdLfDzm0,50
|
|
2
|
+
jarvis/agent.py,sha256=xAOckL7bousDnNPGD_4hHGEiXXel5RDSEPE69EazZsM,9012
|
|
3
3
|
jarvis/main.py,sha256=5_8cFOMfHJskLYj4kIP6yRq589Rvn4oPk1yDE0iMNzQ,7806
|
|
4
4
|
jarvis/utils.py,sha256=YuY8zpfD2kgjjJyWcT62OCq3ADuFuqwStqXFTbq16o8,6603
|
|
5
|
-
jarvis/__pycache__/__init__.cpython-313.pyc,sha256=
|
|
6
|
-
jarvis/__pycache__/agent.cpython-313.pyc,sha256=
|
|
5
|
+
jarvis/__pycache__/__init__.cpython-313.pyc,sha256=5U6YTtU4f-ueIzY1qA5oYSr5RGj98HbxmPDSSleZS8c,209
|
|
6
|
+
jarvis/__pycache__/agent.cpython-313.pyc,sha256=Bpi1WRBOY9_Pg9hSph_4AQDDxK_v9RNXpTEInBqTA8I,12016
|
|
7
7
|
jarvis/__pycache__/main.cpython-313.pyc,sha256=jVqTajUJ1gOKj2cyPWB-D5cddFvTMjeRYcKoSCF7Nws,10343
|
|
8
8
|
jarvis/__pycache__/models.cpython-313.pyc,sha256=uWuRIjGrY4YDB3dGW5PGDLWaS03et8g11O725TjY_eU,5960
|
|
9
9
|
jarvis/__pycache__/tools.cpython-313.pyc,sha256=lAD4LrnnWzNZQmHXGfZ_2l7oskOpr2_2OC-gdFhxQY8,33933
|
|
@@ -37,9 +37,9 @@ jarvis/tools/__pycache__/user_confirmation.cpython-313.pyc,sha256=wK3Ev10lHSUSRv
|
|
|
37
37
|
jarvis/tools/__pycache__/user_input.cpython-313.pyc,sha256=JjTFOhObKsKF4Pn8KBRuKfV1_Ssj083fjU7Mfc_5z7c,2531
|
|
38
38
|
jarvis/tools/__pycache__/user_interaction.cpython-313.pyc,sha256=RuVZ-pmiPBDywY3efgXSfohMAciC1avMGPmBK5qlnew,3305
|
|
39
39
|
jarvis/tools/__pycache__/webpage.cpython-313.pyc,sha256=BjzSfnNzsKCrLETCcWjt32lNDLzwnjqcVGg4JfWd9OM,3008
|
|
40
|
-
jarvis_ai_assistant-0.1.
|
|
41
|
-
jarvis_ai_assistant-0.1.
|
|
42
|
-
jarvis_ai_assistant-0.1.
|
|
43
|
-
jarvis_ai_assistant-0.1.
|
|
44
|
-
jarvis_ai_assistant-0.1.
|
|
45
|
-
jarvis_ai_assistant-0.1.
|
|
40
|
+
jarvis_ai_assistant-0.1.27.dist-info/LICENSE,sha256=AGgVgQmTqFvaztRtCAXsAMryUymB18gZif7_l2e1XOg,1063
|
|
41
|
+
jarvis_ai_assistant-0.1.27.dist-info/METADATA,sha256=R5uxbH_zh24BN8xL0W44U-teN8RZeP_tEqyY5-Zhpl4,10193
|
|
42
|
+
jarvis_ai_assistant-0.1.27.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
|
43
|
+
jarvis_ai_assistant-0.1.27.dist-info/entry_points.txt,sha256=iKu7OMfew9dtfGhW71gIMTg4wvafuPqKb4wyQOnMAGU,44
|
|
44
|
+
jarvis_ai_assistant-0.1.27.dist-info/top_level.txt,sha256=1BOxyWfzOP_ZXj8rVTDnNCJ92bBGB0rwq8N1PCpoMIs,7
|
|
45
|
+
jarvis_ai_assistant-0.1.27.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
{jarvis_ai_assistant-0.1.26.dist-info → jarvis_ai_assistant-0.1.27.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|