versionhq 1.1.7.4__tar.gz → 1.1.7.7__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.
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/.gitignore +2 -0
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/PKG-INFO +58 -13
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/README.md +51 -9
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/pyproject.toml +8 -6
- versionhq-1.1.7.7/requirements-dev.txt +9 -0
- versionhq-1.1.7.7/requirements.txt +220 -0
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/__init__.py +1 -1
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/agent/model.py +5 -5
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/clients/workflow/model.py +7 -7
- versionhq-1.1.7.7/src/versionhq/storage/task_output_storage.py +141 -0
- versionhq-1.1.7.7/src/versionhq/task/log_handler.py +59 -0
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/task/model.py +57 -37
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/team/model.py +28 -67
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq.egg-info/PKG-INFO +58 -13
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq.egg-info/SOURCES.txt +4 -0
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq.egg-info/requires.txt +3 -3
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/tests/clients/workflow_test.py +1 -1
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/tests/task/task_test.py +47 -26
- versionhq-1.1.7.7/tests/team/__init__.py +0 -0
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/tests/team/team_test.py +9 -104
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/uv.lock +19 -24
- versionhq-1.1.7.4/requirements.txt +0 -20
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/.github/workflows/publish.yml +0 -0
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/.github/workflows/publish_testpypi.yml +0 -0
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/.github/workflows/run_tests.yml +0 -0
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/.github/workflows/security_check.yml +0 -0
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/.pre-commit-config.yaml +0 -0
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/.python-version +0 -0
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/LICENSE +0 -0
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/SECURITY.md +0 -0
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/db/preprocess.py +0 -0
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/runtime.txt +0 -0
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/setup.cfg +0 -0
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/_utils/__init__.py +0 -0
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/_utils/cache_handler.py +0 -0
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/_utils/i18n.py +0 -0
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/_utils/logger.py +0 -0
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/_utils/process_config.py +0 -0
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/_utils/rpm_controller.py +0 -0
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/_utils/usage_metrics.py +0 -0
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/agent/TEMPLATES/Backstory.py +0 -0
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/agent/TEMPLATES/__init__.py +0 -0
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/agent/__init__.py +0 -0
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/agent/parser.py +0 -0
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/cli/__init__.py +0 -0
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/clients/__init__.py +0 -0
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/clients/customer/__init__.py +0 -0
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/clients/customer/model.py +0 -0
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/clients/product/__init__.py +0 -0
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/clients/product/model.py +0 -0
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/clients/workflow/__init__.py +0 -0
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/llm/__init__.py +0 -0
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/llm/llm_vars.py +0 -0
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/llm/model.py +0 -0
- {versionhq-1.1.7.4/src/versionhq/team → versionhq-1.1.7.7/src/versionhq/storage}/__init__.py +0 -0
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/task/__init__.py +0 -0
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/task/formatter.py +0 -0
- {versionhq-1.1.7.4/src/versionhq/tool → versionhq-1.1.7.7/src/versionhq/team}/__init__.py +0 -0
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/team/team_planner.py +0 -0
- {versionhq-1.1.7.4/tests → versionhq-1.1.7.7/src/versionhq/tool}/__init__.py +0 -0
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/tool/decorator.py +0 -0
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/tool/model.py +0 -0
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/tool/tool_handler.py +0 -0
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq.egg-info/dependency_links.txt +0 -0
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq.egg-info/top_level.txt +0 -0
- {versionhq-1.1.7.4/tests/agent → versionhq-1.1.7.7/tests}/__init__.py +0 -0
- {versionhq-1.1.7.4/tests/cli → versionhq-1.1.7.7/tests/agent}/__init__.py +0 -0
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/tests/agent/agent_test.py +0 -0
- {versionhq-1.1.7.4/tests/task → versionhq-1.1.7.7/tests/cli}/__init__.py +0 -0
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/tests/conftest.py +0 -0
- {versionhq-1.1.7.4/tests/team → versionhq-1.1.7.7/tests/task}/__init__.py +0 -0
- {versionhq-1.1.7.4 → versionhq-1.1.7.7}/tests/team/Prompts/Demo_test.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: versionhq
|
3
|
-
Version: 1.1.7.
|
3
|
+
Version: 1.1.7.7
|
4
4
|
Summary: LLM orchestration frameworks for model-agnostic AI agents that handle complex outbound workflows
|
5
5
|
Author-email: Kuriko Iwai <kuriko@versi0n.io>
|
6
6
|
License: MIT License
|
@@ -32,6 +32,9 @@ Keywords: orchestration framework,orchestration,ai agent,multi-agent system,RAG,
|
|
32
32
|
Classifier: Programming Language :: Python
|
33
33
|
Classifier: License :: OSI Approved :: MIT License
|
34
34
|
Classifier: Operating System :: OS Independent
|
35
|
+
Classifier: Development Status :: 3 - Alpha
|
36
|
+
Classifier: Intended Audience :: Developers
|
37
|
+
Classifier: Topic :: Software Development :: Build Tools
|
35
38
|
Requires-Python: >=3.12
|
36
39
|
Description-Content-Type: text/markdown
|
37
40
|
License-File: LICENSE
|
@@ -43,16 +46,20 @@ Requires-Dist: typing
|
|
43
46
|
Requires-Dist: json-repair>=0.31.0
|
44
47
|
Requires-Dist: litellm>=1.55.8
|
45
48
|
Requires-Dist: openai>=1.57.0
|
46
|
-
Requires-Dist: composio-openai>=0.6.
|
47
|
-
Requires-Dist: pre-commit>=4.0.1
|
48
|
-
Requires-Dist: gunicorn>=23.0.0
|
49
|
+
Requires-Dist: composio-openai>=0.6.9
|
49
50
|
Requires-Dist: composio>=0.1.0
|
50
51
|
Requires-Dist: setuptools>=75.6.0
|
51
52
|
Requires-Dist: wheel>=0.45.1
|
53
|
+
Requires-Dist: python-dotenv>=1.0.0
|
54
|
+
Requires-Dist: appdirs>=1.4.4
|
52
55
|
|
53
56
|
# Overview
|
54
57
|
|
55
|
-

|
58
|
+

|
59
|
+
[](https://github.com/versionHQ/multi-agent-system/actions/workflows/publish.yml)
|
60
|
+

|
61
|
+

|
62
|
+

|
56
63
|
|
57
64
|
|
58
65
|
An LLM orchestration frameworks for multi-agent systems with RAG to autopilot outbound workflows.
|
@@ -64,10 +71,11 @@ Messaging workflows are created at individual level, and will be deployed on thi
|
|
64
71
|
|
65
72
|
**Visit:**
|
66
73
|
|
67
|
-
- [
|
68
|
-
- [
|
69
|
-
- [
|
70
|
-
- [
|
74
|
+
- [PyPI](https://pypi.org/project/versionhq/)
|
75
|
+
- [Github (LLM orchestration)](https://github.com/versionHQ/multi-agent-system)
|
76
|
+
- [Github (Test client app)](https://github.com/versionHQ/test-client-app)
|
77
|
+
- [Use case](https://versi0n.io/) - client app (alpha)
|
78
|
+
|
71
79
|
|
72
80
|
<hr />
|
73
81
|
|
@@ -87,6 +95,8 @@ LLM-powered `agent`s and `team`s use `tool`s and their own knowledge to complete
|
|
87
95
|
|
88
96
|
- [Key Features](#key-features)
|
89
97
|
- [Usage](#usage)
|
98
|
+
- [Case 1. Build an AI agent on LLM of your choice and execute a task:](#case-1-build-an-ai-agent-on-llm-of-your-choice-and-execute-a-task)
|
99
|
+
- [Case 2. Form a team to handle multiple tasks:](#case-2-form-a-team-to-handle-multiple-tasks)
|
90
100
|
- [Technologies Used](#technologies-used)
|
91
101
|
- [Project Structure](#project-structure)
|
92
102
|
- [Setup](#setup)
|
@@ -132,7 +142,8 @@ Multiple `agents` can form a `team` to complete complex tasks together.
|
|
132
142
|
|
133
143
|
2. You can use the `versionhq` module in your Python app.
|
134
144
|
|
135
|
-
|
145
|
+
|
146
|
+
### Case 1. Build an AI agent on LLM of your choice and execute a task:
|
136
147
|
|
137
148
|
```
|
138
149
|
from versionhq.agent.model import Agent
|
@@ -142,6 +153,7 @@ Multiple `agents` can form a `team` to complete complex tasks together.
|
|
142
153
|
role="demo",
|
143
154
|
goal="amazing project goal",
|
144
155
|
skillsets=["skill_1", "skill_2", ],
|
156
|
+
tools=["amazing RAG tool",]
|
145
157
|
llm="llm-of-your-choice"
|
146
158
|
)
|
147
159
|
|
@@ -165,7 +177,41 @@ This will return a dictionary with keys defined in the `ResponseField`.
|
|
165
177
|
{ test1: "answer1", "test2": ["answer2-1", "answer2-2", "answer2-3",] }
|
166
178
|
```
|
167
179
|
|
168
|
-
|
180
|
+
### Case 2. Form a team to handle multiple tasks:
|
181
|
+
|
182
|
+
```
|
183
|
+
from versionhq.agent.model import Agent
|
184
|
+
from versionhq.task.model import Task, ResponseField
|
185
|
+
from versionhq.team.model import Team, TeamMember
|
186
|
+
|
187
|
+
agent_a = Agent(role="agent a", goal="My amazing goals", llm="llm-of-your-choice")
|
188
|
+
agent_b = Agent(role="agent b", goal="My amazing goals", llm="llm-of-your-choice")
|
189
|
+
|
190
|
+
task_1 = Task(
|
191
|
+
description="Analyze the client's business model.",
|
192
|
+
output_field_list=[ResponseField(title="test1", type=str, required=True),],
|
193
|
+
allow_delegation=True
|
194
|
+
)
|
195
|
+
|
196
|
+
task_2 = Task(
|
197
|
+
description="Define the cohort.",
|
198
|
+
output_field_list=[ResponseField(title="test1", type=int, required=True),],
|
199
|
+
allow_delegation=False
|
200
|
+
)
|
201
|
+
|
202
|
+
team = Team(
|
203
|
+
members=[
|
204
|
+
TeamMember(agent=agent_a, is_manager=False, task=task_1),
|
205
|
+
TeamMember(agent=agent_b, is_manager=True, task=task_2),
|
206
|
+
],
|
207
|
+
)
|
208
|
+
res = team.kickoff()
|
209
|
+
```
|
210
|
+
|
211
|
+
This will return a list with dictionaries with keys defined in the `ResponseField` of each task.
|
212
|
+
|
213
|
+
Tasks can be delegated to a team manager, peers in the team, or completely new agent.
|
214
|
+
|
169
215
|
|
170
216
|
<hr />
|
171
217
|
|
@@ -233,8 +279,7 @@ src/
|
|
233
279
|
```
|
234
280
|
uv venv
|
235
281
|
source .venv/bin/activate
|
236
|
-
|
237
|
-
uv pip install -r requirements.txt -v
|
282
|
+
uv pip sync
|
238
283
|
```
|
239
284
|
|
240
285
|
* In case of AssertionError/module mismatch, run Python version control using `.pyenv`
|
@@ -1,6 +1,10 @@
|
|
1
1
|
# Overview
|
2
2
|
|
3
|
-

|
3
|
+

|
4
|
+
[](https://github.com/versionHQ/multi-agent-system/actions/workflows/publish.yml)
|
5
|
+

|
6
|
+

|
7
|
+

|
4
8
|
|
5
9
|
|
6
10
|
An LLM orchestration frameworks for multi-agent systems with RAG to autopilot outbound workflows.
|
@@ -12,10 +16,11 @@ Messaging workflows are created at individual level, and will be deployed on thi
|
|
12
16
|
|
13
17
|
**Visit:**
|
14
18
|
|
15
|
-
- [
|
16
|
-
- [
|
17
|
-
- [
|
18
|
-
- [
|
19
|
+
- [PyPI](https://pypi.org/project/versionhq/)
|
20
|
+
- [Github (LLM orchestration)](https://github.com/versionHQ/multi-agent-system)
|
21
|
+
- [Github (Test client app)](https://github.com/versionHQ/test-client-app)
|
22
|
+
- [Use case](https://versi0n.io/) - client app (alpha)
|
23
|
+
|
19
24
|
|
20
25
|
<hr />
|
21
26
|
|
@@ -35,6 +40,8 @@ LLM-powered `agent`s and `team`s use `tool`s and their own knowledge to complete
|
|
35
40
|
|
36
41
|
- [Key Features](#key-features)
|
37
42
|
- [Usage](#usage)
|
43
|
+
- [Case 1. Build an AI agent on LLM of your choice and execute a task:](#case-1-build-an-ai-agent-on-llm-of-your-choice-and-execute-a-task)
|
44
|
+
- [Case 2. Form a team to handle multiple tasks:](#case-2-form-a-team-to-handle-multiple-tasks)
|
38
45
|
- [Technologies Used](#technologies-used)
|
39
46
|
- [Project Structure](#project-structure)
|
40
47
|
- [Setup](#setup)
|
@@ -80,7 +87,8 @@ Multiple `agents` can form a `team` to complete complex tasks together.
|
|
80
87
|
|
81
88
|
2. You can use the `versionhq` module in your Python app.
|
82
89
|
|
83
|
-
|
90
|
+
|
91
|
+
### Case 1. Build an AI agent on LLM of your choice and execute a task:
|
84
92
|
|
85
93
|
```
|
86
94
|
from versionhq.agent.model import Agent
|
@@ -90,6 +98,7 @@ Multiple `agents` can form a `team` to complete complex tasks together.
|
|
90
98
|
role="demo",
|
91
99
|
goal="amazing project goal",
|
92
100
|
skillsets=["skill_1", "skill_2", ],
|
101
|
+
tools=["amazing RAG tool",]
|
93
102
|
llm="llm-of-your-choice"
|
94
103
|
)
|
95
104
|
|
@@ -113,7 +122,41 @@ This will return a dictionary with keys defined in the `ResponseField`.
|
|
113
122
|
{ test1: "answer1", "test2": ["answer2-1", "answer2-2", "answer2-3",] }
|
114
123
|
```
|
115
124
|
|
116
|
-
|
125
|
+
### Case 2. Form a team to handle multiple tasks:
|
126
|
+
|
127
|
+
```
|
128
|
+
from versionhq.agent.model import Agent
|
129
|
+
from versionhq.task.model import Task, ResponseField
|
130
|
+
from versionhq.team.model import Team, TeamMember
|
131
|
+
|
132
|
+
agent_a = Agent(role="agent a", goal="My amazing goals", llm="llm-of-your-choice")
|
133
|
+
agent_b = Agent(role="agent b", goal="My amazing goals", llm="llm-of-your-choice")
|
134
|
+
|
135
|
+
task_1 = Task(
|
136
|
+
description="Analyze the client's business model.",
|
137
|
+
output_field_list=[ResponseField(title="test1", type=str, required=True),],
|
138
|
+
allow_delegation=True
|
139
|
+
)
|
140
|
+
|
141
|
+
task_2 = Task(
|
142
|
+
description="Define the cohort.",
|
143
|
+
output_field_list=[ResponseField(title="test1", type=int, required=True),],
|
144
|
+
allow_delegation=False
|
145
|
+
)
|
146
|
+
|
147
|
+
team = Team(
|
148
|
+
members=[
|
149
|
+
TeamMember(agent=agent_a, is_manager=False, task=task_1),
|
150
|
+
TeamMember(agent=agent_b, is_manager=True, task=task_2),
|
151
|
+
],
|
152
|
+
)
|
153
|
+
res = team.kickoff()
|
154
|
+
```
|
155
|
+
|
156
|
+
This will return a list with dictionaries with keys defined in the `ResponseField` of each task.
|
157
|
+
|
158
|
+
Tasks can be delegated to a team manager, peers in the team, or completely new agent.
|
159
|
+
|
117
160
|
|
118
161
|
<hr />
|
119
162
|
|
@@ -181,8 +224,7 @@ src/
|
|
181
224
|
```
|
182
225
|
uv venv
|
183
226
|
source .venv/bin/activate
|
184
|
-
|
185
|
-
uv pip install -r requirements.txt -v
|
227
|
+
uv pip sync
|
186
228
|
```
|
187
229
|
|
188
230
|
* In case of AssertionError/module mismatch, run Python version control using `.pyenv`
|
@@ -15,7 +15,7 @@ exclude = ["test*", "__pycache__"]
|
|
15
15
|
|
16
16
|
[project]
|
17
17
|
name = "versionhq"
|
18
|
-
version = "1.1.7.
|
18
|
+
version = "1.1.7.7"
|
19
19
|
authors = [{ name = "Kuriko Iwai", email = "kuriko@versi0n.io" }]
|
20
20
|
description = "LLM orchestration frameworks for model-agnostic AI agents that handle complex outbound workflows"
|
21
21
|
readme = "README.md"
|
@@ -31,17 +31,20 @@ dependencies = [
|
|
31
31
|
"json-repair>=0.31.0",
|
32
32
|
"litellm>=1.55.8",
|
33
33
|
"openai>=1.57.0",
|
34
|
-
"composio-openai>=0.6.
|
35
|
-
"pre-commit>=4.0.1",
|
36
|
-
"gunicorn>=23.0.0",
|
34
|
+
"composio-openai>=0.6.9",
|
37
35
|
"composio>=0.1.0",
|
38
36
|
"setuptools>=75.6.0",
|
39
37
|
"wheel>=0.45.1",
|
38
|
+
"python-dotenv>=1.0.0",
|
39
|
+
"appdirs>=1.4.4",
|
40
40
|
]
|
41
41
|
classifiers = [
|
42
42
|
"Programming Language :: Python",
|
43
43
|
"License :: OSI Approved :: MIT License",
|
44
44
|
"Operating System :: OS Independent",
|
45
|
+
"Development Status :: 3 - Alpha",
|
46
|
+
"Intended Audience :: Developers",
|
47
|
+
"Topic :: Software Development :: Build Tools",
|
45
48
|
]
|
46
49
|
|
47
50
|
[project.urls]
|
@@ -52,10 +55,9 @@ Issues = "https://github.com/versionHQ/multi-agent-system/issues"
|
|
52
55
|
[tool.uv]
|
53
56
|
dev-dependencies = [
|
54
57
|
"mypy>=1.10.0",
|
55
|
-
"pre-commit>=
|
58
|
+
"pre-commit>=4.0.1",
|
56
59
|
"pytest>=8.0.0",
|
57
60
|
"pytest-vcr>=1.0.2",
|
58
|
-
"python-dotenv>=1.0.0",
|
59
61
|
"black",
|
60
62
|
"bandit",
|
61
63
|
"twine",
|
@@ -0,0 +1,220 @@
|
|
1
|
+
# This file was autogenerated by uv via the following command:
|
2
|
+
# uv pip compile pyproject.toml -o requirements.txt
|
3
|
+
aiohappyeyeballs==2.4.4
|
4
|
+
# via aiohttp
|
5
|
+
aiohttp==3.11.11
|
6
|
+
# via
|
7
|
+
# composio-core
|
8
|
+
# litellm
|
9
|
+
aiosignal==1.3.2
|
10
|
+
# via aiohttp
|
11
|
+
annotated-types==0.7.0
|
12
|
+
# via pydantic
|
13
|
+
anyio==4.7.0
|
14
|
+
# via
|
15
|
+
# httpx
|
16
|
+
# openai
|
17
|
+
# starlette
|
18
|
+
appdirs==1.4.4
|
19
|
+
# via versionhq (pyproject.toml)
|
20
|
+
attrs==24.3.0
|
21
|
+
# via
|
22
|
+
# aiohttp
|
23
|
+
# jsonschema
|
24
|
+
# referencing
|
25
|
+
bcrypt==4.2.1
|
26
|
+
# via paramiko
|
27
|
+
certifi==2024.12.14
|
28
|
+
# via
|
29
|
+
# httpcore
|
30
|
+
# httpx
|
31
|
+
# requests
|
32
|
+
# sentry-sdk
|
33
|
+
cffi==1.17.1
|
34
|
+
# via
|
35
|
+
# cryptography
|
36
|
+
# pynacl
|
37
|
+
charset-normalizer==3.4.1
|
38
|
+
# via requests
|
39
|
+
click==8.1.8
|
40
|
+
# via
|
41
|
+
# composio-core
|
42
|
+
# litellm
|
43
|
+
# uvicorn
|
44
|
+
composio==0.1.0
|
45
|
+
# via versionhq (pyproject.toml)
|
46
|
+
composio-core==0.6.9
|
47
|
+
# via composio-openai
|
48
|
+
composio-openai==0.6.9
|
49
|
+
# via versionhq (pyproject.toml)
|
50
|
+
cryptography==44.0.0
|
51
|
+
# via paramiko
|
52
|
+
distro==1.9.0
|
53
|
+
# via openai
|
54
|
+
fastapi==0.115.6
|
55
|
+
# via composio-core
|
56
|
+
filelock==3.16.1
|
57
|
+
# via huggingface-hub
|
58
|
+
frozenlist==1.5.0
|
59
|
+
# via
|
60
|
+
# aiohttp
|
61
|
+
# aiosignal
|
62
|
+
fsspec==2024.12.0
|
63
|
+
# via huggingface-hub
|
64
|
+
h11==0.14.0
|
65
|
+
# via
|
66
|
+
# httpcore
|
67
|
+
# uvicorn
|
68
|
+
httpcore==1.0.7
|
69
|
+
# via httpx
|
70
|
+
httpx==0.27.2
|
71
|
+
# via
|
72
|
+
# litellm
|
73
|
+
# openai
|
74
|
+
huggingface-hub==0.27.0
|
75
|
+
# via tokenizers
|
76
|
+
idna==3.10
|
77
|
+
# via
|
78
|
+
# anyio
|
79
|
+
# httpx
|
80
|
+
# requests
|
81
|
+
# yarl
|
82
|
+
importlib-metadata==8.5.0
|
83
|
+
# via
|
84
|
+
# composio-core
|
85
|
+
# litellm
|
86
|
+
inflection==0.5.1
|
87
|
+
# via composio-core
|
88
|
+
jinja2==3.1.5
|
89
|
+
# via litellm
|
90
|
+
jiter==0.8.2
|
91
|
+
# via openai
|
92
|
+
json-repair==0.35.0
|
93
|
+
# via versionhq (pyproject.toml)
|
94
|
+
jsonref==1.1.0
|
95
|
+
# via composio-core
|
96
|
+
jsonschema==4.23.0
|
97
|
+
# via
|
98
|
+
# composio-core
|
99
|
+
# litellm
|
100
|
+
jsonschema-specifications==2024.10.1
|
101
|
+
# via jsonschema
|
102
|
+
litellm==1.56.5
|
103
|
+
# via versionhq (pyproject.toml)
|
104
|
+
markdown-it-py==3.0.0
|
105
|
+
# via rich
|
106
|
+
markupsafe==3.0.2
|
107
|
+
# via
|
108
|
+
# jinja2
|
109
|
+
# werkzeug
|
110
|
+
mdurl==0.1.2
|
111
|
+
# via markdown-it-py
|
112
|
+
multidict==6.1.0
|
113
|
+
# via
|
114
|
+
# aiohttp
|
115
|
+
# yarl
|
116
|
+
openai==1.58.1
|
117
|
+
# via
|
118
|
+
# versionhq (pyproject.toml)
|
119
|
+
# composio-openai
|
120
|
+
# litellm
|
121
|
+
packaging==24.2
|
122
|
+
# via huggingface-hub
|
123
|
+
paramiko==3.5.0
|
124
|
+
# via composio-core
|
125
|
+
propcache==0.2.1
|
126
|
+
# via
|
127
|
+
# aiohttp
|
128
|
+
# yarl
|
129
|
+
pycparser==2.22
|
130
|
+
# via cffi
|
131
|
+
pydantic==2.10.4
|
132
|
+
# via
|
133
|
+
# versionhq (pyproject.toml)
|
134
|
+
# composio-core
|
135
|
+
# fastapi
|
136
|
+
# litellm
|
137
|
+
# openai
|
138
|
+
pydantic-core==2.27.2
|
139
|
+
# via pydantic
|
140
|
+
pygments==2.18.0
|
141
|
+
# via rich
|
142
|
+
pynacl==1.5.0
|
143
|
+
# via paramiko
|
144
|
+
pyperclip==1.9.0
|
145
|
+
# via composio-core
|
146
|
+
pysher==1.0.8
|
147
|
+
# via composio-core
|
148
|
+
python-dotenv==1.0.1
|
149
|
+
# via
|
150
|
+
# versionhq (pyproject.toml)
|
151
|
+
# litellm
|
152
|
+
pyyaml==6.0.2
|
153
|
+
# via huggingface-hub
|
154
|
+
referencing==0.35.1
|
155
|
+
# via
|
156
|
+
# jsonschema
|
157
|
+
# jsonschema-specifications
|
158
|
+
regex==2024.11.6
|
159
|
+
# via
|
160
|
+
# versionhq (pyproject.toml)
|
161
|
+
# tiktoken
|
162
|
+
requests==2.32.3
|
163
|
+
# via
|
164
|
+
# versionhq (pyproject.toml)
|
165
|
+
# composio-core
|
166
|
+
# huggingface-hub
|
167
|
+
# pysher
|
168
|
+
# tiktoken
|
169
|
+
rich==13.9.4
|
170
|
+
# via composio-core
|
171
|
+
rpds-py==0.22.3
|
172
|
+
# via
|
173
|
+
# jsonschema
|
174
|
+
# referencing
|
175
|
+
semver==3.0.2
|
176
|
+
# via composio-core
|
177
|
+
sentry-sdk==2.19.2
|
178
|
+
# via composio-core
|
179
|
+
setuptools==75.6.0
|
180
|
+
# via versionhq (pyproject.toml)
|
181
|
+
sniffio==1.3.1
|
182
|
+
# via
|
183
|
+
# anyio
|
184
|
+
# httpx
|
185
|
+
# openai
|
186
|
+
starlette==0.41.3
|
187
|
+
# via fastapi
|
188
|
+
tiktoken==0.8.0
|
189
|
+
# via litellm
|
190
|
+
tokenizers==0.21.0
|
191
|
+
# via litellm
|
192
|
+
tqdm==4.67.1
|
193
|
+
# via
|
194
|
+
# huggingface-hub
|
195
|
+
# openai
|
196
|
+
typing==3.10.0.0
|
197
|
+
# via versionhq (pyproject.toml)
|
198
|
+
typing-extensions==4.12.2
|
199
|
+
# via
|
200
|
+
# fastapi
|
201
|
+
# huggingface-hub
|
202
|
+
# openai
|
203
|
+
# pydantic
|
204
|
+
# pydantic-core
|
205
|
+
urllib3==2.3.0
|
206
|
+
# via
|
207
|
+
# requests
|
208
|
+
# sentry-sdk
|
209
|
+
uvicorn==0.34.0
|
210
|
+
# via composio-core
|
211
|
+
websocket-client==1.8.0
|
212
|
+
# via pysher
|
213
|
+
werkzeug==3.1.3
|
214
|
+
# via versionhq (pyproject.toml)
|
215
|
+
wheel==0.45.1
|
216
|
+
# via versionhq (pyproject.toml)
|
217
|
+
yarl==1.18.3
|
218
|
+
# via aiohttp
|
219
|
+
zipp==3.21.0
|
220
|
+
# via importlib-metadata
|
@@ -85,7 +85,7 @@ class Agent(ABC, BaseModel):
|
|
85
85
|
"""
|
86
86
|
|
87
87
|
__hash__ = object.__hash__
|
88
|
-
_logger: Logger = PrivateAttr(default_factory=lambda: Logger(verbose=
|
88
|
+
_logger: Logger = PrivateAttr(default_factory=lambda: Logger(verbose=True))
|
89
89
|
_rpm_controller: Optional[RPMController] = PrivateAttr(default=None)
|
90
90
|
_request_within_rpm_limit: Any = PrivateAttr(default=None)
|
91
91
|
_token_process: TokenProcess = PrivateAttr(default_factory=TokenProcess)
|
@@ -327,7 +327,7 @@ class Agent(ABC, BaseModel):
|
|
327
327
|
messages = []
|
328
328
|
messages.append({"role": "user", "content": prompts}) #! REFINEME
|
329
329
|
messages.append({"role": "assistant", "content": self.backstory})
|
330
|
-
|
330
|
+
self._logger.log(level="info", message=f"Messages sent to the model: {messages}", color="blue")
|
331
331
|
|
332
332
|
callbacks = kwargs.get("callbacks", None)
|
333
333
|
|
@@ -338,7 +338,7 @@ class Agent(ABC, BaseModel):
|
|
338
338
|
callbacks=callbacks,
|
339
339
|
)
|
340
340
|
task_execution_counter += 1
|
341
|
-
|
341
|
+
self._logger.log(level="info", message=f"Agent's first response: {response}", color="blue")
|
342
342
|
|
343
343
|
if (response is None or response == "") and task_execution_counter < self.max_retry_limit:
|
344
344
|
while task_execution_counter <= self.max_retry_limit:
|
@@ -349,10 +349,10 @@ class Agent(ABC, BaseModel):
|
|
349
349
|
callbacks=callbacks,
|
350
350
|
)
|
351
351
|
task_execution_counter += 1
|
352
|
-
|
352
|
+
self._logger.log(level="info", message=f"Agent's next response: {response}", color="blue")
|
353
353
|
|
354
354
|
elif response is None or response == "":
|
355
|
-
|
355
|
+
self._logger.log(level="error", message="Received None or empty response from the model", color="red")
|
356
356
|
raise ValueError("Invalid response from LLM call - None or empty.")
|
357
357
|
|
358
358
|
return {"output": response.output if hasattr(response, "output") else response}
|
@@ -61,21 +61,21 @@ class MessagingComponent(ABC, BaseModel):
|
|
61
61
|
score: Union[float, InstanceOf[Score]] = Field(default=None)
|
62
62
|
|
63
63
|
|
64
|
-
def store_scoring_result(self, scoring_subject: str,
|
64
|
+
def store_scoring_result(self, scoring_subject: str, score_raw: Union[int, Score, ScoreFormat] = None):
|
65
65
|
"""
|
66
66
|
Set up the `score` field
|
67
67
|
"""
|
68
68
|
|
69
|
-
if isinstance(
|
70
|
-
setattr(self, "score",
|
69
|
+
if isinstance(score_raw, Score):
|
70
|
+
setattr(self, "score", score_raw)
|
71
71
|
|
72
|
-
elif isinstance(
|
72
|
+
elif isinstance(score_raw, ScoreFormat):
|
73
73
|
score_instance = Score()
|
74
|
-
setattr(score_instance, scoring_subject,
|
74
|
+
setattr(score_instance, scoring_subject, score_raw)
|
75
75
|
setattr(self, "score", score_instance)
|
76
76
|
|
77
|
-
elif isinstance(
|
78
|
-
score_instance, score_format_instance = Score(), ScoreFormat(rate=
|
77
|
+
elif isinstance(score_raw, int) or isinstance(score_raw, float):
|
78
|
+
score_instance, score_format_instance = Score(), ScoreFormat(rate=score_raw, weight=1)
|
79
79
|
setattr(score_instance, "kwargs", { scoring_subject: score_format_instance })
|
80
80
|
setattr(self, "score", score_instance)
|
81
81
|
|