versionhq 1.1.6.3__tar.gz → 1.1.7.0__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.6.3 → versionhq-1.1.7.0}/.github/workflows/publish.yml +2 -3
- versionhq-1.1.7.0/.github/workflows/run_tests.yml +34 -0
- {versionhq-1.1.6.3 → versionhq-1.1.7.0}/.gitignore +8 -5
- {versionhq-1.1.6.3 → versionhq-1.1.7.0}/.pre-commit-config.yaml +1 -1
- {versionhq-1.1.6.3 → versionhq-1.1.7.0}/PKG-INFO +67 -45
- {versionhq-1.1.6.3 → versionhq-1.1.7.0}/README.md +66 -44
- {versionhq-1.1.6.3 → versionhq-1.1.7.0}/pyproject.toml +7 -8
- {versionhq-1.1.6.3 → versionhq-1.1.7.0}/src/versionhq/__init__.py +1 -1
- {versionhq-1.1.6.3 → versionhq-1.1.7.0}/src/versionhq/_utils/usage_metrics.py +4 -12
- versionhq-1.1.7.0/src/versionhq/agent/TEMPLATES/Backstory.py +7 -0
- {versionhq-1.1.6.3 → versionhq-1.1.7.0}/src/versionhq/agent/model.py +95 -158
- {versionhq-1.1.6.3 → versionhq-1.1.7.0}/src/versionhq/llm/model.py +1 -0
- {versionhq-1.1.6.3 → versionhq-1.1.7.0}/src/versionhq/task/model.py +122 -150
- {versionhq-1.1.6.3 → versionhq-1.1.7.0}/src/versionhq/team/model.py +70 -145
- {versionhq-1.1.6.3 → versionhq-1.1.7.0}/src/versionhq/team/team_planner.py +2 -2
- {versionhq-1.1.6.3 → versionhq-1.1.7.0}/src/versionhq/tool/model.py +6 -16
- {versionhq-1.1.6.3 → versionhq-1.1.7.0}/src/versionhq.egg-info/PKG-INFO +67 -45
- {versionhq-1.1.6.3 → versionhq-1.1.7.0}/src/versionhq.egg-info/SOURCES.txt +8 -3
- versionhq-1.1.7.0/tests/agent/agent_test.py +79 -0
- versionhq-1.1.7.0/tests/conftest.py +3 -0
- versionhq-1.1.7.0/tests/task/__init__.py +0 -0
- versionhq-1.1.7.0/tests/task/task_test.py +46 -0
- versionhq-1.1.7.0/tests/team/__init__.py +0 -0
- versionhq-1.1.7.0/tests/team/team_test.py +295 -0
- {versionhq-1.1.6.3 → versionhq-1.1.7.0}/uv.lock +53 -58
- versionhq-1.1.6.3/Procfile +0 -1
- versionhq-1.1.6.3/tests/task/sync_test.py +0 -45
- versionhq-1.1.6.3/tests/team/kickoff_test.py +0 -101
- {versionhq-1.1.6.3 → versionhq-1.1.7.0}/.github/workflows/publish_testpypi.yml +0 -0
- {versionhq-1.1.6.3 → versionhq-1.1.7.0}/.github/workflows/security_check.yml +0 -0
- {versionhq-1.1.6.3 → versionhq-1.1.7.0}/.python-version +0 -0
- {versionhq-1.1.6.3 → versionhq-1.1.7.0}/LICENSE +0 -0
- {versionhq-1.1.6.3 → versionhq-1.1.7.0}/SECURITY.md +0 -0
- {versionhq-1.1.6.3 → versionhq-1.1.7.0}/db/preprocess.py +0 -0
- {versionhq-1.1.6.3 → versionhq-1.1.7.0}/requirements.txt +0 -0
- {versionhq-1.1.6.3 → versionhq-1.1.7.0}/runtime.txt +0 -0
- {versionhq-1.1.6.3 → versionhq-1.1.7.0}/setup.cfg +0 -0
- {versionhq-1.1.6.3 → versionhq-1.1.7.0}/src/versionhq/_utils/__init__.py +0 -0
- {versionhq-1.1.6.3 → versionhq-1.1.7.0}/src/versionhq/_utils/cache_handler.py +0 -0
- {versionhq-1.1.6.3 → versionhq-1.1.7.0}/src/versionhq/_utils/i18n.py +0 -0
- {versionhq-1.1.6.3 → versionhq-1.1.7.0}/src/versionhq/_utils/logger.py +0 -0
- {versionhq-1.1.6.3 → versionhq-1.1.7.0}/src/versionhq/_utils/process_config.py +0 -0
- {versionhq-1.1.6.3 → versionhq-1.1.7.0}/src/versionhq/_utils/rpm_controller.py +0 -0
- {versionhq-1.1.6.3/src/versionhq/agent → versionhq-1.1.7.0/src/versionhq/agent/TEMPLATES}/__init__.py +0 -0
- {versionhq-1.1.6.3/src/versionhq/cli → versionhq-1.1.7.0/src/versionhq/agent}/__init__.py +0 -0
- {versionhq-1.1.6.3 → versionhq-1.1.7.0}/src/versionhq/agent/parser.py +0 -0
- {versionhq-1.1.6.3/src/versionhq/clients → versionhq-1.1.7.0/src/versionhq/cli}/__init__.py +0 -0
- {versionhq-1.1.6.3/src/versionhq/clients/customer → versionhq-1.1.7.0/src/versionhq/clients}/__init__.py +0 -0
- {versionhq-1.1.6.3/src/versionhq/clients/product → versionhq-1.1.7.0/src/versionhq/clients/customer}/__init__.py +0 -0
- {versionhq-1.1.6.3 → versionhq-1.1.7.0}/src/versionhq/clients/customer/model.py +0 -0
- {versionhq-1.1.6.3/src/versionhq/clients/workflow → versionhq-1.1.7.0/src/versionhq/clients/product}/__init__.py +0 -0
- {versionhq-1.1.6.3 → versionhq-1.1.7.0}/src/versionhq/clients/product/model.py +0 -0
- {versionhq-1.1.6.3/src/versionhq/llm → versionhq-1.1.7.0/src/versionhq/clients/workflow}/__init__.py +0 -0
- {versionhq-1.1.6.3 → versionhq-1.1.7.0}/src/versionhq/clients/workflow/model.py +0 -0
- {versionhq-1.1.6.3/src/versionhq/team → versionhq-1.1.7.0/src/versionhq/llm}/__init__.py +0 -0
- {versionhq-1.1.6.3 → versionhq-1.1.7.0}/src/versionhq/llm/llm_vars.py +0 -0
- {versionhq-1.1.6.3 → versionhq-1.1.7.0}/src/versionhq/task/__init__.py +0 -0
- {versionhq-1.1.6.3 → versionhq-1.1.7.0}/src/versionhq/task/formatter.py +0 -0
- {versionhq-1.1.6.3/src/versionhq/tool → versionhq-1.1.7.0/src/versionhq/team}/__init__.py +0 -0
- {versionhq-1.1.6.3/tests → versionhq-1.1.7.0/src/versionhq/tool}/__init__.py +0 -0
- {versionhq-1.1.6.3 → versionhq-1.1.7.0}/src/versionhq/tool/decorator.py +0 -0
- {versionhq-1.1.6.3 → versionhq-1.1.7.0}/src/versionhq/tool/tool_handler.py +0 -0
- {versionhq-1.1.6.3 → versionhq-1.1.7.0}/src/versionhq.egg-info/dependency_links.txt +0 -0
- {versionhq-1.1.6.3 → versionhq-1.1.7.0}/src/versionhq.egg-info/requires.txt +0 -0
- {versionhq-1.1.6.3 → versionhq-1.1.7.0}/src/versionhq.egg-info/top_level.txt +0 -0
- {versionhq-1.1.6.3/tests/cli → versionhq-1.1.7.0/tests}/__init__.py +0 -0
- {versionhq-1.1.6.3/tests/task → versionhq-1.1.7.0/tests/agent}/__init__.py +0 -0
- {versionhq-1.1.6.3/tests/team → versionhq-1.1.7.0/tests/cli}/__init__.py +0 -0
- {versionhq-1.1.6.3 → versionhq-1.1.7.0}/tests/team/Prompts/Demo_test.py +0 -0
@@ -18,7 +18,7 @@ jobs:
|
|
18
18
|
uses: astral-sh/setup-uv@v4
|
19
19
|
with:
|
20
20
|
version: "0.5.11"
|
21
|
-
|
21
|
+
|
22
22
|
- name: Build release distributions
|
23
23
|
run: |
|
24
24
|
uv venv --python=python3.13.1
|
@@ -37,7 +37,7 @@ jobs:
|
|
37
37
|
runs-on: ubuntu-latest
|
38
38
|
needs:
|
39
39
|
- release-build
|
40
|
-
|
40
|
+
|
41
41
|
permissions:
|
42
42
|
id-token: write
|
43
43
|
|
@@ -60,4 +60,3 @@ jobs:
|
|
60
60
|
verbose: true
|
61
61
|
user: __token__
|
62
62
|
password: ${{ secrets.PYPI_API_TOKEN }}
|
63
|
-
|
@@ -0,0 +1,34 @@
|
|
1
|
+
name: Run Tests
|
2
|
+
|
3
|
+
on: [pull_request, push]
|
4
|
+
|
5
|
+
permissions:
|
6
|
+
contents: write
|
7
|
+
|
8
|
+
env:
|
9
|
+
LITELLM_API_KEY: ${{ secrets.LITELLM_API_KEY }}
|
10
|
+
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
|
11
|
+
|
12
|
+
jobs:
|
13
|
+
run_test:
|
14
|
+
runs-on: ubuntu-latest
|
15
|
+
timeout-minutes: 15
|
16
|
+
|
17
|
+
steps:
|
18
|
+
- name: Checkout code
|
19
|
+
uses: actions/checkout@v4
|
20
|
+
|
21
|
+
- name: Install uv
|
22
|
+
uses: astral-sh/setup-uv@v4
|
23
|
+
with:
|
24
|
+
version: "0.5.11"
|
25
|
+
|
26
|
+
- name: Set up the project
|
27
|
+
run: |
|
28
|
+
uv venv --python=python3.13.1
|
29
|
+
source .venv/bin/activate
|
30
|
+
uv pip install --upgrade pip pytest
|
31
|
+
uv pip install -r requirements.txt
|
32
|
+
|
33
|
+
- name: Run tests
|
34
|
+
run: uv run pytest tests -vv --cache-clear
|
@@ -1,5 +1,4 @@
|
|
1
|
-
|
2
|
-
python_publish*
|
1
|
+
knowledge/
|
3
2
|
|
4
3
|
composio.py
|
5
4
|
memo.txt
|
@@ -7,12 +6,16 @@ memo.txt
|
|
7
6
|
dist/
|
8
7
|
build/
|
9
8
|
.pypirc
|
9
|
+
uploads/
|
10
|
+
sample_dataset/
|
11
|
+
*egg-info/
|
12
|
+
|
10
13
|
__pycache__/
|
11
14
|
.ruff_cache/
|
15
|
+
.pytest_cache/
|
16
|
+
|
12
17
|
.DS_Store
|
13
18
|
.vscode
|
19
|
+
|
14
20
|
.env
|
15
21
|
.venv/
|
16
|
-
uploads/
|
17
|
-
sample_dataset/
|
18
|
-
*egg-info/
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: versionhq
|
3
|
-
Version: 1.1.
|
3
|
+
Version: 1.1.7.0
|
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
|
@@ -52,7 +52,8 @@ Requires-Dist: wheel>=0.45.1
|
|
52
52
|
|
53
53
|
# Overview
|
54
54
|
|
55
|
-
 
|
56
|
+
 
|
56
57
|
|
57
58
|
|
58
59
|
An LLM orchestration frameworks for multi-agent systems with RAG to autopilot outbound workflows.
|
@@ -64,10 +65,10 @@ Messaging workflows are created at individual level, and will be deployed on thi
|
|
64
65
|
|
65
66
|
**Visit:**
|
66
67
|
|
67
|
-
-
|
68
|
-
- Client app
|
69
|
-
-
|
70
|
-
-
|
68
|
+
- [Landing page](https://home.versi0n.io)
|
69
|
+
- [Client app](https://versi0n.io/)
|
70
|
+
- [Orchestration frameworks](https://github.com/versionHQ/multi-agent-system)
|
71
|
+
- [Test client app](https://github.com/versionHQ/test-client-app)
|
71
72
|
|
72
73
|
|
73
74
|
## Mindmap
|
@@ -75,7 +76,7 @@ Messaging workflows are created at individual level, and will be deployed on thi
|
|
75
76
|
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.
|
76
77
|
|
77
78
|
<p align="center">
|
78
|
-
<img src="https://res.cloudinary.com/dfeirxlea/image/upload/v1733556715/pj_m_home/urwte15at3h0dr8mdlyo.png" alt="mindmap" width="
|
79
|
+
<img src="https://res.cloudinary.com/dfeirxlea/image/upload/v1733556715/pj_m_home/urwte15at3h0dr8mdlyo.png" alt="mindmap" width="400">
|
79
80
|
</p>
|
80
81
|
|
81
82
|
<hr />
|
@@ -89,8 +90,7 @@ LLM-powered `agent`s and `team`s use `tool`s and their own knowledge to complete
|
|
89
90
|
- [Project Structure](#project-structure)
|
90
91
|
- [Setup](#setup)
|
91
92
|
- [Usage](#usage)
|
92
|
-
- [
|
93
|
-
- [Contributing & Customizing](#contributing--customizing)
|
93
|
+
- [Contributing](#contributing)
|
94
94
|
- [Customizing AI Agents](#customizing-ai-agents)
|
95
95
|
- [Modifying RAG Functionality](#modifying-rag-functionality)
|
96
96
|
- [Package Management with uv](#package-management-with-uv)
|
@@ -111,7 +111,7 @@ The `agent` is model agnostic. The default model is set Chat GTP 4o. We ask the
|
|
111
111
|
Multiple `agents` can form a `team` to complete complex tasks together.
|
112
112
|
|
113
113
|
**1. Analysis**
|
114
|
-
- Professional `agents` handle the analysis `tasks` on each client, customer, and product.
|
114
|
+
- Professional `agents` handle the analysis `tasks` on each client, customer, and product.
|
115
115
|
|
116
116
|
**2. Messaging Workflow Creation**
|
117
117
|
- Several `teams` receive the analysis and design initial messaging workflow with several layers.
|
@@ -122,6 +122,8 @@ Multiple `agents` can form a `team` to complete complex tasks together.
|
|
122
122
|
- Responsible `agents` or `teams` autopilot executing and refining the messaging workflow.
|
123
123
|
|
124
124
|
|
125
|
+
<hr />
|
126
|
+
|
125
127
|
## Technologies Used
|
126
128
|
**Schema, Database, Data Validation**
|
127
129
|
- [Pydantic](https://docs.pydantic.dev/latest/): Data validation and serialization library for Python
|
@@ -164,14 +166,16 @@ src/
|
|
164
166
|
│ └── ...
|
165
167
|
│
|
166
168
|
└──tests/
|
167
|
-
└── cli/
|
169
|
+
└── cli/
|
168
170
|
└── team/
|
169
171
|
└── ...
|
170
|
-
│
|
172
|
+
│
|
171
173
|
└── uploads/ # Uploaded files for the project
|
172
174
|
|
173
175
|
```
|
174
176
|
|
177
|
+
<hr />
|
178
|
+
|
175
179
|
## Setup
|
176
180
|
|
177
181
|
1. Install the `uv` package manager:
|
@@ -204,53 +208,67 @@ src/
|
|
204
208
|
COMPOSIO_CLI_KEY=your-composio-cli-key
|
205
209
|
```
|
206
210
|
|
207
|
-
|
211
|
+
<hr />
|
208
212
|
|
209
|
-
|
213
|
+
## Usage
|
210
214
|
|
211
|
-
|
215
|
+
1. Install `versionhq` package:
|
216
|
+
```
|
217
|
+
uv pip install versionhq
|
218
|
+
```
|
212
219
|
|
213
|
-
|
214
|
-
- Run a test.
|
220
|
+
2. You can use the `versionhq` module in your Python app.
|
215
221
|
```
|
216
|
-
|
222
|
+
from versionhq.agent.model import Agent
|
223
|
+
agent = Agent(llm="your-llm", ...)
|
217
224
|
```
|
218
|
-
* All the `.py` files' names in the `tests` have to be ended with `_test.py`.
|
219
225
|
|
226
|
+
For more details:
|
220
227
|
|
221
|
-
|
222
|
-
```
|
223
|
-
npm i
|
224
|
-
npm start
|
225
|
-
```
|
226
|
-
The frontend will be available at `http://localhost:3000`.
|
228
|
+
[PyPi package](https://pypi.org/project/versionhq/)
|
227
229
|
|
228
|
-
|
230
|
+
<hr />
|
229
231
|
|
232
|
+
## Contributing
|
230
233
|
|
231
|
-
|
234
|
+
1. Fork the repository
|
232
235
|
|
233
|
-
|
234
|
-
```
|
235
|
-
uv pip install git+https://github.com/versionHQ/multi-agent-system.git#egg=versionhq
|
236
|
-
```
|
236
|
+
2. Create your feature branch (`git checkout -b feature/your-amazing-feature`)
|
237
237
|
|
238
|
-
|
239
|
-
```
|
240
|
-
from versionhq.agent.model import Agent
|
241
|
-
agent = Agent(llm="your-llm"...)
|
242
|
-
```
|
238
|
+
3. Create amazing features
|
243
239
|
|
244
|
-
|
240
|
+
4. Test the features using the `tests` directory.
|
245
241
|
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
242
|
+
- Add a test function to respective components in the `tests` directory.
|
243
|
+
- Add your `LITELLM_API_KEY` and `OPENAI_API_KEY` to the Github `repository secrets` @ settings > secrets & variables > Actions.
|
244
|
+
- Run a test.
|
245
|
+
```
|
246
|
+
uv run pytest tests -vv
|
247
|
+
```
|
248
|
+
|
249
|
+
**pytest**
|
250
|
+
|
251
|
+
* When adding a new file to `tests`, name the file ended with `_test.py`.
|
252
|
+
* When adding a new feature to the file, name the feature started with `test_`.
|
253
|
+
|
254
|
+
5. Pull the latest version of source code from the main branch (`git pull origin main`) *Address conflicts if any.
|
255
|
+
6. Commit your changes (`git add .` / `git commit -m 'Add your-amazing-feature'`)
|
256
|
+
7. Push to the branch (`git push origin feature/your-amazing-feature`)
|
257
|
+
8. Open a pull request
|
258
|
+
|
259
|
+
|
260
|
+
**Optional**
|
261
|
+
* Flag with `#! REFINEME` for any improvements needed and `#! FIXME` for any errors.
|
262
|
+
|
263
|
+
* Run a React demo app: [React demo app](https://github.com/versionHQ/test-client-app) to check it on the client endpoint.
|
264
|
+
```
|
265
|
+
npm i
|
266
|
+
npm start
|
267
|
+
```
|
268
|
+
The frontend will be available at `http://localhost:3000`.
|
269
|
+
|
270
|
+
* `production` is available at `https://versi0n.io`. Currently, we are running alpha test.
|
252
271
|
|
253
|
-
0. Flag with `#! REFINEME` for any improvements and `#! FIXME` for any errors.
|
254
272
|
|
255
273
|
|
256
274
|
### Customizing AI Agents
|
@@ -299,16 +317,20 @@ Pre-commit hooks help maintain code quality by running checks for formatting, li
|
|
299
317
|
git commit --no-verify -m "your-commit-message"
|
300
318
|
```
|
301
319
|
|
320
|
+
<hr />
|
321
|
+
|
302
322
|
## Trouble Shooting
|
303
323
|
|
304
324
|
Common issues and solutions:
|
305
325
|
- API key errors: Ensure all API keys in the `.env` file are correct and up to date. Make sure to add `load_dotenv()` on the top of the python file to apply the latest environment values.
|
306
326
|
- Database connection issues: Check if the Chroma DB is properly initialized and accessible.
|
307
327
|
- Memory errors: If processing large contracts, you may need to increase the available memory for the Python process.
|
308
|
-
- Issues related to dependencies
|
328
|
+
- Issues related to dependencies: `rm -rf uv.lock`, `uv cache clean`, `uv venv`, and run `uv pip install -r requirements.txt -v`.
|
309
329
|
- Issues related to the AI agents or RAG system: Check the `output.log` file for detailed error messages and stack traces.
|
310
330
|
- Issues related to `Python quit unexpectedly`: Check [this stackoverflow article](https://stackoverflow.com/questions/59888499/macos-catalina-python-quit-unexpectedly-error).
|
331
|
+
- `reportMissingImports` error from pyright after installing the package: This might occur when installing new libraries while VSCode is running. Open the command pallete (ctrl + shift + p) and run the Python: Restart language server task.
|
311
332
|
|
333
|
+
<hr />
|
312
334
|
|
313
335
|
## Frequently Asked Questions (FAQ)
|
314
336
|
**Q. Where can I see if the agent is working?**
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# Overview
|
2
2
|
|
3
|
-
 
|
4
|
+
 
|
4
5
|
|
5
6
|
|
6
7
|
An LLM orchestration frameworks for multi-agent systems with RAG to autopilot outbound workflows.
|
@@ -12,10 +13,10 @@ Messaging workflows are created at individual level, and will be deployed on thi
|
|
12
13
|
|
13
14
|
**Visit:**
|
14
15
|
|
15
|
-
-
|
16
|
-
- Client app
|
17
|
-
-
|
18
|
-
-
|
16
|
+
- [Landing page](https://home.versi0n.io)
|
17
|
+
- [Client app](https://versi0n.io/)
|
18
|
+
- [Orchestration frameworks](https://github.com/versionHQ/multi-agent-system)
|
19
|
+
- [Test client app](https://github.com/versionHQ/test-client-app)
|
19
20
|
|
20
21
|
|
21
22
|
## Mindmap
|
@@ -23,7 +24,7 @@ Messaging workflows are created at individual level, and will be deployed on thi
|
|
23
24
|
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.
|
24
25
|
|
25
26
|
<p align="center">
|
26
|
-
<img src="https://res.cloudinary.com/dfeirxlea/image/upload/v1733556715/pj_m_home/urwte15at3h0dr8mdlyo.png" alt="mindmap" width="
|
27
|
+
<img src="https://res.cloudinary.com/dfeirxlea/image/upload/v1733556715/pj_m_home/urwte15at3h0dr8mdlyo.png" alt="mindmap" width="400">
|
27
28
|
</p>
|
28
29
|
|
29
30
|
<hr />
|
@@ -37,8 +38,7 @@ LLM-powered `agent`s and `team`s use `tool`s and their own knowledge to complete
|
|
37
38
|
- [Project Structure](#project-structure)
|
38
39
|
- [Setup](#setup)
|
39
40
|
- [Usage](#usage)
|
40
|
-
- [
|
41
|
-
- [Contributing & Customizing](#contributing--customizing)
|
41
|
+
- [Contributing](#contributing)
|
42
42
|
- [Customizing AI Agents](#customizing-ai-agents)
|
43
43
|
- [Modifying RAG Functionality](#modifying-rag-functionality)
|
44
44
|
- [Package Management with uv](#package-management-with-uv)
|
@@ -59,7 +59,7 @@ The `agent` is model agnostic. The default model is set Chat GTP 4o. We ask the
|
|
59
59
|
Multiple `agents` can form a `team` to complete complex tasks together.
|
60
60
|
|
61
61
|
**1. Analysis**
|
62
|
-
- Professional `agents` handle the analysis `tasks` on each client, customer, and product.
|
62
|
+
- Professional `agents` handle the analysis `tasks` on each client, customer, and product.
|
63
63
|
|
64
64
|
**2. Messaging Workflow Creation**
|
65
65
|
- Several `teams` receive the analysis and design initial messaging workflow with several layers.
|
@@ -70,6 +70,8 @@ Multiple `agents` can form a `team` to complete complex tasks together.
|
|
70
70
|
- Responsible `agents` or `teams` autopilot executing and refining the messaging workflow.
|
71
71
|
|
72
72
|
|
73
|
+
<hr />
|
74
|
+
|
73
75
|
## Technologies Used
|
74
76
|
**Schema, Database, Data Validation**
|
75
77
|
- [Pydantic](https://docs.pydantic.dev/latest/): Data validation and serialization library for Python
|
@@ -112,14 +114,16 @@ src/
|
|
112
114
|
│ └── ...
|
113
115
|
│
|
114
116
|
└──tests/
|
115
|
-
└── cli/
|
117
|
+
└── cli/
|
116
118
|
└── team/
|
117
119
|
└── ...
|
118
|
-
│
|
120
|
+
│
|
119
121
|
└── uploads/ # Uploaded files for the project
|
120
122
|
|
121
123
|
```
|
122
124
|
|
125
|
+
<hr />
|
126
|
+
|
123
127
|
## Setup
|
124
128
|
|
125
129
|
1. Install the `uv` package manager:
|
@@ -152,53 +156,67 @@ src/
|
|
152
156
|
COMPOSIO_CLI_KEY=your-composio-cli-key
|
153
157
|
```
|
154
158
|
|
155
|
-
|
159
|
+
<hr />
|
156
160
|
|
157
|
-
|
161
|
+
## Usage
|
158
162
|
|
159
|
-
|
163
|
+
1. Install `versionhq` package:
|
164
|
+
```
|
165
|
+
uv pip install versionhq
|
166
|
+
```
|
160
167
|
|
161
|
-
|
162
|
-
- Run a test.
|
168
|
+
2. You can use the `versionhq` module in your Python app.
|
163
169
|
```
|
164
|
-
|
170
|
+
from versionhq.agent.model import Agent
|
171
|
+
agent = Agent(llm="your-llm", ...)
|
165
172
|
```
|
166
|
-
* All the `.py` files' names in the `tests` have to be ended with `_test.py`.
|
167
173
|
|
174
|
+
For more details:
|
168
175
|
|
169
|
-
|
170
|
-
```
|
171
|
-
npm i
|
172
|
-
npm start
|
173
|
-
```
|
174
|
-
The frontend will be available at `http://localhost:3000`.
|
176
|
+
[PyPi package](https://pypi.org/project/versionhq/)
|
175
177
|
|
176
|
-
|
178
|
+
<hr />
|
177
179
|
|
180
|
+
## Contributing
|
178
181
|
|
179
|
-
|
182
|
+
1. Fork the repository
|
180
183
|
|
181
|
-
|
182
|
-
```
|
183
|
-
uv pip install git+https://github.com/versionHQ/multi-agent-system.git#egg=versionhq
|
184
|
-
```
|
184
|
+
2. Create your feature branch (`git checkout -b feature/your-amazing-feature`)
|
185
185
|
|
186
|
-
|
187
|
-
```
|
188
|
-
from versionhq.agent.model import Agent
|
189
|
-
agent = Agent(llm="your-llm"...)
|
190
|
-
```
|
186
|
+
3. Create amazing features
|
191
187
|
|
192
|
-
|
188
|
+
4. Test the features using the `tests` directory.
|
193
189
|
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
190
|
+
- Add a test function to respective components in the `tests` directory.
|
191
|
+
- Add your `LITELLM_API_KEY` and `OPENAI_API_KEY` to the Github `repository secrets` @ settings > secrets & variables > Actions.
|
192
|
+
- Run a test.
|
193
|
+
```
|
194
|
+
uv run pytest tests -vv
|
195
|
+
```
|
196
|
+
|
197
|
+
**pytest**
|
198
|
+
|
199
|
+
* When adding a new file to `tests`, name the file ended with `_test.py`.
|
200
|
+
* When adding a new feature to the file, name the feature started with `test_`.
|
201
|
+
|
202
|
+
5. Pull the latest version of source code from the main branch (`git pull origin main`) *Address conflicts if any.
|
203
|
+
6. Commit your changes (`git add .` / `git commit -m 'Add your-amazing-feature'`)
|
204
|
+
7. Push to the branch (`git push origin feature/your-amazing-feature`)
|
205
|
+
8. Open a pull request
|
206
|
+
|
207
|
+
|
208
|
+
**Optional**
|
209
|
+
* Flag with `#! REFINEME` for any improvements needed and `#! FIXME` for any errors.
|
210
|
+
|
211
|
+
* Run a React demo app: [React demo app](https://github.com/versionHQ/test-client-app) to check it on the client endpoint.
|
212
|
+
```
|
213
|
+
npm i
|
214
|
+
npm start
|
215
|
+
```
|
216
|
+
The frontend will be available at `http://localhost:3000`.
|
217
|
+
|
218
|
+
* `production` is available at `https://versi0n.io`. Currently, we are running alpha test.
|
200
219
|
|
201
|
-
0. Flag with `#! REFINEME` for any improvements and `#! FIXME` for any errors.
|
202
220
|
|
203
221
|
|
204
222
|
### Customizing AI Agents
|
@@ -247,16 +265,20 @@ Pre-commit hooks help maintain code quality by running checks for formatting, li
|
|
247
265
|
git commit --no-verify -m "your-commit-message"
|
248
266
|
```
|
249
267
|
|
268
|
+
<hr />
|
269
|
+
|
250
270
|
## Trouble Shooting
|
251
271
|
|
252
272
|
Common issues and solutions:
|
253
273
|
- API key errors: Ensure all API keys in the `.env` file are correct and up to date. Make sure to add `load_dotenv()` on the top of the python file to apply the latest environment values.
|
254
274
|
- Database connection issues: Check if the Chroma DB is properly initialized and accessible.
|
255
275
|
- Memory errors: If processing large contracts, you may need to increase the available memory for the Python process.
|
256
|
-
- Issues related to dependencies
|
276
|
+
- Issues related to dependencies: `rm -rf uv.lock`, `uv cache clean`, `uv venv`, and run `uv pip install -r requirements.txt -v`.
|
257
277
|
- Issues related to the AI agents or RAG system: Check the `output.log` file for detailed error messages and stack traces.
|
258
278
|
- Issues related to `Python quit unexpectedly`: Check [this stackoverflow article](https://stackoverflow.com/questions/59888499/macos-catalina-python-quit-unexpectedly-error).
|
279
|
+
- `reportMissingImports` error from pyright after installing the package: This might occur when installing new libraries while VSCode is running. Open the command pallete (ctrl + shift + p) and run the Python: Restart language server task.
|
259
280
|
|
281
|
+
<hr />
|
260
282
|
|
261
283
|
## Frequently Asked Questions (FAQ)
|
262
284
|
**Q. Where can I see if the agent is working?**
|
@@ -15,7 +15,7 @@ exclude = ["test*", "__pycache__"]
|
|
15
15
|
|
16
16
|
[project]
|
17
17
|
name = "versionhq"
|
18
|
-
version = "1.1.
|
18
|
+
version = "1.1.7.0"
|
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"
|
@@ -58,15 +58,10 @@ dev-dependencies = [
|
|
58
58
|
"python-dotenv>=1.0.0",
|
59
59
|
"black",
|
60
60
|
"bandit",
|
61
|
-
"twine"
|
61
|
+
"twine",
|
62
|
+
"pytest>=8.0.0",
|
62
63
|
]
|
63
64
|
|
64
|
-
[tool.black]
|
65
|
-
line-length = 88
|
66
|
-
|
67
|
-
[tool.isort]
|
68
|
-
profile = "black"
|
69
|
-
|
70
65
|
[tool.uv.workspace]
|
71
66
|
members = ["krik8235"]
|
72
67
|
|
@@ -75,3 +70,7 @@ ignore_missing_imports = true
|
|
75
70
|
|
76
71
|
[tool.bandit]
|
77
72
|
exclude_dirs = [""]
|
73
|
+
|
74
|
+
[tool.pytest.ini_options]
|
75
|
+
minversion = "6.0"
|
76
|
+
addopts = "-ra -q"
|
@@ -7,18 +7,10 @@ class UsageMetrics(BaseModel):
|
|
7
7
|
"""
|
8
8
|
|
9
9
|
total_tokens: int = Field(default=0, description="Total number of tokens used")
|
10
|
-
prompt_tokens: int = Field(
|
11
|
-
|
12
|
-
)
|
13
|
-
|
14
|
-
default=0, description="Number of cached prompt tokens used"
|
15
|
-
)
|
16
|
-
completion_tokens: int = Field(
|
17
|
-
default=0, description="Number of tokens used in completions"
|
18
|
-
)
|
19
|
-
successful_requests: int = Field(
|
20
|
-
default=0, description="Number of successful requests made"
|
21
|
-
)
|
10
|
+
prompt_tokens: int = Field(default=0, description="Number of tokens used in prompts")
|
11
|
+
cached_prompt_tokens: int = Field(default=0, description="Number of cached prompt tokens used")
|
12
|
+
completion_tokens: int = Field(default=0, description="Number of tokens used in completions")
|
13
|
+
successful_requests: int = Field(default=0, description="Number of successful requests made")
|
22
14
|
|
23
15
|
def add_usage_metrics(self, usage_metrics: "UsageMetrics"):
|
24
16
|
"""
|
@@ -0,0 +1,7 @@
|
|
1
|
+
BACKSTORY="""You are a {role} with deep understanding of {knowledge} and highly skilled in {skillsets}.
|
2
|
+
You have access to call the RAG tools that can {rag_tool_overview}. By leveraging these tools, your knowledge, and skillsets, you can identify competitive strategies that have been proven effective to achieve the goal: {goal}. Take these into consideration, create innovative solutions.
|
3
|
+
"""
|
4
|
+
|
5
|
+
|
6
|
+
# developing strategies to improve cohort retention and customer lifetime value
|
7
|
+
# ingest past successful campaigns
|