versionhq 1.1.10.6__tar.gz → 1.1.10.8__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.10.6 → versionhq-1.1.10.8}/PKG-INFO +31 -42
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/README.md +30 -41
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/pyproject.toml +1 -1
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/src/versionhq/__init__.py +1 -1
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/src/versionhq.egg-info/PKG-INFO +31 -42
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/tests/task/task_test.py +5 -5
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/.github/workflows/publish.yml +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/.github/workflows/publish_testpypi.yml +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/.github/workflows/run_tests.yml +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/.github/workflows/security_check.yml +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/.gitignore +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/.pre-commit-config.yaml +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/.python-version +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/LICENSE +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/SECURITY.md +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/db/preprocess.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/requirements-dev.txt +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/requirements.txt +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/runtime.txt +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/setup.cfg +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/src/versionhq/_utils/__init__.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/src/versionhq/_utils/i18n.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/src/versionhq/_utils/logger.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/src/versionhq/_utils/process_config.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/src/versionhq/_utils/rpm_controller.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/src/versionhq/_utils/usage_metrics.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/src/versionhq/agent/TEMPLATES/Backstory.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/src/versionhq/agent/TEMPLATES/__init__.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/src/versionhq/agent/__init__.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/src/versionhq/agent/model.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/src/versionhq/agent/parser.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/src/versionhq/cli/__init__.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/src/versionhq/clients/__init__.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/src/versionhq/clients/customer/__init__.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/src/versionhq/clients/customer/model.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/src/versionhq/clients/product/__init__.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/src/versionhq/clients/product/model.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/src/versionhq/clients/workflow/__init__.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/src/versionhq/clients/workflow/model.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/src/versionhq/llm/__init__.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/src/versionhq/llm/llm_vars.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/src/versionhq/llm/model.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/src/versionhq/storage/__init__.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/src/versionhq/storage/task_output_storage.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/src/versionhq/task/__init__.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/src/versionhq/task/formatter.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/src/versionhq/task/log_handler.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/src/versionhq/task/model.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/src/versionhq/task/structured_response.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/src/versionhq/team/__init__.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/src/versionhq/team/model.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/src/versionhq/team/team_planner.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/src/versionhq/tool/__init__.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/src/versionhq/tool/cache_handler.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/src/versionhq/tool/composio_tool.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/src/versionhq/tool/composio_tool_vars.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/src/versionhq/tool/decorator.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/src/versionhq/tool/model.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/src/versionhq/tool/tool_handler.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/src/versionhq.egg-info/SOURCES.txt +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/src/versionhq.egg-info/dependency_links.txt +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/src/versionhq.egg-info/requires.txt +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/src/versionhq.egg-info/top_level.txt +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/tests/__init__.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/tests/agent/__init__.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/tests/agent/agent_test.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/tests/cli/__init__.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/tests/clients/customer_test.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/tests/clients/product_test.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/tests/clients/workflow_test.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/tests/conftest.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/tests/llm/__init__.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/tests/llm/llm_test.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/tests/task/__init__.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/tests/team/Prompts/Demo_test.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/tests/team/__init__.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/tests/team/team_test.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/tests/tool/__init__.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/tests/tool/composio_test.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/tests/tool/tool_test.py +0 -0
- {versionhq-1.1.10.6 → versionhq-1.1.10.8}/uv.lock +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: versionhq
|
3
|
-
Version: 1.1.10.
|
3
|
+
Version: 1.1.10.8
|
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
|
@@ -66,31 +66,16 @@ Requires-Dist: composio-langchain>=0.6.12
|
|
66
66
|

|
67
67
|
|
68
68
|
|
69
|
-
|
70
|
-
|
71
|
-
Agents are model agnostic.
|
72
|
-
|
73
|
-
Messaging workflows are created at individual level, and will be deployed on third-party services via `Composio`.
|
74
|
-
|
69
|
+
LLM orchestration frameworks to deploy multi-agent systems focusing on complex outbound tasks.
|
75
70
|
|
76
71
|
**Visit:**
|
77
72
|
|
78
73
|
- [PyPI](https://pypi.org/project/versionhq/)
|
79
|
-
- [Github (LLM orchestration)](https://github.com/versionHQ/multi-agent-system)
|
80
|
-
- [
|
81
|
-
|
82
|
-
- [
|
83
|
-
|
84
|
-
|
85
|
-
<hr />
|
74
|
+
- [Github (LLM orchestration framework)](https://github.com/versionHQ/multi-agent-system)
|
75
|
+
- [Github (Test client app)](https://github.com/versionHQ/test-client-app)
|
76
|
+
- [Use case](https://versi0n.io/playground) / [Quick demo](https://res.cloudinary.com/dfeirxlea/video/upload/v1737732977/pj_m_home/pnsyh5mfvmilwgt0eusa.mov)
|
77
|
+
- [Documentation](https://chief-oxygen-8a2.notion.site/Documentation-17e923685cf98001a5fad5c4b2acd79b?pvs=4) *Some components are under review.
|
86
78
|
|
87
|
-
## Mindmap
|
88
|
-
|
89
|
-
LLM-powered `agent`s and `team`s use `tool`s and their own knowledge to complete the `task` given by the client or the system.
|
90
|
-
|
91
|
-
<p align="center">
|
92
|
-
<img src="https://res.cloudinary.com/dfeirxlea/image/upload/v1733556715/pj_m_home/urwte15at3h0dr8mdlyo.png" alt="mindmap" width="400">
|
93
|
-
</p>
|
94
79
|
|
95
80
|
<hr />
|
96
81
|
|
@@ -99,9 +84,11 @@ LLM-powered `agent`s and `team`s use `tool`s and their own knowledge to complete
|
|
99
84
|
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
|
100
85
|
|
101
86
|
- [Key Features](#key-features)
|
102
|
-
- [
|
103
|
-
|
104
|
-
- [Case
|
87
|
+
- [Agent formation](#agent-formation)
|
88
|
+
- [Quick Start](#quick-start)
|
89
|
+
- [Case 1. Solo Agent:](#case-1-solo-agent)
|
90
|
+
- [Return a structured output with a summary in string.](#return-a-structured-output-with-a-summary-in-string)
|
91
|
+
- [Case 2. Supervising:](#case-2-supervising)
|
105
92
|
- [Technologies Used](#technologies-used)
|
106
93
|
- [Project Structure](#project-structure)
|
107
94
|
- [Setup](#setup)
|
@@ -119,36 +106,39 @@ LLM-powered `agent`s and `team`s use `tool`s and their own knowledge to complete
|
|
119
106
|
|
120
107
|
## Key Features
|
121
108
|
|
122
|
-
|
109
|
+
Generate mulit-agent systems depending on the complexity of the task, and execute the task with agents of choice.
|
110
|
+
|
111
|
+
Model-agnostic agents can handle RAG tools, tools, callbacks, and knowledge sharing among other agents.
|
123
112
|
|
124
|
-
The `agent` is model agnostic. The default model is set Chat GTP 4o. We ask the client their preference and switch it accordingly using llm variable stored in the `BaseAgent` class.
|
125
113
|
|
126
|
-
|
114
|
+
### Agent formation
|
115
|
+
Depending on the task complexity, agents can make a different formation.
|
127
116
|
|
128
|
-
|
129
|
-
- Professional `agents` handle the analysis `tasks` on each client, customer, and product.
|
117
|
+
You can specify which formation you want them to generate, or let the agent decide if you don’t have a clear plan.
|
130
118
|
|
131
|
-
**2. Messaging Workflow Creation**
|
132
|
-
- Several `teams` receive the analysis and design initial messaging workflow with several layers.
|
133
|
-
- Ask the client for their inputs
|
134
|
-
- Deploy the workflow on the third party tools using `composio`.
|
135
119
|
|
136
|
-
**
|
137
|
-
|
120
|
+
| | **Solo Agent** | **Supervising** | **Network** | **Random** |
|
121
|
+
| :--- | :--- | :--- | :--- | :--- |
|
122
|
+
| **Formation** | <img src="https://res.cloudinary.com/dfeirxlea/image/upload/v1737893140/pj_m_agents/tglrxoiuv7kk7nzvpe1z.jpg" alt="solo" width="200"> | <img src="https://res.cloudinary.com/dfeirxlea/image/upload/v1737893141/pj_m_agents/hxngdvnn5b5qdxo0ayl5.jpg" alt="solo" width="200"> | <img src="https://res.cloudinary.com/dfeirxlea/image/upload/v1737893142/pj_m_agents/kyc6neg8m6keyizszcpi.jpg" alt="solo" width="200"> | <img src="https://res.cloudinary.com/dfeirxlea/image/upload/v1737893139/pj_m_agents/hzpchlcpnpwxwaapu1hr.jpg" alt="solo" width="200"> |
|
123
|
+
| **Usage** | <ul><li>A single agent with tools, knowledge, and memory.</li><li>When self-learning mode is on - it will turn into **Random** formation.</li></ul> | <ul><li>Leader agent gives directions, while sharing its knowledge and memory.</li><li>Subordinates can be solo agents or networks.</li></ul> | <ul><li>Share tasks, knowledge, and memory among network members.</li></ul> | <ul><li>A single agent handles tasks, asking help from other agents without sharing its memory or knowledge.</li></ul> |
|
124
|
+
| **Use case** | An email agent drafts promo message for the given audience. | The leader agent strategizes an outbound campaign plan and assigns components such as media mix or message creation to subordinate agents. | An email agent and social media agent share the product knowledge and deploy multi-channel outbound campaign. | 1. An email agent drafts promo message for the given audience, asking insights on tones from other email agents which oversee other clusters. 2. An agent calls the external agent to deploy the campaign. |
|
138
125
|
|
139
126
|
<hr />
|
140
127
|
|
141
|
-
##
|
128
|
+
## Quick Start
|
129
|
+
|
130
|
+
**Install `versionhq` package:**
|
142
131
|
|
143
|
-
1. Install `versionhq` package:
|
144
132
|
```
|
145
133
|
pip install versionhq
|
146
134
|
```
|
147
135
|
|
148
|
-
|
136
|
+
(Python >= 3.13)
|
137
|
+
|
149
138
|
|
139
|
+
### Case 1. Solo Agent:
|
150
140
|
|
151
|
-
|
141
|
+
#### Return a structured output with a summary in string.
|
152
142
|
|
153
143
|
```
|
154
144
|
from pydantic import BaseModel
|
@@ -176,7 +166,7 @@ Multiple `agents` can form a `team` to complete complex tasks together.
|
|
176
166
|
print(res)
|
177
167
|
```
|
178
168
|
|
179
|
-
This will return
|
169
|
+
This will return `TaskOutput` that stores a response in string, JSON dict, and Pydantic model: `CustomOutput` formats with a callback result.
|
180
170
|
|
181
171
|
```
|
182
172
|
res == TaskOutput(
|
@@ -187,7 +177,7 @@ This will return a `TaskOutput` instance with response in raw, JSON dict, and Py
|
|
187
177
|
)
|
188
178
|
```
|
189
179
|
|
190
|
-
### Case 2.
|
180
|
+
### Case 2. Supervising:
|
191
181
|
|
192
182
|
```
|
193
183
|
from versionhq.agent.model import Agent
|
@@ -222,7 +212,6 @@ This will return a list with dictionaries with keys defined in the `ResponseFiel
|
|
222
212
|
|
223
213
|
Tasks can be delegated to a team manager, peers in the team, or completely new agent.
|
224
214
|
|
225
|
-
|
226
215
|
<hr />
|
227
216
|
|
228
217
|
## Technologies Used
|
@@ -7,31 +7,16 @@
|
|
7
7
|

|
8
8
|
|
9
9
|
|
10
|
-
|
11
|
-
|
12
|
-
Agents are model agnostic.
|
13
|
-
|
14
|
-
Messaging workflows are created at individual level, and will be deployed on third-party services via `Composio`.
|
15
|
-
|
10
|
+
LLM orchestration frameworks to deploy multi-agent systems focusing on complex outbound tasks.
|
16
11
|
|
17
12
|
**Visit:**
|
18
13
|
|
19
14
|
- [PyPI](https://pypi.org/project/versionhq/)
|
20
|
-
- [Github (LLM orchestration)](https://github.com/versionHQ/multi-agent-system)
|
21
|
-
- [
|
22
|
-
|
23
|
-
- [
|
24
|
-
|
25
|
-
|
26
|
-
<hr />
|
15
|
+
- [Github (LLM orchestration framework)](https://github.com/versionHQ/multi-agent-system)
|
16
|
+
- [Github (Test client app)](https://github.com/versionHQ/test-client-app)
|
17
|
+
- [Use case](https://versi0n.io/playground) / [Quick demo](https://res.cloudinary.com/dfeirxlea/video/upload/v1737732977/pj_m_home/pnsyh5mfvmilwgt0eusa.mov)
|
18
|
+
- [Documentation](https://chief-oxygen-8a2.notion.site/Documentation-17e923685cf98001a5fad5c4b2acd79b?pvs=4) *Some components are under review.
|
27
19
|
|
28
|
-
## Mindmap
|
29
|
-
|
30
|
-
LLM-powered `agent`s and `team`s use `tool`s and their own knowledge to complete the `task` given by the client or the system.
|
31
|
-
|
32
|
-
<p align="center">
|
33
|
-
<img src="https://res.cloudinary.com/dfeirxlea/image/upload/v1733556715/pj_m_home/urwte15at3h0dr8mdlyo.png" alt="mindmap" width="400">
|
34
|
-
</p>
|
35
20
|
|
36
21
|
<hr />
|
37
22
|
|
@@ -40,9 +25,11 @@ LLM-powered `agent`s and `team`s use `tool`s and their own knowledge to complete
|
|
40
25
|
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
|
41
26
|
|
42
27
|
- [Key Features](#key-features)
|
43
|
-
- [
|
44
|
-
|
45
|
-
- [Case
|
28
|
+
- [Agent formation](#agent-formation)
|
29
|
+
- [Quick Start](#quick-start)
|
30
|
+
- [Case 1. Solo Agent:](#case-1-solo-agent)
|
31
|
+
- [Return a structured output with a summary in string.](#return-a-structured-output-with-a-summary-in-string)
|
32
|
+
- [Case 2. Supervising:](#case-2-supervising)
|
46
33
|
- [Technologies Used](#technologies-used)
|
47
34
|
- [Project Structure](#project-structure)
|
48
35
|
- [Setup](#setup)
|
@@ -60,36 +47,39 @@ LLM-powered `agent`s and `team`s use `tool`s and their own knowledge to complete
|
|
60
47
|
|
61
48
|
## Key Features
|
62
49
|
|
63
|
-
|
50
|
+
Generate mulit-agent systems depending on the complexity of the task, and execute the task with agents of choice.
|
51
|
+
|
52
|
+
Model-agnostic agents can handle RAG tools, tools, callbacks, and knowledge sharing among other agents.
|
64
53
|
|
65
|
-
The `agent` is model agnostic. The default model is set Chat GTP 4o. We ask the client their preference and switch it accordingly using llm variable stored in the `BaseAgent` class.
|
66
54
|
|
67
|
-
|
55
|
+
### Agent formation
|
56
|
+
Depending on the task complexity, agents can make a different formation.
|
68
57
|
|
69
|
-
|
70
|
-
- Professional `agents` handle the analysis `tasks` on each client, customer, and product.
|
58
|
+
You can specify which formation you want them to generate, or let the agent decide if you don’t have a clear plan.
|
71
59
|
|
72
|
-
**2. Messaging Workflow Creation**
|
73
|
-
- Several `teams` receive the analysis and design initial messaging workflow with several layers.
|
74
|
-
- Ask the client for their inputs
|
75
|
-
- Deploy the workflow on the third party tools using `composio`.
|
76
60
|
|
77
|
-
**
|
78
|
-
|
61
|
+
| | **Solo Agent** | **Supervising** | **Network** | **Random** |
|
62
|
+
| :--- | :--- | :--- | :--- | :--- |
|
63
|
+
| **Formation** | <img src="https://res.cloudinary.com/dfeirxlea/image/upload/v1737893140/pj_m_agents/tglrxoiuv7kk7nzvpe1z.jpg" alt="solo" width="200"> | <img src="https://res.cloudinary.com/dfeirxlea/image/upload/v1737893141/pj_m_agents/hxngdvnn5b5qdxo0ayl5.jpg" alt="solo" width="200"> | <img src="https://res.cloudinary.com/dfeirxlea/image/upload/v1737893142/pj_m_agents/kyc6neg8m6keyizszcpi.jpg" alt="solo" width="200"> | <img src="https://res.cloudinary.com/dfeirxlea/image/upload/v1737893139/pj_m_agents/hzpchlcpnpwxwaapu1hr.jpg" alt="solo" width="200"> |
|
64
|
+
| **Usage** | <ul><li>A single agent with tools, knowledge, and memory.</li><li>When self-learning mode is on - it will turn into **Random** formation.</li></ul> | <ul><li>Leader agent gives directions, while sharing its knowledge and memory.</li><li>Subordinates can be solo agents or networks.</li></ul> | <ul><li>Share tasks, knowledge, and memory among network members.</li></ul> | <ul><li>A single agent handles tasks, asking help from other agents without sharing its memory or knowledge.</li></ul> |
|
65
|
+
| **Use case** | An email agent drafts promo message for the given audience. | The leader agent strategizes an outbound campaign plan and assigns components such as media mix or message creation to subordinate agents. | An email agent and social media agent share the product knowledge and deploy multi-channel outbound campaign. | 1. An email agent drafts promo message for the given audience, asking insights on tones from other email agents which oversee other clusters. 2. An agent calls the external agent to deploy the campaign. |
|
79
66
|
|
80
67
|
<hr />
|
81
68
|
|
82
|
-
##
|
69
|
+
## Quick Start
|
70
|
+
|
71
|
+
**Install `versionhq` package:**
|
83
72
|
|
84
|
-
1. Install `versionhq` package:
|
85
73
|
```
|
86
74
|
pip install versionhq
|
87
75
|
```
|
88
76
|
|
89
|
-
|
77
|
+
(Python >= 3.13)
|
78
|
+
|
90
79
|
|
80
|
+
### Case 1. Solo Agent:
|
91
81
|
|
92
|
-
|
82
|
+
#### Return a structured output with a summary in string.
|
93
83
|
|
94
84
|
```
|
95
85
|
from pydantic import BaseModel
|
@@ -117,7 +107,7 @@ Multiple `agents` can form a `team` to complete complex tasks together.
|
|
117
107
|
print(res)
|
118
108
|
```
|
119
109
|
|
120
|
-
This will return
|
110
|
+
This will return `TaskOutput` that stores a response in string, JSON dict, and Pydantic model: `CustomOutput` formats with a callback result.
|
121
111
|
|
122
112
|
```
|
123
113
|
res == TaskOutput(
|
@@ -128,7 +118,7 @@ This will return a `TaskOutput` instance with response in raw, JSON dict, and Py
|
|
128
118
|
)
|
129
119
|
```
|
130
120
|
|
131
|
-
### Case 2.
|
121
|
+
### Case 2. Supervising:
|
132
122
|
|
133
123
|
```
|
134
124
|
from versionhq.agent.model import Agent
|
@@ -163,7 +153,6 @@ This will return a list with dictionaries with keys defined in the `ResponseFiel
|
|
163
153
|
|
164
154
|
Tasks can be delegated to a team manager, peers in the team, or completely new agent.
|
165
155
|
|
166
|
-
|
167
156
|
<hr />
|
168
157
|
|
169
158
|
## Technologies Used
|
@@ -15,7 +15,7 @@ exclude = ["test*", "__pycache__"]
|
|
15
15
|
|
16
16
|
[project]
|
17
17
|
name = "versionhq"
|
18
|
-
version = "1.1.10.
|
18
|
+
version = "1.1.10.8"
|
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"
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: versionhq
|
3
|
-
Version: 1.1.10.
|
3
|
+
Version: 1.1.10.8
|
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
|
@@ -66,31 +66,16 @@ Requires-Dist: composio-langchain>=0.6.12
|
|
66
66
|

|
67
67
|
|
68
68
|
|
69
|
-
|
70
|
-
|
71
|
-
Agents are model agnostic.
|
72
|
-
|
73
|
-
Messaging workflows are created at individual level, and will be deployed on third-party services via `Composio`.
|
74
|
-
|
69
|
+
LLM orchestration frameworks to deploy multi-agent systems focusing on complex outbound tasks.
|
75
70
|
|
76
71
|
**Visit:**
|
77
72
|
|
78
73
|
- [PyPI](https://pypi.org/project/versionhq/)
|
79
|
-
- [Github (LLM orchestration)](https://github.com/versionHQ/multi-agent-system)
|
80
|
-
- [
|
81
|
-
|
82
|
-
- [
|
83
|
-
|
84
|
-
|
85
|
-
<hr />
|
74
|
+
- [Github (LLM orchestration framework)](https://github.com/versionHQ/multi-agent-system)
|
75
|
+
- [Github (Test client app)](https://github.com/versionHQ/test-client-app)
|
76
|
+
- [Use case](https://versi0n.io/playground) / [Quick demo](https://res.cloudinary.com/dfeirxlea/video/upload/v1737732977/pj_m_home/pnsyh5mfvmilwgt0eusa.mov)
|
77
|
+
- [Documentation](https://chief-oxygen-8a2.notion.site/Documentation-17e923685cf98001a5fad5c4b2acd79b?pvs=4) *Some components are under review.
|
86
78
|
|
87
|
-
## Mindmap
|
88
|
-
|
89
|
-
LLM-powered `agent`s and `team`s use `tool`s and their own knowledge to complete the `task` given by the client or the system.
|
90
|
-
|
91
|
-
<p align="center">
|
92
|
-
<img src="https://res.cloudinary.com/dfeirxlea/image/upload/v1733556715/pj_m_home/urwte15at3h0dr8mdlyo.png" alt="mindmap" width="400">
|
93
|
-
</p>
|
94
79
|
|
95
80
|
<hr />
|
96
81
|
|
@@ -99,9 +84,11 @@ LLM-powered `agent`s and `team`s use `tool`s and their own knowledge to complete
|
|
99
84
|
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
|
100
85
|
|
101
86
|
- [Key Features](#key-features)
|
102
|
-
- [
|
103
|
-
|
104
|
-
- [Case
|
87
|
+
- [Agent formation](#agent-formation)
|
88
|
+
- [Quick Start](#quick-start)
|
89
|
+
- [Case 1. Solo Agent:](#case-1-solo-agent)
|
90
|
+
- [Return a structured output with a summary in string.](#return-a-structured-output-with-a-summary-in-string)
|
91
|
+
- [Case 2. Supervising:](#case-2-supervising)
|
105
92
|
- [Technologies Used](#technologies-used)
|
106
93
|
- [Project Structure](#project-structure)
|
107
94
|
- [Setup](#setup)
|
@@ -119,36 +106,39 @@ LLM-powered `agent`s and `team`s use `tool`s and their own knowledge to complete
|
|
119
106
|
|
120
107
|
## Key Features
|
121
108
|
|
122
|
-
|
109
|
+
Generate mulit-agent systems depending on the complexity of the task, and execute the task with agents of choice.
|
110
|
+
|
111
|
+
Model-agnostic agents can handle RAG tools, tools, callbacks, and knowledge sharing among other agents.
|
123
112
|
|
124
|
-
The `agent` is model agnostic. The default model is set Chat GTP 4o. We ask the client their preference and switch it accordingly using llm variable stored in the `BaseAgent` class.
|
125
113
|
|
126
|
-
|
114
|
+
### Agent formation
|
115
|
+
Depending on the task complexity, agents can make a different formation.
|
127
116
|
|
128
|
-
|
129
|
-
- Professional `agents` handle the analysis `tasks` on each client, customer, and product.
|
117
|
+
You can specify which formation you want them to generate, or let the agent decide if you don’t have a clear plan.
|
130
118
|
|
131
|
-
**2. Messaging Workflow Creation**
|
132
|
-
- Several `teams` receive the analysis and design initial messaging workflow with several layers.
|
133
|
-
- Ask the client for their inputs
|
134
|
-
- Deploy the workflow on the third party tools using `composio`.
|
135
119
|
|
136
|
-
**
|
137
|
-
|
120
|
+
| | **Solo Agent** | **Supervising** | **Network** | **Random** |
|
121
|
+
| :--- | :--- | :--- | :--- | :--- |
|
122
|
+
| **Formation** | <img src="https://res.cloudinary.com/dfeirxlea/image/upload/v1737893140/pj_m_agents/tglrxoiuv7kk7nzvpe1z.jpg" alt="solo" width="200"> | <img src="https://res.cloudinary.com/dfeirxlea/image/upload/v1737893141/pj_m_agents/hxngdvnn5b5qdxo0ayl5.jpg" alt="solo" width="200"> | <img src="https://res.cloudinary.com/dfeirxlea/image/upload/v1737893142/pj_m_agents/kyc6neg8m6keyizszcpi.jpg" alt="solo" width="200"> | <img src="https://res.cloudinary.com/dfeirxlea/image/upload/v1737893139/pj_m_agents/hzpchlcpnpwxwaapu1hr.jpg" alt="solo" width="200"> |
|
123
|
+
| **Usage** | <ul><li>A single agent with tools, knowledge, and memory.</li><li>When self-learning mode is on - it will turn into **Random** formation.</li></ul> | <ul><li>Leader agent gives directions, while sharing its knowledge and memory.</li><li>Subordinates can be solo agents or networks.</li></ul> | <ul><li>Share tasks, knowledge, and memory among network members.</li></ul> | <ul><li>A single agent handles tasks, asking help from other agents without sharing its memory or knowledge.</li></ul> |
|
124
|
+
| **Use case** | An email agent drafts promo message for the given audience. | The leader agent strategizes an outbound campaign plan and assigns components such as media mix or message creation to subordinate agents. | An email agent and social media agent share the product knowledge and deploy multi-channel outbound campaign. | 1. An email agent drafts promo message for the given audience, asking insights on tones from other email agents which oversee other clusters. 2. An agent calls the external agent to deploy the campaign. |
|
138
125
|
|
139
126
|
<hr />
|
140
127
|
|
141
|
-
##
|
128
|
+
## Quick Start
|
129
|
+
|
130
|
+
**Install `versionhq` package:**
|
142
131
|
|
143
|
-
1. Install `versionhq` package:
|
144
132
|
```
|
145
133
|
pip install versionhq
|
146
134
|
```
|
147
135
|
|
148
|
-
|
136
|
+
(Python >= 3.13)
|
137
|
+
|
149
138
|
|
139
|
+
### Case 1. Solo Agent:
|
150
140
|
|
151
|
-
|
141
|
+
#### Return a structured output with a summary in string.
|
152
142
|
|
153
143
|
```
|
154
144
|
from pydantic import BaseModel
|
@@ -176,7 +166,7 @@ Multiple `agents` can form a `team` to complete complex tasks together.
|
|
176
166
|
print(res)
|
177
167
|
```
|
178
168
|
|
179
|
-
This will return
|
169
|
+
This will return `TaskOutput` that stores a response in string, JSON dict, and Pydantic model: `CustomOutput` formats with a callback result.
|
180
170
|
|
181
171
|
```
|
182
172
|
res == TaskOutput(
|
@@ -187,7 +177,7 @@ This will return a `TaskOutput` instance with response in raw, JSON dict, and Py
|
|
187
177
|
)
|
188
178
|
```
|
189
179
|
|
190
|
-
### Case 2.
|
180
|
+
### Case 2. Supervising:
|
191
181
|
|
192
182
|
```
|
193
183
|
from versionhq.agent.model import Agent
|
@@ -222,7 +212,6 @@ This will return a list with dictionaries with keys defined in the `ResponseFiel
|
|
222
212
|
|
223
213
|
Tasks can be delegated to a team manager, peers in the team, or completely new agent.
|
224
214
|
|
225
|
-
|
226
215
|
<hr />
|
227
216
|
|
228
217
|
## Technologies Used
|
@@ -126,8 +126,6 @@ def test_callback():
|
|
126
126
|
def callback_func(kwargs: Dict[str, Any]):
|
127
127
|
task_id = kwargs.get("task_id", None)
|
128
128
|
added_condition = kwargs.get("added_condition", None)
|
129
|
-
assert task_id is not None
|
130
|
-
assert added_condition is not None
|
131
129
|
return f"Result: {task_id}, condition added: {added_condition}"
|
132
130
|
|
133
131
|
task = Task(
|
@@ -140,10 +138,9 @@ def test_callback():
|
|
140
138
|
)
|
141
139
|
res = task.execute_sync(agent=base_agent)
|
142
140
|
|
143
|
-
assert res
|
144
|
-
assert isinstance(res, TaskOutput)
|
141
|
+
assert res and isinstance(res, TaskOutput)
|
145
142
|
assert res.task_id is task.id
|
146
|
-
assert
|
143
|
+
assert "demo for pytest" in res.callback_output
|
147
144
|
|
148
145
|
|
149
146
|
def test_delegate():
|
@@ -303,6 +300,8 @@ def test_callback():
|
|
303
300
|
|
304
301
|
|
305
302
|
def test_task_with_agent_callback():
|
303
|
+
import litellm
|
304
|
+
|
306
305
|
def dummy_func(*args, **kwargs) -> str:
|
307
306
|
return "Demo func"
|
308
307
|
|
@@ -311,6 +310,7 @@ def test_task_with_agent_callback():
|
|
311
310
|
res = task.execute_sync(agent=agent)
|
312
311
|
|
313
312
|
assert res.raw and res.task_id == task.id
|
313
|
+
assert litellm.callbacks == [dummy_func]
|
314
314
|
|
315
315
|
# task - maxit, loop, rpm
|
316
316
|
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|