versionhq 1.1.10.8__tar.gz → 1.1.11.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.
Files changed (108) hide show
  1. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/.github/workflows/publish.yml +1 -1
  2. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/.github/workflows/publish_testpypi.yml +1 -1
  3. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/.github/workflows/run_tests.yml +2 -1
  4. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/.github/workflows/security_check.yml +1 -1
  5. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/.gitignore +3 -2
  6. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/.pre-commit-config.yaml +1 -1
  7. versionhq-1.1.11.0/.python-version +1 -0
  8. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/PKG-INFO +54 -40
  9. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/README.md +47 -39
  10. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/pyproject.toml +9 -3
  11. versionhq-1.1.11.0/requirements.txt +690 -0
  12. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/runtime.txt +1 -0
  13. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/__init__.py +1 -1
  14. versionhq-1.1.11.0/src/versionhq/_utils/vars.py +2 -0
  15. versionhq-1.1.11.0/src/versionhq/agent/TEMPLATES/Backstory.py +4 -0
  16. versionhq-1.1.11.0/src/versionhq/agent/default_agents.py +15 -0
  17. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/agent/model.py +127 -39
  18. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/agent/parser.py +3 -20
  19. {versionhq-1.1.10.8/src/versionhq/_utils → versionhq-1.1.11.0/src/versionhq/agent}/rpm_controller.py +22 -15
  20. versionhq-1.1.11.0/src/versionhq/knowledge/_utils.py +11 -0
  21. versionhq-1.1.11.0/src/versionhq/knowledge/embedding.py +192 -0
  22. versionhq-1.1.11.0/src/versionhq/knowledge/model.py +54 -0
  23. versionhq-1.1.11.0/src/versionhq/knowledge/source.py +413 -0
  24. versionhq-1.1.11.0/src/versionhq/knowledge/source_docling.py +129 -0
  25. versionhq-1.1.11.0/src/versionhq/knowledge/storage.py +177 -0
  26. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/llm/model.py +76 -62
  27. versionhq-1.1.11.0/src/versionhq/memory/contextual_memory.py +96 -0
  28. versionhq-1.1.11.0/src/versionhq/memory/model.py +174 -0
  29. versionhq-1.1.11.0/src/versionhq/storage/base.py +14 -0
  30. versionhq-1.1.11.0/src/versionhq/storage/ltm_sqlite_storage.py +131 -0
  31. versionhq-1.1.11.0/src/versionhq/storage/mem0_storage.py +109 -0
  32. versionhq-1.1.11.0/src/versionhq/storage/rag_storage.py +231 -0
  33. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/storage/task_output_storage.py +18 -29
  34. versionhq-1.1.11.0/src/versionhq/storage/utils.py +26 -0
  35. versionhq-1.1.11.0/src/versionhq/task/TEMPLATES/Description.py +5 -0
  36. versionhq-1.1.11.0/src/versionhq/task/evaluate.py +122 -0
  37. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/task/model.py +134 -43
  38. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/team/team_planner.py +1 -1
  39. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/tool/model.py +44 -46
  40. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq.egg-info/PKG-INFO +54 -40
  41. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq.egg-info/SOURCES.txt +25 -1
  42. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq.egg-info/requires.txt +6 -0
  43. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/tests/agent/agent_test.py +92 -12
  44. {versionhq-1.1.10.8/tests/tool → versionhq-1.1.11.0/tests/knowledge}/__init__.py +0 -0
  45. versionhq-1.1.11.0/tests/knowledge/knowledge_test.py +389 -0
  46. versionhq-1.1.11.0/tests/knowledge/mock_report_compressed.pdf +0 -0
  47. versionhq-1.1.11.0/tests/llm/__init__.py +0 -0
  48. versionhq-1.1.11.0/tests/memory/__init__.py +0 -0
  49. versionhq-1.1.11.0/tests/memory/memory_test.py +83 -0
  50. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/tests/task/task_test.py +56 -7
  51. versionhq-1.1.11.0/tests/team/__init__.py +0 -0
  52. versionhq-1.1.11.0/tests/tool/__init__.py +0 -0
  53. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/tests/tool/tool_test.py +2 -3
  54. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/uv.lock +2085 -100
  55. versionhq-1.1.10.8/.python-version +0 -1
  56. versionhq-1.1.10.8/requirements.txt +0 -285
  57. versionhq-1.1.10.8/src/versionhq/agent/TEMPLATES/Backstory.py +0 -4
  58. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/LICENSE +0 -0
  59. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/SECURITY.md +0 -0
  60. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/db/preprocess.py +0 -0
  61. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/requirements-dev.txt +0 -0
  62. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/setup.cfg +0 -0
  63. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/_utils/__init__.py +0 -0
  64. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/_utils/i18n.py +0 -0
  65. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/_utils/logger.py +0 -0
  66. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/_utils/process_config.py +0 -0
  67. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/_utils/usage_metrics.py +0 -0
  68. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/agent/TEMPLATES/__init__.py +0 -0
  69. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/agent/__init__.py +0 -0
  70. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/cli/__init__.py +0 -0
  71. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/clients/__init__.py +0 -0
  72. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/clients/customer/__init__.py +0 -0
  73. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/clients/customer/model.py +0 -0
  74. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/clients/product/__init__.py +0 -0
  75. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/clients/product/model.py +0 -0
  76. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/clients/workflow/__init__.py +0 -0
  77. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/clients/workflow/model.py +0 -0
  78. {versionhq-1.1.10.8/src/versionhq/llm → versionhq-1.1.11.0/src/versionhq/knowledge}/__init__.py +0 -0
  79. {versionhq-1.1.10.8/src/versionhq/storage → versionhq-1.1.11.0/src/versionhq/llm}/__init__.py +0 -0
  80. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/llm/llm_vars.py +0 -0
  81. {versionhq-1.1.10.8/src/versionhq/team → versionhq-1.1.11.0/src/versionhq/memory}/__init__.py +0 -0
  82. {versionhq-1.1.10.8/src/versionhq/tool → versionhq-1.1.11.0/src/versionhq/storage}/__init__.py +0 -0
  83. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/task/__init__.py +0 -0
  84. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/task/formatter.py +0 -0
  85. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/task/log_handler.py +0 -0
  86. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/task/structured_response.py +0 -0
  87. {versionhq-1.1.10.8/tests → versionhq-1.1.11.0/src/versionhq/team}/__init__.py +0 -0
  88. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/team/model.py +0 -0
  89. {versionhq-1.1.10.8/tests/agent → versionhq-1.1.11.0/src/versionhq/tool}/__init__.py +0 -0
  90. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/tool/cache_handler.py +0 -0
  91. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/tool/composio_tool.py +0 -0
  92. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/tool/composio_tool_vars.py +0 -0
  93. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/tool/decorator.py +0 -0
  94. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq/tool/tool_handler.py +0 -0
  95. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq.egg-info/dependency_links.txt +0 -0
  96. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/src/versionhq.egg-info/top_level.txt +0 -0
  97. {versionhq-1.1.10.8/tests/cli → versionhq-1.1.11.0/tests}/__init__.py +0 -0
  98. {versionhq-1.1.10.8/tests/llm → versionhq-1.1.11.0/tests/agent}/__init__.py +0 -0
  99. {versionhq-1.1.10.8/tests/team → versionhq-1.1.11.0/tests/cli}/__init__.py +0 -0
  100. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/tests/clients/customer_test.py +0 -0
  101. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/tests/clients/product_test.py +0 -0
  102. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/tests/clients/workflow_test.py +0 -0
  103. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/tests/conftest.py +0 -0
  104. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/tests/llm/llm_test.py +0 -0
  105. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/tests/task/__init__.py +0 -0
  106. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/tests/team/Prompts/Demo_test.py +0 -0
  107. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/tests/team/team_test.py +0 -0
  108. {versionhq-1.1.10.8 → versionhq-1.1.11.0}/tests/tool/composio_test.py +0 -0
@@ -21,7 +21,7 @@ jobs:
21
21
 
22
22
  - name: Build release distributions
23
23
  run: |
24
- uv venv --python 3.13.1
24
+ uv venv --python 3.12.8
25
25
  source .venv/bin/activate
26
26
  uv pip install --upgrade pip twine
27
27
  uv pip install -r requirements.txt
@@ -22,7 +22,7 @@ jobs:
22
22
 
23
23
  - name: Build release distributions
24
24
  run: |
25
- uv venv --python 3.13.1
25
+ uv venv --python 3.12.8
26
26
  source .venv/bin/activate
27
27
  uv pip install --upgrade pip twine
28
28
  uv pip install -r requirements.txt
@@ -17,6 +17,7 @@ env:
17
17
  GEMINI_API_BASE: ${{ secrets.GEMINI_API_BASE }}
18
18
  ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
19
19
  ANTHROPIC_API_BASE: ${{ secrets.ANTHROPIC_API_BASE }}
20
+ MEM0_API_KEY: ${{ secrets.MEM0_API_KEY }}
20
21
 
21
22
  jobs:
22
23
  run_test:
@@ -34,7 +35,7 @@ jobs:
34
35
 
35
36
  - name: Set up the project
36
37
  run: |
37
- uv venv --python 3.13.1
38
+ uv venv --python 3.12.8
38
39
  source .venv/bin/activate
39
40
  uv pip install --upgrade pip pytest
40
41
  uv pip install -r requirements.txt
@@ -18,7 +18,7 @@ jobs:
18
18
  - name: Set up Python
19
19
  uses: actions/setup-python@v5
20
20
  with:
21
- python-version: "3.13.1"
21
+ python-version: "3.12.8"
22
22
 
23
23
  - name: Install dependencies
24
24
  run: uv pip install bandit
@@ -1,8 +1,9 @@
1
1
  deploy.py
2
2
  destinations.py
3
3
 
4
- knowledge/
5
- memory/
4
+ entity_memory.py
5
+
6
+ train.py
6
7
 
7
8
  memo.txt
8
9
 
@@ -6,7 +6,7 @@ repos:
6
6
  - id: end-of-file-fixer
7
7
  - id: trailing-whitespace
8
8
  - id: check-added-large-files
9
- args: ['--maxkb=100']
9
+ args: ['--maxkb=200']
10
10
  - id: check-json
11
11
  - id: check-merge-conflict
12
12
  - id: check-toml
@@ -0,0 +1 @@
1
+ 3.12.8
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: versionhq
3
- Version: 1.1.10.8
3
+ Version: 1.1.11.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
@@ -56,24 +56,29 @@ Requires-Dist: appdirs>=1.4.4
56
56
  Requires-Dist: langchain>=0.3.14
57
57
  Requires-Dist: langchain-openai>=0.2.14
58
58
  Requires-Dist: composio-langchain>=0.6.12
59
+ Requires-Dist: chromadb>=0.6.3
60
+ Requires-Dist: docling>=2.16.0
61
+ Requires-Dist: json-repair>=0.35.0
62
+ Requires-Dist: wheel>=0.45.1
63
+ Requires-Dist: pdfplumber>=0.11.5
64
+ Requires-Dist: mem0ai>=0.1.48
59
65
 
60
66
  # Overview
61
67
 
62
68
  ![MIT license](https://img.shields.io/badge/License-MIT-green)
63
69
  [![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)
64
70
  ![PyPI](https://img.shields.io/badge/PyPI->=v1.1.10-blue)
65
- ![python ver](https://img.shields.io/badge/Python-3.12/3.13-purple)
71
+ ![python ver](https://img.shields.io/badge/Python->=3.12-purple)
66
72
  ![pyenv ver](https://img.shields.io/badge/pyenv-2.5.0-orange)
67
73
 
68
74
 
69
- LLM orchestration frameworks to deploy multi-agent systems focusing on complex outbound tasks.
75
+ LLM orchestration frameworks to deploy multi-agent systems with task-based formation.
70
76
 
71
77
  **Visit:**
72
78
 
73
79
  - [PyPI](https://pypi.org/project/versionhq/)
74
80
  - [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)
81
+ - [Use case](https://versi0n.io/) / [Quick demo](https://res.cloudinary.com/dfeirxlea/video/upload/v1737732977/pj_m_home/pnsyh5mfvmilwgt0eusa.mov)
77
82
  - [Documentation](https://chief-oxygen-8a2.notion.site/Documentation-17e923685cf98001a5fad5c4b2acd79b?pvs=4) *Some components are under review.
78
83
 
79
84
 
@@ -133,7 +138,7 @@ You can specify which formation you want them to generate, or let the agent deci
133
138
  pip install versionhq
134
139
  ```
135
140
 
136
- (Python >= 3.13)
141
+ (Python >= 3.12)
137
142
 
138
143
 
139
144
  ### Case 1. Solo Agent:
@@ -157,7 +162,7 @@ You can specify which formation you want them to generate, or let the agent deci
157
162
 
158
163
  task = Task(
159
164
  description="Amazing task",
160
- pydantic_custom_output=CustomOutput,
165
+ pydantic_output=CustomOutput,
161
166
  callback=dummy_func,
162
167
  callback_kwargs=dict(message="Hi! Here is the result: ")
163
168
  )
@@ -166,14 +171,17 @@ You can specify which formation you want them to generate, or let the agent deci
166
171
  print(res)
167
172
  ```
168
173
 
169
- This will return `TaskOutput` that stores a response in string, JSON dict, and Pydantic model: `CustomOutput` formats with a callback result.
174
+ This will return `TaskOutput` instance that stores a response in plane text, JSON serializable dict, and Pydantic model: `CustomOutput` formats with a callback result, tool output (if given), and evaluation results (if given).
170
175
 
171
176
  ```
172
177
  res == TaskOutput(
173
- raw="{\\"test1\\": \\"random str\\", \\"test2\\": [\\"item1\\", \\"item2\\"]}",
174
- json_dict={"test1": "random str", "test2": ["item1", "item2"]},
175
- pydantic=CustomOutput(test1="random str", test2=["item 1", "item 2"]),
176
- callback_output="Hi! Here is the result: random str, item 1, item 2",
178
+ task_id=UUID('<TASK UUID>')
179
+ raw='{\"test1\":\"random str\", \"test2\":[\"str item 1\", \"str item 2\", \"str item 3\"]}',
180
+ json_dict={'test1': 'random str', 'test2': ['str item 1', 'str item 2', 'str item 3']},
181
+ pydantic=<class '__main__.CustomOutput'>
182
+ tool_output=None,
183
+ callback_output='Hi! Here is the result: random str, str item 1, str item 2, str item 3',
184
+ evaluation=None
177
185
  )
178
186
  ```
179
187
 
@@ -215,15 +223,18 @@ Tasks can be delegated to a team manager, peers in the team, or completely new a
215
223
  <hr />
216
224
 
217
225
  ## Technologies Used
218
- **Schema, Database, Data Validation**
219
- - [Pydantic](https://docs.pydantic.dev/latest/): Data validation and serialization library for Python
220
- - [Pydantic_core](https://pypi.org/project/pydantic-core/): Core func packages for Pydantic
221
- - [Chroma DB](https://docs.trychroma.com/): Vector database for storing and querying usage data
222
- - [SQLite](https://www.sqlite.org/docs.html): C-language library to implements a small SQL database engine
226
+ **Schema, Data Validation**
227
+ - [Pydantic](https://docs.pydantic.dev/latest/): Data validation and serialization library for Python.
228
+ - [Pydantic_core](https://pypi.org/project/pydantic-core/): Core func packages for Pydantic.
223
229
  - [Upstage](https://console.upstage.ai/docs/getting-started/overview): Document processer for ML tasks. (Use `Document Parser API` to extract data from documents)
230
+ - [Docling](https://ds4sd.github.io/docling/): Document parsing
231
+
232
+ **Storage**
233
+ - [mem0ai](https://docs.mem0.ai/quickstart#install-package): Agents' memory storage and management.
234
+ - [Chroma DB](https://docs.trychroma.com/): Vector database for storing and querying usage data.
235
+ - [SQLite](https://www.sqlite.org/docs.html): C-language library to implements a small SQL database engine.
224
236
 
225
237
  **LLM-curation**
226
- - OpenAI GPT-4: Advanced language model for analysis and recommendations
227
238
  - [LiteLLM](https://docs.litellm.ai/docs/providers): Curation platform to access LLMs
228
239
 
229
240
  **Tools**
@@ -241,27 +252,29 @@ Tasks can be delegated to a team manager, peers in the team, or completely new a
241
252
 
242
253
  ```
243
254
  .
255
+ .github
256
+ └── workflows/ # Github actions
257
+
244
258
  src/
245
- └── versionHQ/ # Orchestration frameworks on Pydantic
246
- ├── agent/
247
- └── llm/
248
- └── task/
249
- └── team/
250
- └── tool/
251
- └── clients/ # Classes to store the client related information
252
- └── cli/ # CLI commands
253
- └── ...
254
-
255
- ├── db/ # Database files
256
- ├── chroma.sqlite3
257
- └── ...
259
+ └── versionhq/ # Orchestration frameworks
260
+ ├── agent/ # Components
261
+ └── llm/
262
+ └── task/
263
+ └── team/
264
+ └── tool/
265
+ └── cli/
266
+ └── ...
267
+
268
+ ├── db/ # Storage
269
+ ├── chroma.sqlite3
270
+ └── ...
271
+
272
+ └──tests/ # Pytest
273
+ │ └── agent/
274
+ │ └── llm/
275
+ │ └── ...
258
276
 
259
- └──tests/
260
- └── cli/
261
- └── team/
262
- └── ...
263
-
264
- └── uploads/ # Uploaded files for the project
277
+ └── uploads/ # Local repo to store the uploaded files
265
278
 
266
279
  ```
267
280
 
@@ -283,9 +296,9 @@ src/
283
296
 
284
297
  * In case of AssertionError/module mismatch, run Python version control using `.pyenv`
285
298
  ```
286
- pyenv install 3.13.1
287
- pyenv global 3.13.1 (optional: `pyenv global system` to get back to the system default ver.)
288
- uv python pin 3.13.1
299
+ pyenv install 3.12.8
300
+ pyenv global 3.12.8 (optional: `pyenv global system` to get back to the system default ver.)
301
+ uv python pin 3.12.8
289
302
  ```
290
303
 
291
304
  3. Set up environment variables:
@@ -394,6 +407,7 @@ Common issues and solutions:
394
407
  - 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.
395
408
  - Database connection issues: Check if the Chroma DB is properly initialized and accessible.
396
409
  - Memory errors: If processing large contracts, you may need to increase the available memory for the Python process.
410
+ - Issues related to the Python version: Docling/Pytorch is not ready for Python 3.13 as of Jan 2025. Use Python 3.12.x as default by running `uv venv --python 3.12.8` and `uv python pin 3.12.8`.
397
411
  - Issues related to dependencies: `rm -rf uv.lock`, `uv cache clean`, `uv venv`, and run `uv pip install -r requirements.txt -v`.
398
412
  - Issues related to the AI agents or RAG system: Check the `output.log` file for detailed error messages and stack traces.
399
413
  - Issues related to `Python quit unexpectedly`: Check [this stackoverflow article](https://stackoverflow.com/questions/59888499/macos-catalina-python-quit-unexpectedly-error).
@@ -3,18 +3,17 @@
3
3
  ![MIT license](https://img.shields.io/badge/License-MIT-green)
4
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
5
  ![PyPI](https://img.shields.io/badge/PyPI->=v1.1.10-blue)
6
- ![python ver](https://img.shields.io/badge/Python-3.12/3.13-purple)
6
+ ![python ver](https://img.shields.io/badge/Python->=3.12-purple)
7
7
  ![pyenv ver](https://img.shields.io/badge/pyenv-2.5.0-orange)
8
8
 
9
9
 
10
- LLM orchestration frameworks to deploy multi-agent systems focusing on complex outbound tasks.
10
+ LLM orchestration frameworks to deploy multi-agent systems with task-based formation.
11
11
 
12
12
  **Visit:**
13
13
 
14
14
  - [PyPI](https://pypi.org/project/versionhq/)
15
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)
16
+ - [Use case](https://versi0n.io/) / [Quick demo](https://res.cloudinary.com/dfeirxlea/video/upload/v1737732977/pj_m_home/pnsyh5mfvmilwgt0eusa.mov)
18
17
  - [Documentation](https://chief-oxygen-8a2.notion.site/Documentation-17e923685cf98001a5fad5c4b2acd79b?pvs=4) *Some components are under review.
19
18
 
20
19
 
@@ -74,7 +73,7 @@ You can specify which formation you want them to generate, or let the agent deci
74
73
  pip install versionhq
75
74
  ```
76
75
 
77
- (Python >= 3.13)
76
+ (Python >= 3.12)
78
77
 
79
78
 
80
79
  ### Case 1. Solo Agent:
@@ -98,7 +97,7 @@ You can specify which formation you want them to generate, or let the agent deci
98
97
 
99
98
  task = Task(
100
99
  description="Amazing task",
101
- pydantic_custom_output=CustomOutput,
100
+ pydantic_output=CustomOutput,
102
101
  callback=dummy_func,
103
102
  callback_kwargs=dict(message="Hi! Here is the result: ")
104
103
  )
@@ -107,14 +106,17 @@ You can specify which formation you want them to generate, or let the agent deci
107
106
  print(res)
108
107
  ```
109
108
 
110
- This will return `TaskOutput` that stores a response in string, JSON dict, and Pydantic model: `CustomOutput` formats with a callback result.
109
+ This will return `TaskOutput` instance that stores a response in plane text, JSON serializable dict, and Pydantic model: `CustomOutput` formats with a callback result, tool output (if given), and evaluation results (if given).
111
110
 
112
111
  ```
113
112
  res == TaskOutput(
114
- raw="{\\"test1\\": \\"random str\\", \\"test2\\": [\\"item1\\", \\"item2\\"]}",
115
- json_dict={"test1": "random str", "test2": ["item1", "item2"]},
116
- pydantic=CustomOutput(test1="random str", test2=["item 1", "item 2"]),
117
- callback_output="Hi! Here is the result: random str, item 1, item 2",
113
+ task_id=UUID('<TASK UUID>')
114
+ raw='{\"test1\":\"random str\", \"test2\":[\"str item 1\", \"str item 2\", \"str item 3\"]}',
115
+ json_dict={'test1': 'random str', 'test2': ['str item 1', 'str item 2', 'str item 3']},
116
+ pydantic=<class '__main__.CustomOutput'>
117
+ tool_output=None,
118
+ callback_output='Hi! Here is the result: random str, str item 1, str item 2, str item 3',
119
+ evaluation=None
118
120
  )
119
121
  ```
120
122
 
@@ -156,15 +158,18 @@ Tasks can be delegated to a team manager, peers in the team, or completely new a
156
158
  <hr />
157
159
 
158
160
  ## Technologies Used
159
- **Schema, Database, Data Validation**
160
- - [Pydantic](https://docs.pydantic.dev/latest/): Data validation and serialization library for Python
161
- - [Pydantic_core](https://pypi.org/project/pydantic-core/): Core func packages for Pydantic
162
- - [Chroma DB](https://docs.trychroma.com/): Vector database for storing and querying usage data
163
- - [SQLite](https://www.sqlite.org/docs.html): C-language library to implements a small SQL database engine
161
+ **Schema, Data Validation**
162
+ - [Pydantic](https://docs.pydantic.dev/latest/): Data validation and serialization library for Python.
163
+ - [Pydantic_core](https://pypi.org/project/pydantic-core/): Core func packages for Pydantic.
164
164
  - [Upstage](https://console.upstage.ai/docs/getting-started/overview): Document processer for ML tasks. (Use `Document Parser API` to extract data from documents)
165
+ - [Docling](https://ds4sd.github.io/docling/): Document parsing
166
+
167
+ **Storage**
168
+ - [mem0ai](https://docs.mem0.ai/quickstart#install-package): Agents' memory storage and management.
169
+ - [Chroma DB](https://docs.trychroma.com/): Vector database for storing and querying usage data.
170
+ - [SQLite](https://www.sqlite.org/docs.html): C-language library to implements a small SQL database engine.
165
171
 
166
172
  **LLM-curation**
167
- - OpenAI GPT-4: Advanced language model for analysis and recommendations
168
173
  - [LiteLLM](https://docs.litellm.ai/docs/providers): Curation platform to access LLMs
169
174
 
170
175
  **Tools**
@@ -182,27 +187,29 @@ Tasks can be delegated to a team manager, peers in the team, or completely new a
182
187
 
183
188
  ```
184
189
  .
190
+ .github
191
+ └── workflows/ # Github actions
192
+
185
193
  src/
186
- └── versionHQ/ # Orchestration frameworks on Pydantic
187
- ├── agent/
188
- └── llm/
189
- └── task/
190
- └── team/
191
- └── tool/
192
- └── clients/ # Classes to store the client related information
193
- └── cli/ # CLI commands
194
- └── ...
195
-
196
- ├── db/ # Database files
197
- ├── chroma.sqlite3
198
- └── ...
194
+ └── versionhq/ # Orchestration frameworks
195
+ ├── agent/ # Components
196
+ └── llm/
197
+ └── task/
198
+ └── team/
199
+ └── tool/
200
+ └── cli/
201
+ └── ...
202
+
203
+ ├── db/ # Storage
204
+ ├── chroma.sqlite3
205
+ └── ...
206
+
207
+ └──tests/ # Pytest
208
+ │ └── agent/
209
+ │ └── llm/
210
+ │ └── ...
199
211
 
200
- └──tests/
201
- └── cli/
202
- └── team/
203
- └── ...
204
-
205
- └── uploads/ # Uploaded files for the project
212
+ └── uploads/ # Local repo to store the uploaded files
206
213
 
207
214
  ```
208
215
 
@@ -224,9 +231,9 @@ src/
224
231
 
225
232
  * In case of AssertionError/module mismatch, run Python version control using `.pyenv`
226
233
  ```
227
- pyenv install 3.13.1
228
- pyenv global 3.13.1 (optional: `pyenv global system` to get back to the system default ver.)
229
- uv python pin 3.13.1
234
+ pyenv install 3.12.8
235
+ pyenv global 3.12.8 (optional: `pyenv global system` to get back to the system default ver.)
236
+ uv python pin 3.12.8
230
237
  ```
231
238
 
232
239
  3. Set up environment variables:
@@ -335,6 +342,7 @@ Common issues and solutions:
335
342
  - 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.
336
343
  - Database connection issues: Check if the Chroma DB is properly initialized and accessible.
337
344
  - Memory errors: If processing large contracts, you may need to increase the available memory for the Python process.
345
+ - Issues related to the Python version: Docling/Pytorch is not ready for Python 3.13 as of Jan 2025. Use Python 3.12.x as default by running `uv venv --python 3.12.8` and `uv python pin 3.12.8`.
338
346
  - Issues related to dependencies: `rm -rf uv.lock`, `uv cache clean`, `uv venv`, and run `uv pip install -r requirements.txt -v`.
339
347
  - Issues related to the AI agents or RAG system: Check the `output.log` file for detailed error messages and stack traces.
340
348
  - Issues related to `Python quit unexpectedly`: Check [this stackoverflow article](https://stackoverflow.com/questions/59888499/macos-catalina-python-quit-unexpectedly-error).
@@ -15,7 +15,7 @@ exclude = ["test*", "__pycache__"]
15
15
 
16
16
  [project]
17
17
  name = "versionhq"
18
- version = "1.1.10.8"
18
+ version = "1.1.11.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"
@@ -39,7 +39,13 @@ dependencies = [
39
39
  "appdirs>=1.4.4",
40
40
  "langchain>=0.3.14",
41
41
  "langchain-openai>=0.2.14",
42
- "composio-langchain>=0.6.12"
42
+ "composio-langchain>=0.6.12",
43
+ "chromadb>=0.6.3",
44
+ "docling>=2.16.0",
45
+ "json-repair>=0.35.0",
46
+ "wheel>=0.45.1",
47
+ "pdfplumber>=0.11.5",
48
+ "mem0ai>=0.1.48",
43
49
  ]
44
50
  classifiers = [
45
51
  "Programming Language :: Python",
@@ -47,7 +53,7 @@ classifiers = [
47
53
  "Operating System :: OS Independent",
48
54
  "Development Status :: 3 - Alpha",
49
55
  "Intended Audience :: Developers",
50
- "Topic :: Software Development :: Build Tools",
56
+ "Topic :: Software Development :: Build Tools"
51
57
  ]
52
58
 
53
59
  [project.urls]