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.
Files changed (72) hide show
  1. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/.gitignore +2 -0
  2. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/PKG-INFO +58 -13
  3. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/README.md +51 -9
  4. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/pyproject.toml +8 -6
  5. versionhq-1.1.7.7/requirements-dev.txt +9 -0
  6. versionhq-1.1.7.7/requirements.txt +220 -0
  7. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/__init__.py +1 -1
  8. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/agent/model.py +5 -5
  9. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/clients/workflow/model.py +7 -7
  10. versionhq-1.1.7.7/src/versionhq/storage/task_output_storage.py +141 -0
  11. versionhq-1.1.7.7/src/versionhq/task/log_handler.py +59 -0
  12. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/task/model.py +57 -37
  13. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/team/model.py +28 -67
  14. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq.egg-info/PKG-INFO +58 -13
  15. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq.egg-info/SOURCES.txt +4 -0
  16. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq.egg-info/requires.txt +3 -3
  17. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/tests/clients/workflow_test.py +1 -1
  18. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/tests/task/task_test.py +47 -26
  19. versionhq-1.1.7.7/tests/team/__init__.py +0 -0
  20. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/tests/team/team_test.py +9 -104
  21. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/uv.lock +19 -24
  22. versionhq-1.1.7.4/requirements.txt +0 -20
  23. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/.github/workflows/publish.yml +0 -0
  24. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/.github/workflows/publish_testpypi.yml +0 -0
  25. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/.github/workflows/run_tests.yml +0 -0
  26. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/.github/workflows/security_check.yml +0 -0
  27. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/.pre-commit-config.yaml +0 -0
  28. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/.python-version +0 -0
  29. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/LICENSE +0 -0
  30. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/SECURITY.md +0 -0
  31. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/db/preprocess.py +0 -0
  32. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/runtime.txt +0 -0
  33. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/setup.cfg +0 -0
  34. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/_utils/__init__.py +0 -0
  35. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/_utils/cache_handler.py +0 -0
  36. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/_utils/i18n.py +0 -0
  37. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/_utils/logger.py +0 -0
  38. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/_utils/process_config.py +0 -0
  39. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/_utils/rpm_controller.py +0 -0
  40. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/_utils/usage_metrics.py +0 -0
  41. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/agent/TEMPLATES/Backstory.py +0 -0
  42. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/agent/TEMPLATES/__init__.py +0 -0
  43. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/agent/__init__.py +0 -0
  44. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/agent/parser.py +0 -0
  45. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/cli/__init__.py +0 -0
  46. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/clients/__init__.py +0 -0
  47. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/clients/customer/__init__.py +0 -0
  48. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/clients/customer/model.py +0 -0
  49. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/clients/product/__init__.py +0 -0
  50. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/clients/product/model.py +0 -0
  51. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/clients/workflow/__init__.py +0 -0
  52. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/llm/__init__.py +0 -0
  53. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/llm/llm_vars.py +0 -0
  54. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/llm/model.py +0 -0
  55. {versionhq-1.1.7.4/src/versionhq/team → versionhq-1.1.7.7/src/versionhq/storage}/__init__.py +0 -0
  56. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/task/__init__.py +0 -0
  57. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/task/formatter.py +0 -0
  58. {versionhq-1.1.7.4/src/versionhq/tool → versionhq-1.1.7.7/src/versionhq/team}/__init__.py +0 -0
  59. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/team/team_planner.py +0 -0
  60. {versionhq-1.1.7.4/tests → versionhq-1.1.7.7/src/versionhq/tool}/__init__.py +0 -0
  61. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/tool/decorator.py +0 -0
  62. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/tool/model.py +0 -0
  63. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq/tool/tool_handler.py +0 -0
  64. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq.egg-info/dependency_links.txt +0 -0
  65. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/src/versionhq.egg-info/top_level.txt +0 -0
  66. {versionhq-1.1.7.4/tests/agent → versionhq-1.1.7.7/tests}/__init__.py +0 -0
  67. {versionhq-1.1.7.4/tests/cli → versionhq-1.1.7.7/tests/agent}/__init__.py +0 -0
  68. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/tests/agent/agent_test.py +0 -0
  69. {versionhq-1.1.7.4/tests/task → versionhq-1.1.7.7/tests/cli}/__init__.py +0 -0
  70. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/tests/conftest.py +0 -0
  71. {versionhq-1.1.7.4/tests/team → versionhq-1.1.7.7/tests/task}/__init__.py +0 -0
  72. {versionhq-1.1.7.4 → versionhq-1.1.7.7}/tests/team/Prompts/Demo_test.py +0 -0
@@ -1,4 +1,5 @@
1
1
  knowledge/
2
+ memory/
2
3
 
3
4
  composio.py
4
5
  memo.txt
@@ -8,6 +9,7 @@ build/
8
9
  .pypirc
9
10
  uploads/
10
11
  sample_dataset/
12
+ chroma.sqlite3
11
13
  *egg-info/
12
14
 
13
15
  __pycache__/
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: versionhq
3
- Version: 1.1.7.4
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.0
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
- ![MIT license](https://img.shields.io/badge/License-MIT-green) [![Publisher](https://github.com/versionHQ/multi-agent-system/actions/workflows/publish.yml/badge.svg)](https://github.com/versionHQ/multi-agent-system/actions/workflows/publish.yml) ![PyPI](https://img.shields.io/badge/PyPI-v1.1.7.3-blue) ![python ver](https://img.shields.io/badge/Python-3.12/3.13-purple) ![pyenv ver](https://img.shields.io/badge/pyenv-2.4.23-orange)
58
+ ![MIT license](https://img.shields.io/badge/License-MIT-green)
59
+ [![Publisher](https://github.com/versionHQ/multi-agent-system/actions/workflows/publish.yml/badge.svg)](https://github.com/versionHQ/multi-agent-system/actions/workflows/publish.yml)
60
+ ![PyPI](https://img.shields.io/badge/PyPI-v1.1.7.5-blue)
61
+ ![python ver](https://img.shields.io/badge/Python-3.12/3.13-purple)
62
+ ![pyenv ver](https://img.shields.io/badge/pyenv-2.5.0-orange)
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
- - [Landing page](https://home.versi0n.io)
68
- - [Client app](https://versi0n.io/)
69
- - [Orchestration frameworks](https://github.com/versionHQ/multi-agent-system)
70
- - [Test client app](https://github.com/versionHQ/test-client-app)
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
- - **i.e.,** Make LLM-based agent execute the task and return JSON dict.
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
- For more info: [PyPI package](https://pypi.org/project/versionhq/)
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
- ![MIT license](https://img.shields.io/badge/License-MIT-green) [![Publisher](https://github.com/versionHQ/multi-agent-system/actions/workflows/publish.yml/badge.svg)](https://github.com/versionHQ/multi-agent-system/actions/workflows/publish.yml) ![PyPI](https://img.shields.io/badge/PyPI-v1.1.7.3-blue) ![python ver](https://img.shields.io/badge/Python-3.12/3.13-purple) ![pyenv ver](https://img.shields.io/badge/pyenv-2.4.23-orange)
3
+ ![MIT license](https://img.shields.io/badge/License-MIT-green)
4
+ [![Publisher](https://github.com/versionHQ/multi-agent-system/actions/workflows/publish.yml/badge.svg)](https://github.com/versionHQ/multi-agent-system/actions/workflows/publish.yml)
5
+ ![PyPI](https://img.shields.io/badge/PyPI-v1.1.7.5-blue)
6
+ ![python ver](https://img.shields.io/badge/Python-3.12/3.13-purple)
7
+ ![pyenv ver](https://img.shields.io/badge/pyenv-2.5.0-orange)
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
- - [Landing page](https://home.versi0n.io)
16
- - [Client app](https://versi0n.io/)
17
- - [Orchestration frameworks](https://github.com/versionHQ/multi-agent-system)
18
- - [Test client app](https://github.com/versionHQ/test-client-app)
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
- - **i.e.,** Make LLM-based agent execute the task and return JSON dict.
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
- For more info: [PyPI package](https://pypi.org/project/versionhq/)
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.4"
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.0",
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>=3.6.0",
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,9 @@
1
+ mypy>=1.10.0
2
+ pre-commit>=4.0.1
3
+ pytest>=8.0.0
4
+ pytest-vcr>=1.0.2
5
+ python-dotenv>=1.0.0
6
+ black
7
+ bandit
8
+ twine
9
+ pytest>=8.3.4
@@ -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
@@ -17,7 +17,7 @@ from versionhq.team.model import Team, TeamOutput
17
17
  from versionhq.tool.model import Tool
18
18
 
19
19
 
20
- __version__ = "1.1.7.4"
20
+ __version__ = "1.1.7.7"
21
21
  __all__ = [
22
22
  "Agent",
23
23
  "Customer",
@@ -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=False))
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
- print("Messages sent to the model:", messages)
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
- print("Agent's #1 res: ", response)
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
- print(f"Agent's #{task_execution_counter} res: ", response)
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
- print("Received None or empty response from LLM call.")
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, score: Union[int, Score, ScoreFormat] = None):
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(score, Score):
70
- setattr(self, "score", score)
69
+ if isinstance(score_raw, Score):
70
+ setattr(self, "score", score_raw)
71
71
 
72
- elif isinstance(score, ScoreFormat):
72
+ elif isinstance(score_raw, ScoreFormat):
73
73
  score_instance = Score()
74
- setattr(score_instance, scoring_subject, score)
74
+ setattr(score_instance, scoring_subject, score_raw)
75
75
  setattr(self, "score", score_instance)
76
76
 
77
- elif isinstance(score, int) or isinstance(score, float):
78
- score_instance, score_format_instance = Score(), ScoreFormat(rate=score, weight=1)
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