versionhq 1.1.12.3__tar.gz → 1.1.12.5__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 (122) hide show
  1. versionhq-1.1.12.5/.github/workflows/deploy_docs.yml +30 -0
  2. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/.gitignore +3 -2
  3. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/.pre-commit-config.yaml +1 -0
  4. versionhq-1.1.12.5/CNAME +1 -0
  5. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/PKG-INFO +62 -61
  6. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/README.md +59 -58
  7. versionhq-1.1.12.5/docs/CNAME +1 -0
  8. versionhq-1.1.12.5/docs/_logos/favicon.ico +0 -0
  9. versionhq-1.1.12.5/docs/_logos/logo192.png +0 -0
  10. versionhq-1.1.12.5/docs/core/Agent.md +524 -0
  11. versionhq-1.1.12.5/docs/core/tool.md +389 -0
  12. versionhq-1.1.12.5/docs/index.md +379 -0
  13. versionhq-1.1.12.5/docs/quickstart.md +122 -0
  14. versionhq-1.1.12.5/docs/stylesheets/main.css +26 -0
  15. versionhq-1.1.12.5/mkdocs.yml +148 -0
  16. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/pyproject.toml +9 -5
  17. versionhq-1.1.12.5/requirements.txt +27 -0
  18. versionhq-1.1.12.5/runtime.txt +2 -0
  19. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/__init__.py +1 -1
  20. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/agent/model.py +48 -24
  21. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/llm/llm_vars.py +1 -1
  22. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/llm/model.py +69 -41
  23. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/task/log_handler.py +1 -1
  24. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/task/model.py +3 -3
  25. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/tool/model.py +1 -4
  26. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq.egg-info/PKG-INFO +62 -61
  27. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq.egg-info/SOURCES.txt +11 -0
  28. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/tests/agent/agent_test.py +17 -10
  29. versionhq-1.1.12.5/tests/doc_test.py +492 -0
  30. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/tests/task/task_test.py +13 -12
  31. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/tests/team/team_test.py +1 -1
  32. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/uv.lock +344 -634
  33. versionhq-1.1.12.3/requirements.txt +0 -465
  34. versionhq-1.1.12.3/runtime.txt +0 -1
  35. versionhq-1.1.12.3/tests/doc_test.py +0 -16
  36. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/.github/workflows/publish.yml +0 -0
  37. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/.github/workflows/publish_testpypi.yml +0 -0
  38. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/.github/workflows/run_tests.yml +0 -0
  39. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/.github/workflows/security_check.yml +0 -0
  40. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/.python-version +0 -0
  41. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/LICENSE +0 -0
  42. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/SECURITY.md +0 -0
  43. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/db/preprocess.py +0 -0
  44. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/requirements-dev.txt +0 -0
  45. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/setup.cfg +0 -0
  46. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/_utils/__init__.py +0 -0
  47. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/_utils/i18n.py +0 -0
  48. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/_utils/logger.py +0 -0
  49. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/_utils/process_config.py +0 -0
  50. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/_utils/usage_metrics.py +0 -0
  51. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/_utils/vars.py +0 -0
  52. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/agent/TEMPLATES/Backstory.py +0 -0
  53. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/agent/TEMPLATES/__init__.py +0 -0
  54. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/agent/__init__.py +0 -0
  55. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/agent/inhouse_agents.py +0 -0
  56. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/agent/parser.py +0 -0
  57. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/agent/rpm_controller.py +0 -0
  58. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/cli/__init__.py +0 -0
  59. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/clients/__init__.py +0 -0
  60. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/clients/customer/__init__.py +0 -0
  61. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/clients/customer/model.py +0 -0
  62. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/clients/product/__init__.py +0 -0
  63. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/clients/product/model.py +0 -0
  64. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/clients/workflow/__init__.py +0 -0
  65. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/clients/workflow/model.py +0 -0
  66. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/knowledge/__init__.py +0 -0
  67. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/knowledge/_utils.py +0 -0
  68. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/knowledge/embedding.py +0 -0
  69. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/knowledge/model.py +0 -0
  70. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/knowledge/source.py +0 -0
  71. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/knowledge/source_docling.py +0 -0
  72. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/knowledge/storage.py +0 -0
  73. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/llm/__init__.py +0 -0
  74. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/memory/__init__.py +0 -0
  75. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/memory/contextual_memory.py +0 -0
  76. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/memory/model.py +0 -0
  77. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/storage/__init__.py +0 -0
  78. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/storage/base.py +0 -0
  79. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/storage/ltm_sqlite_storage.py +0 -0
  80. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/storage/mem0_storage.py +0 -0
  81. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/storage/rag_storage.py +0 -0
  82. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/storage/task_output_storage.py +0 -0
  83. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/storage/utils.py +0 -0
  84. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/task/TEMPLATES/Description.py +0 -0
  85. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/task/__init__.py +0 -0
  86. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/task/evaluate.py +0 -0
  87. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/task/formation.py +0 -0
  88. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/task/formatter.py +0 -0
  89. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/task/structured_response.py +0 -0
  90. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/team/__init__.py +0 -0
  91. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/team/model.py +0 -0
  92. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/team/team_planner.py +0 -0
  93. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/tool/__init__.py +0 -0
  94. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/tool/cache_handler.py +0 -0
  95. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/tool/composio_tool.py +0 -0
  96. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/tool/composio_tool_vars.py +0 -0
  97. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/tool/decorator.py +0 -0
  98. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq/tool/tool_handler.py +0 -0
  99. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq.egg-info/dependency_links.txt +0 -0
  100. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq.egg-info/requires.txt +0 -0
  101. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/src/versionhq.egg-info/top_level.txt +0 -0
  102. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/tests/__init__.py +0 -0
  103. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/tests/agent/__init__.py +0 -0
  104. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/tests/cli/__init__.py +0 -0
  105. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/tests/clients/customer_test.py +0 -0
  106. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/tests/clients/product_test.py +0 -0
  107. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/tests/clients/workflow_test.py +0 -0
  108. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/tests/conftest.py +0 -0
  109. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/tests/knowledge/__init__.py +0 -0
  110. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/tests/knowledge/knowledge_test.py +0 -0
  111. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/tests/knowledge/mock_report_compressed.pdf +0 -0
  112. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/tests/llm/__init__.py +0 -0
  113. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/tests/llm/llm_test.py +0 -0
  114. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/tests/memory/__init__.py +0 -0
  115. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/tests/memory/memory_test.py +0 -0
  116. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/tests/task/__init__.py +0 -0
  117. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/tests/task/llm_connection_test.py +0 -0
  118. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/tests/team/Prompts/Demo_test.py +0 -0
  119. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/tests/team/__init__.py +0 -0
  120. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/tests/tool/__init__.py +0 -0
  121. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/tests/tool/composio_test.py +0 -0
  122. {versionhq-1.1.12.3 → versionhq-1.1.12.5}/tests/tool/tool_test.py +0 -0
@@ -0,0 +1,30 @@
1
+ name: Deploy Docs
2
+ on:
3
+ push:
4
+ branches:
5
+ - main
6
+
7
+ permissions:
8
+ contents: write
9
+
10
+ jobs:
11
+ deploy:
12
+ runs-on: ubuntu-latest
13
+ steps:
14
+ - uses: actions/checkout@v4
15
+ - name: Configure Git Credentials
16
+ run: |
17
+ git config user.name github-actions[bot]
18
+ git config user.email 41898282+github-actions[bot]@users.noreply.github.com
19
+ - uses: actions/setup-python@v5
20
+ with:
21
+ python-version: 3.12
22
+ - run: echo "cache_id=$(date +%s)" >> $GITHUB_ENV
23
+ - uses: actions/cache@v4
24
+ with:
25
+ key: mkdocs-material-${{ env.cache_id }}
26
+ path: .cache
27
+ restore-keys: |
28
+ mkdocs-material-
29
+ - run: pip install mkdocs-material
30
+ - run: mkdocs gh-deploy --force
@@ -5,8 +5,8 @@ entity_memory.py
5
5
 
6
6
  train.py
7
7
 
8
- mkdocs.yml
9
- docs/
8
+ # mkdocs.yml
9
+ # docs/
10
10
 
11
11
  dist/
12
12
  lib/
@@ -23,6 +23,7 @@ temp/*
23
23
  .vscode/*
24
24
  assets/*
25
25
  memo.txt
26
+ site/
26
27
 
27
28
  __pycache__
28
29
  .ruff_cache/
@@ -41,3 +41,4 @@ repos:
41
41
  rev: v2.2.0
42
42
  hooks:
43
43
  - id: doctoc
44
+ files: README.md
@@ -0,0 +1 @@
1
+ docs.versi0n.io
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: versionhq
3
- Version: 1.1.12.3
4
- Summary: An agentic orchestration framework for multi-agent system that shares memory, knowledge base, and RAG tools.
3
+ Version: 1.1.12.5
4
+ Summary: An agentic orchestration framework for building agent networks that handle task automation without human interaction.
5
5
  Author-email: Kuriko Iwai <kuriko@versi0n.io>
6
6
  License: MIT License
7
7
 
@@ -26,7 +26,7 @@ License: MIT License
26
26
  SOFTWARE.
27
27
 
28
28
  Project-URL: Homepage, https://versi0n.io
29
- Project-URL: Documentation, https://chief-oxygen-8a2.notion.site/Documentation-17e923685cf98001a5fad5c4b2acd79b?pvs=73
29
+ Project-URL: Documentation, https://docs.versi0n.io
30
30
  Project-URL: Repository, https://github.com/versionHQ/multi-agent-system
31
31
  Project-URL: Issues, https://github.com/versionHQ/multi-agent-system/issues
32
32
  Keywords: orchestration framework,orchestration,ai agent,multi-agent system,RAG,agent,agentic orchestration,llm
@@ -77,6 +77,7 @@ Requires-Dist: numpy>=1.26.4; extra == "numpy"
77
77
 
78
78
  # Overview
79
79
 
80
+ ![DL](https://img.shields.io/badge/Download-15K+-red)
80
81
  ![MIT license](https://img.shields.io/badge/License-MIT-green)
81
82
  [![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)
82
83
  ![PyPI](https://img.shields.io/badge/PyPI-v1.1.12+-blue)
@@ -89,9 +90,9 @@ Agentic orchestration framework to deploy agent network and handle complex task
89
90
  **Visit:**
90
91
 
91
92
  - [PyPI](https://pypi.org/project/versionhq/)
92
- - [Github (LLM orchestration framework)](https://github.com/versionHQ/multi-agent-system)
93
- - [Use case](https://versi0n.io/) / [Quick demo](https://res.cloudinary.com/dfeirxlea/video/upload/v1737732977/pj_m_home/pnsyh5mfvmilwgt0eusa.mov)
94
- - [Documentation](https://chief-oxygen-8a2.notion.site/Documentation-17e923685cf98001a5fad5c4b2acd79b?pvs=4) *Some components are under review.
93
+ - [Docs](https://docs.versi0n.io)
94
+ - [Github Repository](https://github.com/versionHQ/multi-agent-system)
95
+ - [Playground](https://versi0n.io/)
95
96
 
96
97
 
97
98
  <hr />
@@ -105,13 +106,14 @@ Agentic orchestration framework to deploy agent network and handle complex task
105
106
  - [Quick Start](#quick-start)
106
107
  - [Generate agent networks and launch task execution:](#generate-agent-networks-and-launch-task-execution)
107
108
  - [Solo Agent:](#solo-agent)
108
- - [Return a structured output with a summary in string.](#return-a-structured-output-with-a-summary-in-string)
109
+ - [Solo Agent:](#solo-agent-1)
109
110
  - [Supervising:](#supervising)
110
111
  - [Technologies Used](#technologies-used)
111
112
  - [Project Structure](#project-structure)
112
113
  - [Setup](#setup)
113
114
  - [Contributing](#contributing)
114
- - [Customizing AI Agents](#customizing-ai-agents)
115
+ - [Documentation](#documentation)
116
+ - [Customizing AI Agent](#customizing-ai-agent)
115
117
  - [Modifying RAG Functionality](#modifying-rag-functionality)
116
118
  - [Package Management with uv](#package-management-with-uv)
117
119
  - [Pre-Commit Hooks](#pre-commit-hooks)
@@ -124,7 +126,7 @@ Agentic orchestration framework to deploy agent network and handle complex task
124
126
 
125
127
  ## Key Features
126
128
 
127
- `versionhq` is a Python framework that can generate agent networks for complex task automation without human interaction.
129
+ `versionhq` is a Python framework for agent networks that handle complex task automation without human interaction.
128
130
 
129
131
  Agents are model-agnostic, and will improve task output, while oprimizing token cost and job latency, by sharing their memory, knowledge base, and RAG tools with other agents in the network.
130
132
 
@@ -138,7 +140,7 @@ You can specify a desired formation or allow the agents to determine it autonomo
138
140
 
139
141
  | | **Solo Agent** | **Supervising** | **Network** | **Random** |
140
142
  | :--- | :--- | :--- | :--- | :--- |
141
- | **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"> |
143
+ | **Formation** | <img src="https://res.cloudinary.com/dfeirxlea/image/upload/v1738818211/pj_m_agents/rbgxttfoeqqis1ettlfz.png" alt="solo" width="200"> | <img src="https://res.cloudinary.com/dfeirxlea/image/upload/v1738818211/pj_m_agents/zhungor3elxzer5dum10.png" alt="solo" width="200"> | <img src="https://res.cloudinary.com/dfeirxlea/image/upload/v1738818211/pj_m_agents/dnusl7iy7kiwkxwlpmg8.png" alt="solo" width="200"> | <img src="https://res.cloudinary.com/dfeirxlea/image/upload/v1738818211/pj_m_agents/sndpczatfzbrosxz9ama.png" alt="solo" width="200"> |
142
144
  | **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> |
143
145
  | **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. |
144
146
 
@@ -156,7 +158,7 @@ You can specify a desired formation or allow the agents to determine it autonomo
156
158
 
157
159
  ### Generate agent networks and launch task execution:
158
160
 
159
- ```
161
+ ```python
160
162
  from versionhq import form_agent_network
161
163
 
162
164
  network = form_agent_network(
@@ -171,9 +173,15 @@ You can specify a desired formation or allow the agents to determine it autonomo
171
173
 
172
174
  ### Solo Agent:
173
175
 
174
- #### Return a structured output with a summary in string.
176
+ ### Solo Agent:
175
177
 
176
- ```
178
+ You can simply build an agent using `Agent` model.
179
+
180
+ By default, the agent prioritize JSON serializable output.
181
+
182
+ But you can add a plane text summary of the structured output by using callbacks.
183
+
184
+ ```python
177
185
  from pydantic import BaseModel
178
186
  from versionhq import Agent, Task
179
187
 
@@ -198,23 +206,24 @@ You can specify a desired formation or allow the agents to determine it autonomo
198
206
  print(res)
199
207
  ```
200
208
 
201
- 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).
202
209
 
203
- ```
210
+ This will return a `TaskOutput` object that stores response in plane text, JSON, and Pydantic model: `CustomOutput` formats with a callback result, tool output (if given), and evaluation results (if given).
211
+
212
+ ```python
204
213
  res == TaskOutput(
205
- task_id=UUID('<TASK UUID>')
214
+ task_id=UUID('<TASK UUID>'),
206
215
  raw='{\"test1\":\"random str\", \"test2\":[\"str item 1\", \"str item 2\", \"str item 3\"]}',
207
216
  json_dict={'test1': 'random str', 'test2': ['str item 1', 'str item 2', 'str item 3']},
208
- pydantic=<class '__main__.CustomOutput'>
217
+ pydantic=<class '__main__.CustomOutput'>,
209
218
  tool_output=None,
210
- callback_output='Hi! Here is the result: random str, str item 1, str item 2, str item 3',
219
+ callback_output='Hi! Here is the result: random str, str item 1, str item 2, str item 3', # returned a plain text summary
211
220
  evaluation=None
212
221
  )
213
222
  ```
214
223
 
215
224
  ### Supervising:
216
225
 
217
- ```
226
+ ```python
218
227
  from versionhq import Agent, Task, ResponseField, Team, TeamMember
219
228
 
220
229
  agent_a = Agent(role="agent a", goal="My amazing goals", llm="llm-of-your-choice")
@@ -279,26 +288,22 @@ Tasks can be delegated to a team manager, peers in the team, or completely new a
279
288
  .github
280
289
  └── workflows/ # Github actions
281
290
 
291
+ docs/ # Documentation built by MkDocs
292
+
282
293
  src/
283
- └── versionhq/ # Orchestration frameworks
284
- │ ├── agent/ # Components
294
+ └── versionhq/ # Orchestration framework package
295
+ │ ├── agent/ # Core components
285
296
  │ └── llm/
286
297
  │ └── task/
287
- │ └── team/
288
298
  │ └── tool/
289
- │ └── cli/
290
- │ └── ...
291
- │ │
292
- │ ├── db/ # Storage
293
- │ ├── chroma.sqlite3
294
299
  │ └── ...
295
300
 
296
- └──tests/ # Pytest
301
+ └──tests/ # Pytest - by core component and use cases in the docs
297
302
  │ └── agent/
298
303
  │ └── llm/
299
304
  │ └── ...
300
305
 
301
- └── uploads/ # Local repo to store the uploaded files
306
+ └── uploads/ # Local directory that stores uloaded files
302
307
 
303
308
  ```
304
309
 
@@ -308,17 +313,18 @@ src/
308
313
 
309
314
  1. Install `uv` package manager:
310
315
 
311
- For MacOS:
316
+ For MacOS:
312
317
 
313
- ```
314
- brew install uv
315
- ```
318
+ ```
319
+ brew install uv
320
+ ```
316
321
 
317
- For Ubuntu/Debian:
322
+ For Ubuntu/Debian:
323
+
324
+ ```
325
+ sudo apt-get install uv
326
+ ```
318
327
 
319
- ```
320
- sudo apt-get install uv
321
- ```
322
328
 
323
329
  2. Install dependencies:
324
330
  ```
@@ -340,11 +346,11 @@ src/
340
346
  3. Set up environment variables:
341
347
  Create a `.env` file in the project root and add the following:
342
348
  ```
343
- OPENAI_API_KEY=your-openai-api-key
344
349
  LITELLM_API_KEY=your-litellm-api-key
345
- UPSTAGE_API_KEY=your-upstage-api-key
350
+ OPENAI_API_KEY=your-openai-api-key
346
351
  COMPOSIO_API_KEY=your-composio-api-key
347
352
  COMPOSIO_CLI_KEY=your-composio-cli-key
353
+ [LLM_INTERFACE_PROVIDER_OF_YOUR_CHOICE]_API_KEY=your-api-key
348
354
  ```
349
355
 
350
356
  <hr />
@@ -378,18 +384,30 @@ src/
378
384
  **Optional**
379
385
  * Flag with `#! REFINEME` for any improvements needed and `#! FIXME` for any errors.
380
386
 
381
- * Run a React demo app: [React demo app](https://github.com/versionHQ/test-client-app) to check it on the client endpoint.
387
+ <!-- * Run a React demo app: [React demo app](https://github.com/versionHQ/test-client-app) to check it on the client endpoint.
382
388
  ```
383
389
  npm i
384
390
  npm start
385
391
  ```
386
- The frontend will be available at `http://localhost:3000`.
392
+ The frontend will be available at `http://localhost:3000`. -->
387
393
 
388
394
  * `production` use case is available at `https://versi0n.io`. Currently, we are running alpha test.
389
395
 
390
396
 
397
+ ### Documentation
398
+
399
+ * To edit the documentation, see `docs` repository and edit the respective component.
400
+
401
+ * We use `mkdocs` to update the docs. You can run the doc locally at http://127.0.0.1:8000/:
402
+
403
+ ```
404
+ uv run python3 -m mkdocs serve --clean
405
+ ```
406
+
407
+ * To add a new page, update `mkdocs.yml` in the root. Refer to [MkDocs official docs](https://squidfunk.github.io/mkdocs-material/getting-started/) for more details.
391
408
 
392
- ### Customizing AI Agents
409
+
410
+ ### Customizing AI Agent
393
411
 
394
412
  To add an agent, use `sample` directory to add new `project`. You can define an agent with a specific role, goal, and set of tools.
395
413
 
@@ -454,27 +472,10 @@ Common issues and solutions:
454
472
  ## Frequently Asked Questions (FAQ)
455
473
  **Q. Where can I see if the agent is working?**
456
474
 
457
- > A. You can find a frontend app [here](https://versi0n.io) with real-world outbound use cases.
458
- > You can also test features [here](https://github.com/versionHQ/test-client-app) using React app.
475
+ A. Visit [playground](https://versi0n.io).
476
+
459
477
 
460
478
  **Q. How do you analyze the customer?**
461
479
 
462
480
  > A. We employ soft clustering for each customer.
463
481
  > <img width="200" src="https://res.cloudinary.com/dfeirxlea/image/upload/v1732732628/pj_m_agents/ito937s5d5x0so8isvw6.png">
464
-
465
-
466
- **Q. When should I use a team vs an agent?**
467
-
468
- > A. In essence, use a team for intricate, evolving projects, and agents for quick, straightforward tasks.
469
-
470
- > Use a team when:
471
-
472
- > **Complex tasks**: You need to complete multiple, interconnected tasks that require sequential or hierarchical processing.
473
-
474
- > **Iterative refinement**: You want to iteratively improve upon the output through multiple rounds of feedback and revision.
475
-
476
- > Use an agent when:
477
-
478
- > **Simple tasks**: You have a straightforward, one-off task that doesn't require significant complexity or iteration.
479
-
480
- > **Human input**: You need to provide initial input or guidance to the agent, or you expect to review and refine the output.
@@ -1,5 +1,6 @@
1
1
  # Overview
2
2
 
3
+ ![DL](https://img.shields.io/badge/Download-15K+-red)
3
4
  ![MIT license](https://img.shields.io/badge/License-MIT-green)
4
5
  [![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
6
  ![PyPI](https://img.shields.io/badge/PyPI-v1.1.12+-blue)
@@ -12,9 +13,9 @@ Agentic orchestration framework to deploy agent network and handle complex task
12
13
  **Visit:**
13
14
 
14
15
  - [PyPI](https://pypi.org/project/versionhq/)
15
- - [Github (LLM orchestration framework)](https://github.com/versionHQ/multi-agent-system)
16
- - [Use case](https://versi0n.io/) / [Quick demo](https://res.cloudinary.com/dfeirxlea/video/upload/v1737732977/pj_m_home/pnsyh5mfvmilwgt0eusa.mov)
17
- - [Documentation](https://chief-oxygen-8a2.notion.site/Documentation-17e923685cf98001a5fad5c4b2acd79b?pvs=4) *Some components are under review.
16
+ - [Docs](https://docs.versi0n.io)
17
+ - [Github Repository](https://github.com/versionHQ/multi-agent-system)
18
+ - [Playground](https://versi0n.io/)
18
19
 
19
20
 
20
21
  <hr />
@@ -28,13 +29,14 @@ Agentic orchestration framework to deploy agent network and handle complex task
28
29
  - [Quick Start](#quick-start)
29
30
  - [Generate agent networks and launch task execution:](#generate-agent-networks-and-launch-task-execution)
30
31
  - [Solo Agent:](#solo-agent)
31
- - [Return a structured output with a summary in string.](#return-a-structured-output-with-a-summary-in-string)
32
+ - [Solo Agent:](#solo-agent-1)
32
33
  - [Supervising:](#supervising)
33
34
  - [Technologies Used](#technologies-used)
34
35
  - [Project Structure](#project-structure)
35
36
  - [Setup](#setup)
36
37
  - [Contributing](#contributing)
37
- - [Customizing AI Agents](#customizing-ai-agents)
38
+ - [Documentation](#documentation)
39
+ - [Customizing AI Agent](#customizing-ai-agent)
38
40
  - [Modifying RAG Functionality](#modifying-rag-functionality)
39
41
  - [Package Management with uv](#package-management-with-uv)
40
42
  - [Pre-Commit Hooks](#pre-commit-hooks)
@@ -47,7 +49,7 @@ Agentic orchestration framework to deploy agent network and handle complex task
47
49
 
48
50
  ## Key Features
49
51
 
50
- `versionhq` is a Python framework that can generate agent networks for complex task automation without human interaction.
52
+ `versionhq` is a Python framework for agent networks that handle complex task automation without human interaction.
51
53
 
52
54
  Agents are model-agnostic, and will improve task output, while oprimizing token cost and job latency, by sharing their memory, knowledge base, and RAG tools with other agents in the network.
53
55
 
@@ -61,7 +63,7 @@ You can specify a desired formation or allow the agents to determine it autonomo
61
63
 
62
64
  | | **Solo Agent** | **Supervising** | **Network** | **Random** |
63
65
  | :--- | :--- | :--- | :--- | :--- |
64
- | **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"> |
66
+ | **Formation** | <img src="https://res.cloudinary.com/dfeirxlea/image/upload/v1738818211/pj_m_agents/rbgxttfoeqqis1ettlfz.png" alt="solo" width="200"> | <img src="https://res.cloudinary.com/dfeirxlea/image/upload/v1738818211/pj_m_agents/zhungor3elxzer5dum10.png" alt="solo" width="200"> | <img src="https://res.cloudinary.com/dfeirxlea/image/upload/v1738818211/pj_m_agents/dnusl7iy7kiwkxwlpmg8.png" alt="solo" width="200"> | <img src="https://res.cloudinary.com/dfeirxlea/image/upload/v1738818211/pj_m_agents/sndpczatfzbrosxz9ama.png" alt="solo" width="200"> |
65
67
  | **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> |
66
68
  | **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. |
67
69
 
@@ -79,7 +81,7 @@ You can specify a desired formation or allow the agents to determine it autonomo
79
81
 
80
82
  ### Generate agent networks and launch task execution:
81
83
 
82
- ```
84
+ ```python
83
85
  from versionhq import form_agent_network
84
86
 
85
87
  network = form_agent_network(
@@ -94,9 +96,15 @@ You can specify a desired formation or allow the agents to determine it autonomo
94
96
 
95
97
  ### Solo Agent:
96
98
 
97
- #### Return a structured output with a summary in string.
99
+ ### Solo Agent:
98
100
 
99
- ```
101
+ You can simply build an agent using `Agent` model.
102
+
103
+ By default, the agent prioritize JSON serializable output.
104
+
105
+ But you can add a plane text summary of the structured output by using callbacks.
106
+
107
+ ```python
100
108
  from pydantic import BaseModel
101
109
  from versionhq import Agent, Task
102
110
 
@@ -121,23 +129,24 @@ You can specify a desired formation or allow the agents to determine it autonomo
121
129
  print(res)
122
130
  ```
123
131
 
124
- 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).
125
132
 
126
- ```
133
+ This will return a `TaskOutput` object that stores response in plane text, JSON, and Pydantic model: `CustomOutput` formats with a callback result, tool output (if given), and evaluation results (if given).
134
+
135
+ ```python
127
136
  res == TaskOutput(
128
- task_id=UUID('<TASK UUID>')
137
+ task_id=UUID('<TASK UUID>'),
129
138
  raw='{\"test1\":\"random str\", \"test2\":[\"str item 1\", \"str item 2\", \"str item 3\"]}',
130
139
  json_dict={'test1': 'random str', 'test2': ['str item 1', 'str item 2', 'str item 3']},
131
- pydantic=<class '__main__.CustomOutput'>
140
+ pydantic=<class '__main__.CustomOutput'>,
132
141
  tool_output=None,
133
- callback_output='Hi! Here is the result: random str, str item 1, str item 2, str item 3',
142
+ callback_output='Hi! Here is the result: random str, str item 1, str item 2, str item 3', # returned a plain text summary
134
143
  evaluation=None
135
144
  )
136
145
  ```
137
146
 
138
147
  ### Supervising:
139
148
 
140
- ```
149
+ ```python
141
150
  from versionhq import Agent, Task, ResponseField, Team, TeamMember
142
151
 
143
152
  agent_a = Agent(role="agent a", goal="My amazing goals", llm="llm-of-your-choice")
@@ -202,26 +211,22 @@ Tasks can be delegated to a team manager, peers in the team, or completely new a
202
211
  .github
203
212
  └── workflows/ # Github actions
204
213
 
214
+ docs/ # Documentation built by MkDocs
215
+
205
216
  src/
206
- └── versionhq/ # Orchestration frameworks
207
- │ ├── agent/ # Components
217
+ └── versionhq/ # Orchestration framework package
218
+ │ ├── agent/ # Core components
208
219
  │ └── llm/
209
220
  │ └── task/
210
- │ └── team/
211
221
  │ └── tool/
212
- │ └── cli/
213
- │ └── ...
214
- │ │
215
- │ ├── db/ # Storage
216
- │ ├── chroma.sqlite3
217
222
  │ └── ...
218
223
 
219
- └──tests/ # Pytest
224
+ └──tests/ # Pytest - by core component and use cases in the docs
220
225
  │ └── agent/
221
226
  │ └── llm/
222
227
  │ └── ...
223
228
 
224
- └── uploads/ # Local repo to store the uploaded files
229
+ └── uploads/ # Local directory that stores uloaded files
225
230
 
226
231
  ```
227
232
 
@@ -231,17 +236,18 @@ src/
231
236
 
232
237
  1. Install `uv` package manager:
233
238
 
234
- For MacOS:
239
+ For MacOS:
235
240
 
236
- ```
237
- brew install uv
238
- ```
241
+ ```
242
+ brew install uv
243
+ ```
239
244
 
240
- For Ubuntu/Debian:
245
+ For Ubuntu/Debian:
246
+
247
+ ```
248
+ sudo apt-get install uv
249
+ ```
241
250
 
242
- ```
243
- sudo apt-get install uv
244
- ```
245
251
 
246
252
  2. Install dependencies:
247
253
  ```
@@ -263,11 +269,11 @@ src/
263
269
  3. Set up environment variables:
264
270
  Create a `.env` file in the project root and add the following:
265
271
  ```
266
- OPENAI_API_KEY=your-openai-api-key
267
272
  LITELLM_API_KEY=your-litellm-api-key
268
- UPSTAGE_API_KEY=your-upstage-api-key
273
+ OPENAI_API_KEY=your-openai-api-key
269
274
  COMPOSIO_API_KEY=your-composio-api-key
270
275
  COMPOSIO_CLI_KEY=your-composio-cli-key
276
+ [LLM_INTERFACE_PROVIDER_OF_YOUR_CHOICE]_API_KEY=your-api-key
271
277
  ```
272
278
 
273
279
  <hr />
@@ -301,18 +307,30 @@ src/
301
307
  **Optional**
302
308
  * Flag with `#! REFINEME` for any improvements needed and `#! FIXME` for any errors.
303
309
 
304
- * Run a React demo app: [React demo app](https://github.com/versionHQ/test-client-app) to check it on the client endpoint.
310
+ <!-- * Run a React demo app: [React demo app](https://github.com/versionHQ/test-client-app) to check it on the client endpoint.
305
311
  ```
306
312
  npm i
307
313
  npm start
308
314
  ```
309
- The frontend will be available at `http://localhost:3000`.
315
+ The frontend will be available at `http://localhost:3000`. -->
310
316
 
311
317
  * `production` use case is available at `https://versi0n.io`. Currently, we are running alpha test.
312
318
 
313
319
 
320
+ ### Documentation
321
+
322
+ * To edit the documentation, see `docs` repository and edit the respective component.
323
+
324
+ * We use `mkdocs` to update the docs. You can run the doc locally at http://127.0.0.1:8000/:
325
+
326
+ ```
327
+ uv run python3 -m mkdocs serve --clean
328
+ ```
329
+
330
+ * To add a new page, update `mkdocs.yml` in the root. Refer to [MkDocs official docs](https://squidfunk.github.io/mkdocs-material/getting-started/) for more details.
314
331
 
315
- ### Customizing AI Agents
332
+
333
+ ### Customizing AI Agent
316
334
 
317
335
  To add an agent, use `sample` directory to add new `project`. You can define an agent with a specific role, goal, and set of tools.
318
336
 
@@ -377,27 +395,10 @@ Common issues and solutions:
377
395
  ## Frequently Asked Questions (FAQ)
378
396
  **Q. Where can I see if the agent is working?**
379
397
 
380
- > A. You can find a frontend app [here](https://versi0n.io) with real-world outbound use cases.
381
- > You can also test features [here](https://github.com/versionHQ/test-client-app) using React app.
398
+ A. Visit [playground](https://versi0n.io).
399
+
382
400
 
383
401
  **Q. How do you analyze the customer?**
384
402
 
385
403
  > A. We employ soft clustering for each customer.
386
404
  > <img width="200" src="https://res.cloudinary.com/dfeirxlea/image/upload/v1732732628/pj_m_agents/ito937s5d5x0so8isvw6.png">
387
-
388
-
389
- **Q. When should I use a team vs an agent?**
390
-
391
- > A. In essence, use a team for intricate, evolving projects, and agents for quick, straightforward tasks.
392
-
393
- > Use a team when:
394
-
395
- > **Complex tasks**: You need to complete multiple, interconnected tasks that require sequential or hierarchical processing.
396
-
397
- > **Iterative refinement**: You want to iteratively improve upon the output through multiple rounds of feedback and revision.
398
-
399
- > Use an agent when:
400
-
401
- > **Simple tasks**: You have a straightforward, one-off task that doesn't require significant complexity or iteration.
402
-
403
- > **Human input**: You need to provide initial input or guidance to the agent, or you expect to review and refine the output.
@@ -0,0 +1 @@
1
+ docs.versi0n.io