versionhq 1.2.1.6__tar.gz → 1.2.1.8__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/PKG-INFO +7 -14
  2. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/README.md +6 -13
  3. versionhq-1.2.1.8/docs/_logos/favicon.ico +0 -0
  4. versionhq-1.2.1.8/docs/_logos/logo192.png +0 -0
  5. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/docs/core/task/response-field.md +5 -5
  6. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/docs/core/task-graph.md +4 -4
  7. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/docs/core/task.md +145 -23
  8. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/docs/index.md +6 -15
  9. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/mkdocs.yml +16 -3
  10. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/pyproject.toml +1 -1
  11. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/__init__.py +1 -1
  12. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/task/model.py +2 -2
  13. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq.egg-info/PKG-INFO +7 -14
  14. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/tests/task/doc_test.py +62 -3
  15. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/tests/task/task_test.py +27 -27
  16. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/uv.lock +7 -7
  17. versionhq-1.2.1.6/docs/_logos/favicon.ico +0 -0
  18. versionhq-1.2.1.6/docs/_logos/logo192.png +0 -0
  19. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/.env.sample +0 -0
  20. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/.github/workflows/deploy_docs.yml +0 -0
  21. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/.github/workflows/publish.yml +0 -0
  22. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/.github/workflows/publish_testpypi.yml +0 -0
  23. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/.github/workflows/run_tests.yml +0 -0
  24. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/.github/workflows/security_check.yml +0 -0
  25. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/.gitignore +0 -0
  26. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/.pre-commit-config.yaml +0 -0
  27. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/.python-version +0 -0
  28. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/LICENSE +0 -0
  29. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/SECURITY.md +0 -0
  30. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/db/preprocess.py +0 -0
  31. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/docs/CNAME +0 -0
  32. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/docs/core/Agent.md +0 -0
  33. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/docs/core/task/evaluation.md +0 -0
  34. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/docs/core/task/task-output.md +0 -0
  35. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/docs/core/tool.md +0 -0
  36. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/docs/quickstart.md +0 -0
  37. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/docs/stylesheets/main.css +0 -0
  38. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/docs/tags.md +0 -0
  39. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/requirements-dev.txt +0 -0
  40. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/requirements.txt +0 -0
  41. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/runtime.txt +0 -0
  42. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/setup.cfg +0 -0
  43. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/_utils/__init__.py +0 -0
  44. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/_utils/i18n.py +0 -0
  45. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/_utils/logger.py +0 -0
  46. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/_utils/process_config.py +0 -0
  47. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/_utils/usage_metrics.py +0 -0
  48. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/_utils/vars.py +0 -0
  49. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/agent/TEMPLATES/Backstory.py +0 -0
  50. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/agent/TEMPLATES/__init__.py +0 -0
  51. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/agent/__init__.py +0 -0
  52. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/agent/inhouse_agents.py +0 -0
  53. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/agent/model.py +0 -0
  54. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/agent/parser.py +0 -0
  55. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/agent/rpm_controller.py +0 -0
  56. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/agent_network/__init__.py +0 -0
  57. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/agent_network/model.py +0 -0
  58. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/cli/__init__.py +0 -0
  59. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/clients/__init__.py +0 -0
  60. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/clients/customer/__init__.py +0 -0
  61. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/clients/customer/model.py +0 -0
  62. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/clients/product/__init__.py +0 -0
  63. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/clients/product/model.py +0 -0
  64. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/clients/workflow/__init__.py +0 -0
  65. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/clients/workflow/model.py +0 -0
  66. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/knowledge/__init__.py +0 -0
  67. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/knowledge/_utils.py +0 -0
  68. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/knowledge/embedding.py +0 -0
  69. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/knowledge/model.py +0 -0
  70. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/knowledge/source.py +0 -0
  71. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/knowledge/source_docling.py +0 -0
  72. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/knowledge/storage.py +0 -0
  73. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/llm/__init__.py +0 -0
  74. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/llm/llm_vars.py +0 -0
  75. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/llm/model.py +0 -0
  76. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/memory/__init__.py +0 -0
  77. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/memory/contextual_memory.py +0 -0
  78. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/memory/model.py +0 -0
  79. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/storage/__init__.py +0 -0
  80. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/storage/base.py +0 -0
  81. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/storage/ltm_sqlite_storage.py +0 -0
  82. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/storage/mem0_storage.py +0 -0
  83. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/storage/rag_storage.py +0 -0
  84. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/storage/task_output_storage.py +0 -0
  85. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/storage/utils.py +0 -0
  86. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/task/TEMPLATES/Description.py +0 -0
  87. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/task/__init__.py +0 -0
  88. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/task/evaluate.py +0 -0
  89. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/task/formation.py +0 -0
  90. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/task/formatter.py +0 -0
  91. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/task/log_handler.py +0 -0
  92. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/task/structured_response.py +0 -0
  93. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/task_graph/__init__.py +0 -0
  94. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/task_graph/colors.py +0 -0
  95. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/task_graph/draft.py +0 -0
  96. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/task_graph/model.py +0 -0
  97. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/tool/__init__.py +0 -0
  98. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/tool/cache_handler.py +0 -0
  99. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/tool/composio_tool.py +0 -0
  100. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/tool/composio_tool_vars.py +0 -0
  101. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/tool/decorator.py +0 -0
  102. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/tool/model.py +0 -0
  103. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq/tool/tool_handler.py +0 -0
  104. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq.egg-info/SOURCES.txt +0 -0
  105. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq.egg-info/dependency_links.txt +0 -0
  106. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq.egg-info/requires.txt +0 -0
  107. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/src/versionhq.egg-info/top_level.txt +0 -0
  108. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/tests/__init__.py +0 -0
  109. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/tests/agent/__init__.py +0 -0
  110. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/tests/agent/agent_test.py +0 -0
  111. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/tests/agent/doc_test.py +0 -0
  112. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/tests/agent_network/Prompts/Demo_test.py +0 -0
  113. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/tests/agent_network/__init__.py +0 -0
  114. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/tests/agent_network/agent_network_test.py +0 -0
  115. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/tests/cli/__init__.py +0 -0
  116. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/tests/clients/customer_test.py +0 -0
  117. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/tests/clients/product_test.py +0 -0
  118. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/tests/clients/workflow_test.py +0 -0
  119. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/tests/conftest.py +0 -0
  120. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/tests/doc_test.py +0 -0
  121. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/tests/formation_test.py +0 -0
  122. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/tests/knowledge/__init__.py +0 -0
  123. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/tests/knowledge/knowledge_test.py +0 -0
  124. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/tests/knowledge/mock_report_compressed.pdf +0 -0
  125. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/tests/llm/__init__.py +0 -0
  126. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/tests/llm/llm_test.py +0 -0
  127. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/tests/memory/__init__.py +0 -0
  128. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/tests/memory/memory_test.py +0 -0
  129. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/tests/task/__init__.py +0 -0
  130. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/tests/task/doc_taskoutput_test.py +0 -0
  131. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/tests/task/llm_connection_test.py +0 -0
  132. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/tests/task_graph/__init__.py +0 -0
  133. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/tests/task_graph/doc_test.py +0 -0
  134. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/tests/task_graph/task_graph_test.py +0 -0
  135. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/tests/tool/__init__.py +0 -0
  136. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/tests/tool/composio_test.py +0 -0
  137. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/tests/tool/doc_test.py +0 -0
  138. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/tests/tool/tool_test.py +0 -0
  139. {versionhq-1.2.1.6 → versionhq-1.2.1.8}/tests/usecase_test.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: versionhq
3
- Version: 1.2.1.6
3
+ Version: 1.2.1.8
4
4
  Summary: An agentic orchestration framework for building agent networks that handle task automation.
5
5
  Author-email: Kuriko Iwai <kuriko@versi0n.io>
6
6
  License: MIT License
@@ -81,7 +81,7 @@ Requires-Dist: pygraphviz>=1.14; extra == "pygraphviz"
81
81
 
82
82
  # Overview
83
83
 
84
- [![DL](https://img.shields.io/badge/Download-17K+-red)](https://clickpy.clickhouse.com/dashboard/versionhq)
84
+ [![DL](https://img.shields.io/badge/Download-20K+-red)](https://clickpy.clickhouse.com/dashboard/versionhq)
85
85
  ![MIT license](https://img.shields.io/badge/License-MIT-green)
86
86
  [![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)
87
87
  ![PyPI](https://img.shields.io/badge/PyPI-v1.2.1+-blue)
@@ -93,11 +93,10 @@ Agentic orchestration framework for multi-agent networks and task graphs for com
93
93
 
94
94
  **Visit:**
95
95
 
96
- - [PyPI](https://pypi.org/project/versionhq/)
96
+ - [Playground](https://versi0n.io/playground)
97
97
  - [Docs](https://docs.versi0n.io)
98
98
  - [Github Repository](https://github.com/versionHQ/multi-agent-system)
99
- - [Playground](https://versi0n.io/)
100
-
99
+ - [PyPI](https://pypi.org/project/versionhq/)
101
100
 
102
101
  <hr />
103
102
 
@@ -181,11 +180,11 @@ node_c = task_graph.add_task(task=task_c)
181
180
 
182
181
  task_graph.add_dependency(
183
182
  node_a.identifier, node_b.identifier,
184
- type=vhq.DependencyType.FINISH_TO_START, weight=5, description="B depends on A"
183
+ dependency_type=vhq.DependencyType.FINISH_TO_START, weight=5, description="B depends on A"
185
184
  )
186
185
  task_graph.add_dependency(
187
186
  node_a.identifier, node_c.identifier,
188
- type=vhq.DependencyType.FINISH_TO_FINISH, lag=1, required=False, weight=3
187
+ dependency_type=vhq.DependencyType.FINISH_TO_FINISH, lag=1, required=False, weight=3
189
188
  )
190
189
 
191
190
  # To visualize the graph:
@@ -594,10 +593,4 @@ Common issues and solutions:
594
593
  ## Frequently Asked Questions (FAQ)
595
594
  **Q. Where can I see if the agent is working?**
596
595
 
597
- A. Visit [playground](https://versi0n.io).
598
-
599
-
600
- **Q. How do you analyze the customer?**
601
-
602
- A. We employ soft clustering for each customer.
603
- <img width="200" src="https://res.cloudinary.com/dfeirxlea/image/upload/v1732732628/pj_m_agents/ito937s5d5x0so8isvw6.png">
596
+ A. Visit [playground](https://versi0n.io/playground).
@@ -1,6 +1,6 @@
1
1
  # Overview
2
2
 
3
- [![DL](https://img.shields.io/badge/Download-17K+-red)](https://clickpy.clickhouse.com/dashboard/versionhq)
3
+ [![DL](https://img.shields.io/badge/Download-20K+-red)](https://clickpy.clickhouse.com/dashboard/versionhq)
4
4
  ![MIT license](https://img.shields.io/badge/License-MIT-green)
5
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)
6
6
  ![PyPI](https://img.shields.io/badge/PyPI-v1.2.1+-blue)
@@ -12,11 +12,10 @@ Agentic orchestration framework for multi-agent networks and task graphs for com
12
12
 
13
13
  **Visit:**
14
14
 
15
- - [PyPI](https://pypi.org/project/versionhq/)
15
+ - [Playground](https://versi0n.io/playground)
16
16
  - [Docs](https://docs.versi0n.io)
17
17
  - [Github Repository](https://github.com/versionHQ/multi-agent-system)
18
- - [Playground](https://versi0n.io/)
19
-
18
+ - [PyPI](https://pypi.org/project/versionhq/)
20
19
 
21
20
  <hr />
22
21
 
@@ -100,11 +99,11 @@ node_c = task_graph.add_task(task=task_c)
100
99
 
101
100
  task_graph.add_dependency(
102
101
  node_a.identifier, node_b.identifier,
103
- type=vhq.DependencyType.FINISH_TO_START, weight=5, description="B depends on A"
102
+ dependency_type=vhq.DependencyType.FINISH_TO_START, weight=5, description="B depends on A"
104
103
  )
105
104
  task_graph.add_dependency(
106
105
  node_a.identifier, node_c.identifier,
107
- type=vhq.DependencyType.FINISH_TO_FINISH, lag=1, required=False, weight=3
106
+ dependency_type=vhq.DependencyType.FINISH_TO_FINISH, lag=1, required=False, weight=3
108
107
  )
109
108
 
110
109
  # To visualize the graph:
@@ -513,10 +512,4 @@ Common issues and solutions:
513
512
  ## Frequently Asked Questions (FAQ)
514
513
  **Q. Where can I see if the agent is working?**
515
514
 
516
- A. Visit [playground](https://versi0n.io).
517
-
518
-
519
- **Q. How do you analyze the customer?**
520
-
521
- A. We employ soft clustering for each customer.
522
- <img width="200" src="https://res.cloudinary.com/dfeirxlea/image/upload/v1732732628/pj_m_agents/ito937s5d5x0so8isvw6.png">
515
+ A. Visit [playground](https://versi0n.io/playground).
@@ -7,7 +7,7 @@ tags:
7
7
 
8
8
  <class>`class` versionhq.task.model.<bold>ResponseField<bold></class>
9
9
 
10
- A Pydantic class to store response formats to create JSON response schema.
10
+ A Pydantic class to store response formats to generate a structured response in JSON.
11
11
 
12
12
  <hr/>
13
13
 
@@ -105,7 +105,7 @@ Agents can handle **one layer** of nested items usign `properties` and `items` f
105
105
 
106
106
  We highly recommend to use `gemini-x` or `gpt-x` to get stable results.
107
107
 
108
- ### List with Object
108
+ ### Object in List
109
109
 
110
110
  ```python
111
111
  import versionhq as vhq
@@ -129,7 +129,7 @@ list_with_objects = vhq.ResponseField(
129
129
 
130
130
  <hr />
131
131
 
132
- ### List with List
132
+ ### List in List
133
133
 
134
134
  ```python
135
135
  import versionhq as vhq
@@ -150,7 +150,7 @@ list_with_list = vhq.ResponseField(
150
150
 
151
151
  <hr />
152
152
 
153
- ### Object with List
153
+ ### List in Object
154
154
 
155
155
  ```python
156
156
  import versionhq as vhq
@@ -173,7 +173,7 @@ dict_with_list = vhq.ResponseField(
173
173
 
174
174
  <hr />
175
175
 
176
- ### Object with Object
176
+ ### Object in Object
177
177
 
178
178
  ```python
179
179
  import versionhq as vhq
@@ -23,7 +23,7 @@ The following example demonstrates a simple concept of a `supervising` agent net
23
23
  You can define nodes and edges mannually by creating nodes from tasks, and defining edges.
24
24
 
25
25
 
26
- ### Generating TaskGraph
26
+ ### Generating
27
27
 
28
28
  ```python
29
29
  import versionhq as vhq
@@ -40,11 +40,11 @@ node_c = task_graph.add_task(task=task_c)
40
40
 
41
41
  task_graph.add_dependency(
42
42
  node_a.identifier, node_b.identifier,
43
- type=vhq.DependencyType.FINISH_TO_START, weight=5, description="B depends on A"
43
+ dependency_type=vhq.DependencyType.FINISH_TO_START, weight=5, description="B depends on A"
44
44
  )
45
45
  task_graph.add_dependency(
46
46
  node_a.identifier, node_c.identifier,
47
- type=vhq.DependencyType.FINISH_TO_FINISH, lag=1, required=False, weight=3
47
+ dependency_type=vhq.DependencyType.FINISH_TO_FINISH, lag=1, required=False, weight=3
48
48
  )
49
49
 
50
50
  critical_path, duration, paths = task_graph.find_critical_path()
@@ -57,7 +57,7 @@ assert critical_path and duration and paths
57
57
  ```
58
58
 
59
59
 
60
- ### Activating TaskGraph
60
+ ### Activating
61
61
 
62
62
  Calling `.activate()` begins execution of the graph's nodes, respecting dependencies [`dependency-met`] and prioritizing the critical path.
63
63
 
@@ -9,7 +9,7 @@ tags:
9
9
 
10
10
  A class to store and manage information for individual tasks, including their assignment to agents or agent networks, and dependencies via a node-based system that tracks conditions and status.
11
11
 
12
- Ref. Node / Edge / TaskGraph class
12
+ Ref. Node / Edge / <a href="/core/task-graph">TaskGraph</a> class
13
13
 
14
14
  <hr />
15
15
 
@@ -284,6 +284,7 @@ Context can consist of `Task` objects, `TaskOutput` objects, plain text `strings
284
284
 
285
285
  In this scenario, `sub_task_2` executes before the main task. Its string output is then incorporated into the main task's context prompt on top of other context before the main task is executed.
286
286
 
287
+ <hr>
287
288
 
288
289
  ## Executing
289
290
 
@@ -298,7 +299,6 @@ import versionhq as vhq
298
299
 
299
300
  task = vhq.Task(
300
301
  description="return the output following the given prompt.",
301
- response_fields=[vhq.ResponseField(title="test1", data_type=str, required=True)],
302
302
  allow_delegation=True
303
303
  )
304
304
  task.execute()
@@ -308,47 +308,169 @@ assert "vhq-Delegated-Agent" in task.processed_agents # delegated agent
308
308
  assert task.delegations ==1
309
309
  ```
310
310
 
311
+ <hr>
311
312
 
312
- <!--
313
+ **SYNC - ASYNC**
313
314
 
314
- ## Callbacks
315
- callback: Optional[Callable] = Field(default=None, description="callback to be executed after the task is completed.")
316
- callback_kwargs: Optional[Dict[str, Any]] = Field(default_factory=dict, description="kwargs for the callback when the callback is callable")
315
+ `[var]`<bold>`type: bool = False`</bold>
317
316
 
317
+ You can specify whether the task will be executed asynchronously.
318
318
 
319
- ### tools
320
- tools: Optional[List[ToolSet | Tool | Any]] = Field(default_factory=list, description="tools that the agent can use aside from their tools")
321
- can_use_agent_tools: bool = Field(default=False, description="whether the agent can use their own tools when executing the task")
322
- tool_res_as_final: bool = Field(default=False, description="when set True, tools res will be stored in the `TaskOutput`")
319
+ ```python
320
+ import versionhq as vhq
323
321
 
322
+ task = vhq.Task(
323
+ description="Return a word: 'test'",
324
+ type=vhq.TaskExecutionType.ASYNC # default: vhq.TaskExecutionType.SYNC
325
+ )
324
326
 
327
+ from unittest.mock import patch
328
+ with patch.object(vhq.Agent, "execute_task", return_value="test") as execute:
329
+ res = task.execute()
330
+ assert res.raw == "test"
331
+ execute.assert_called_once_with(task=task, context=None, task_tools=list())
332
+ ```
325
333
 
334
+ <hr>
326
335
 
327
- ## Executing tasks
328
- EXECUTION type
336
+ **Using tools**
329
337
 
330
- ### Sync
338
+ `[var]`<bold>`tools: Optional[List[ToolSet | Tool | Any]] = None`</bold>
331
339
 
332
- <hr />
340
+ `[var]`<bold>`tool_res_as_final: bool = False`</bold>
333
341
 
334
- ### Async
335
342
 
336
- <hr />
343
+ Tasks can directly store tools explicitly called by the agent.
337
344
 
338
- ### Assigning agents
345
+ If the results from the tool should be the final results, set `tool_res_as_final` True.
339
346
 
340
- <hr />
347
+ This will allow the agent to store the tool results in the `tool_output` field of `TaskOutput` object.
341
348
 
342
- ### Context
343
349
 
350
+ ```python
351
+ import versionhq as vhq
352
+ from typing import Callable
353
+
354
+ def random_func(message: str) -> str:
355
+ return message + "_demo"
356
+
357
+ tool = vhq.Tool(name="tool", func=random_func)
358
+ tool_set = vhq.ToolSet(tool=tool, kwargs=dict(message="empty func"))
359
+ task = vhq.Task(
360
+ description="execute the given tools",
361
+ tools=[tool_set,], # stores tools
362
+ tool_res_as_final=True, # stores tool results in TaskOutput object
363
+ )
364
+
365
+ res = task.execute()
366
+ assert res.tool_output == "empty func_demo"
367
+ ```
368
+
369
+ Ref. <a href="/core/tool">Tool</a> class / <a href="/core/task/task-output">TaskOutput</a> class
370
+
371
+ <hr>
372
+
373
+ **Using agents' tools**
374
+
375
+ `[var]`<bold>`can_use_agent_tools: bool = True`</bold>
376
+
377
+ Tasks can explicitly stop/start using agent tools on top of the tools stored in the task object.
378
+
379
+ ```python
380
+ import versionhq as vhq
381
+
382
+ simple_tool = vhq.Tool(name="simple tool", func=lambda x: "simple func")
383
+ agent = vhq.Agent(role="demo", goal="execute tools", tools=[simple_tool,])
384
+ task = vhq.Task(
385
+ description="execute tools",
386
+ can_use_agent_tools=True, # Flagged
387
+ tool_res_as_final=True
388
+ )
389
+ res = task.execute(agent=agent)
390
+ assert res.tool_output == "simple func"
391
+ ```
344
392
 
393
+ <hr>
394
+
395
+ ## Callback
396
+
397
+ `[var]`<bold>`callback: Optional[Callable] = None`</bold>
398
+
399
+ `[var]`<bold>`callback_kwargs: Optional[Dict[str, Any]] = dict()`</bold>
400
+
401
+ After executing the task, you can run a `callback` function with `callback_kwargs` and task output as parameters.
402
+
403
+ Callback results will be stored in `callback_output` filed of the `TaskOutput` object.
404
+
405
+ ```python
406
+ import versionhq as vhq
407
+
408
+ def callback_func(condition: str, test1: str):
409
+ return f"Result: {test1}, condition added: {condition}"
410
+
411
+ task = vhq.Task(
412
+ description="return the output following the given prompt.",
413
+ callback=callback_func,
414
+ callback_kwargs=dict(condition="demo for pytest")
415
+ )
416
+ res = task.execute()
417
+
418
+ assert res and isinstance(res, vhq.TaskOutput)
419
+ assert res.task_id is task.id
420
+ assert "demo for pytest" in res.callback_output
421
+ ```
422
+
423
+ <hr>
345
424
 
346
425
  ## Evaluating
347
426
 
348
- should_evaluate: bool = Field(default=False, description="True to run the evaluation flow")
349
- eval_criteria: Optional[List[str]] = Field(default_factory=list, description="criteria to evaluate the outcome. i.e., fit to the brand tone")
427
+ `[var]`<bold>`should_evaluate: bool = False`</bold>
428
+
429
+ `[var]`<bold>`eval_criteria: Optional[List[str]] = list()`</bold>
430
+
431
+ You can turn on customized evaluations using the given criteria.
432
+
433
+ Refer <a href="/core/task/task-output">TaskOutput</a> class for details.
434
+
435
+ <hr>
436
+
437
+
438
+ ## Ref
439
+
440
+ ### Variables
441
+
442
+ | <div style="width:160px">**Variable**</div> | **Data Type** | **Default** | **Nullable** | **Description** |
443
+ | :--- | :--- | :--- | :--- | :--- |
444
+ | **`id`** | UUID | uuid.uuid4() | False | Stores task `id` as an identifier. |
445
+ | **`name`** | Optional[str] | None | True | Stores a task name (Inherited as `node` identifier if the task is dependent) |
446
+ | **`description`** | str | None | False | Required field to store a concise task description |
447
+ | **`pydantic_output`** | Optional[Type[BaseModel]] | None | True | Stores pydantic custom output class for structured response |
448
+ | **`response_fields`** | Optional[List[ResponseField]] | list() | True | Stores JSON formats for stuructured response |
449
+ | **`tools`** | Optional[List[ToolSet | Tool | Any]] | None | True | Stores tools to be called when the agent executes the task. |
450
+ | **`can_use_agent_tools`** | bool | True | - | Whether to use the agent tools |
451
+ | **`tool_res_as_final`** | bool | False | - | Whether to make the tool response a final response from the agent |
452
+ | **`execution_type`** | TaskExecutionType | TaskExecutionType.SYNC | - | Sync or async execution |
453
+ | **`allow_delegation`** | bool | False | - | Whether to allow the agent to delegate the task to another agent |
454
+ | **`callback`** | Optional[Callable] | None | True | Callback function to be executed after LLM calling |
455
+ | **`callback_kwargs`** | Optional[Dict[str, Any]] | dict() | True | Args for the callback function (if any)|
456
+ | **`should_evaluate`** | bool | False | - | Whether to evaluate the task output using eval criteria |
457
+ | **`eval_criteria`** | Optional[List[str]] | list() | True | Evaluation criteria given by the human client |
458
+ | **`processed_agents`** | Set[str] | set() | True | [Ops] Stores roles of the agents executed the task |
459
+ | **`tool_errors`** | int | 0 | True | [Ops] Stores number of tool errors |
460
+ | **`delegation`** | int | 0 | True | [Ops] Stores number of agent delegations |
461
+ | **`output`** | Optional[TaskOutput] | None | True | [Ops] Stores `TaskOutput` object after the execution |
462
+
463
+
464
+ ### Class Methods
465
+
466
+ | <div style="width:120px">**Method**</div> | <div style="width:300px">**Params**</div> | **Returns** | **Description** |
467
+ | :--- | :--- | :--- | :--- |
468
+ | **`execute`** | <p>type: TaskExecutionType = None<br>agent: Optional["vhq.Agent"] = None<br>context: Optional[Any] = None</p> | InstanceOf[`TaskOutput`] or None (error) | A main method to handle task execution. Auto-build an agent when the agent is not given. |
350
469
 
351
470
 
352
- ## Recording
471
+ ### Properties
353
472
 
354
- output: Optional[TaskOutput] = Field(default=None, description="store the final task output in TaskOutput class") -->
473
+ | <div style="width:120px">**Property**</div> | **Returns** | **Description** |
474
+ | :--- | :--- | :--- |
475
+ | **`key`** | str | Returns task key based on its description and output format. |
476
+ | **`summary`** | str | Returns a summary of the task based on its id, description and tools. |
@@ -1,6 +1,6 @@
1
1
  # Overview
2
2
 
3
- [![DL](https://img.shields.io/badge/Download-17K+-red)](https://clickpy.clickhouse.com/dashboard/versionhq)
3
+ [![DL](https://img.shields.io/badge/Download-20K+-red)](https://clickpy.clickhouse.com/dashboard/versionhq)
4
4
  ![MIT license](https://img.shields.io/badge/License-MIT-green)
5
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)
6
6
  ![PyPI](https://img.shields.io/badge/PyPI-v1.2.1+-blue)
@@ -11,9 +11,9 @@ A Python framework for agentic orchestration that handles complex task automatio
11
11
 
12
12
  **Visit:**
13
13
 
14
+ - [Playground](https://versi0n.io/playground)
14
15
  - [PyPI](https://pypi.org/project/versionhq/)
15
16
  - [Docs](https://docs.versi0n.io)
16
- - [Playground](https://versi0n.io/)
17
17
 
18
18
  **Contribute:**
19
19
 
@@ -69,11 +69,11 @@ node_c = task_graph.add_task(task=task_c)
69
69
 
70
70
  task_graph.add_dependency(
71
71
  node_a.identifier, node_b.identifier,
72
- type=vhq.DependencyType.FINISH_TO_START, weight=5, description="B depends on A"
72
+ dependency_type=vhq.DependencyType.FINISH_TO_START, weight=5, description="B depends on A"
73
73
  )
74
74
  task_graph.add_dependency(
75
75
  node_a.identifier, node_c.identifier,
76
- type=vhq.DependencyType.FINISH_TO_FINISH, lag=1, required=False, weight=3
76
+ dependency_type=vhq.DependencyType.FINISH_TO_FINISH, lag=1, required=False, weight=3
77
77
  )
78
78
 
79
79
  # To visualize the graph:
@@ -182,16 +182,7 @@ agent.update(
182
182
 
183
183
  **Setting up a local env file**
184
184
 
185
- Create `.env` file in the project root and add following:
186
-
187
- ```
188
- OPENAI_API_KEY=your-openai-api-key
189
- GEMINI_API_KEY=your-gemini-api-key
190
- LITELLM_API_KEY=your-litellm-api-key
191
- COMPOSIO_API_KEY=your-composio-api-key
192
- COMPOSIO_CLI_KEY=your-composio-cli-key
193
- [OTHER_LLM_INTERFACE_PROVIDER_OF_YOUR_CHOICE]_API_KEY=your-api-key
194
- ```
185
+ Create `.env` file at the root of the project directry and add your keys following `.env.sample`.
195
186
 
196
187
  <hr />
197
188
 
@@ -268,7 +259,7 @@ Common issues and solutions:
268
259
  ## FAQ
269
260
  **Q. Where can I see if the agent is working?**
270
261
 
271
- A. Visit [playground](https://versi0n.io).
262
+ A. Visit [playground](https://versi0n.io/playground).
272
263
 
273
264
  <hr />
274
265
 
@@ -83,7 +83,7 @@ theme:
83
83
  icon: material/brightness-7
84
84
  name: Switch to light mode
85
85
  features:
86
- - announce.dismiss
86
+ # - announce.dismiss
87
87
  - content.action.edit
88
88
  - content.action.view
89
89
  - content.code.annotate
@@ -92,6 +92,7 @@ theme:
92
92
  - content.tabs.link
93
93
  - content.tooltips
94
94
  - header.autohide
95
+ - navigation.tabs
95
96
  - navigation.path
96
97
  - navigation.top
97
98
  - navigation.footer
@@ -117,10 +118,9 @@ nav:
117
118
  - TaskOutput: 'core/task/task-output.md'
118
119
  - Evaluation: 'core/task/evaluation.md'
119
120
  - Tool: 'core/tool.md'
120
- # - Compoio Tools: 'core/composio-tool.md'
121
121
  - Tags: 'tags.md'
122
122
  - Examples:
123
- - Playground: https://versi0n.io
123
+ - Playground: https://versi0n.io/playground
124
124
  - Experiment - Agent Performance: https://github.com/versionHQ/exp-agent-performance
125
125
  - Change Log: https://github.com/versionHQ/multi-agent-system/releases
126
126
 
@@ -137,6 +137,19 @@ extra:
137
137
  analytics:
138
138
  provider: google
139
139
  property: G-E19K228ENL
140
+ feedback:
141
+ title: Was this page helpful?
142
+ ratings:
143
+ - icon: material/emoticon-happy-outline
144
+ name: This page was helpful
145
+ data: 1
146
+ note: >-
147
+ Thanks for your feedback!
148
+ - icon: material/emoticon-sad-outline
149
+ name: This page could be improved
150
+ data: 0
151
+ note: >-
152
+ Thanks for your feedback! Help us improve this page by using our <a href="https://github.com/versionhq/multi-agent-system/issues/new/?title=[Feedback]+{title}+-+{url}" target="_blank" rel="noopener">feedback form</a>.
140
153
  social:
141
154
  - icon: fontawesome/brands/github
142
155
  link: https://github.com/versionHQ/multi-agent-system
@@ -15,7 +15,7 @@ exclude = ["test*", "__pycache__", "*.egg-info"]
15
15
 
16
16
  [project]
17
17
  name = "versionhq"
18
- version = "1.2.1.6"
18
+ version = "1.2.1.8"
19
19
  authors = [{ name = "Kuriko Iwai", email = "kuriko@versi0n.io" }]
20
20
  description = "An agentic orchestration framework for building agent networks that handle task automation."
21
21
  readme = "README.md"
@@ -31,7 +31,7 @@ from versionhq.task.formation import form_agent_network
31
31
  from versionhq.task_graph.draft import workflow
32
32
 
33
33
 
34
- __version__ = "1.2.1.6"
34
+ __version__ = "1.2.1.8"
35
35
  __all__ = [
36
36
  "Agent",
37
37
 
@@ -276,7 +276,7 @@ class Task(BaseModel):
276
276
 
277
277
  # tool usage
278
278
  tools: Optional[List[ToolSet | Tool | Any]] = Field(default_factory=list, description="tools that the agent can use aside from their tools")
279
- can_use_agent_tools: bool = Field(default=False, description="whether the agent can use their own tools when executing the task")
279
+ can_use_agent_tools: bool = Field(default=True, description="whether the agent can use their own tools when executing the task")
280
280
  tool_res_as_final: bool = Field(default=False, description="when set True, tools res will be stored in the `TaskOutput`")
281
281
 
282
282
  # executing
@@ -478,7 +478,7 @@ Ref. Output image: {output_formats_to_follow}
478
478
  return output
479
479
 
480
480
  else:
481
- r = str(raw).replace("{'", '{"').replace("{ '", '{"').replace("': '", '": "').replace("'}", '"}').replace("' }", '"}').replace("', '", '", "').replace("['", '["').replace("[ '", '[ "').replace("']", '"]').replace("' ]", '" ]').replace("{\n'", '{"').replace("{\'", '{"').replace("true", "True").replace("false", "False")
481
+ r = str(raw).strip().replace("{'", '{"').replace("{ '", '{"').replace("': '", '": "').replace("'}", '"}').replace("' }", '"}').replace("', '", '", "').replace("['", '["').replace("[ '", '[ "').replace("']", '"]').replace("' ]", '" ]').replace("{\n'", '{"').replace("{\'", '{"').replace("true", "True").replace("false", "False").replace('\"', "'")
482
482
  j = json.dumps(eval(r))
483
483
  output = json.loads(j)
484
484
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: versionhq
3
- Version: 1.2.1.6
3
+ Version: 1.2.1.8
4
4
  Summary: An agentic orchestration framework for building agent networks that handle task automation.
5
5
  Author-email: Kuriko Iwai <kuriko@versi0n.io>
6
6
  License: MIT License
@@ -81,7 +81,7 @@ Requires-Dist: pygraphviz>=1.14; extra == "pygraphviz"
81
81
 
82
82
  # Overview
83
83
 
84
- [![DL](https://img.shields.io/badge/Download-17K+-red)](https://clickpy.clickhouse.com/dashboard/versionhq)
84
+ [![DL](https://img.shields.io/badge/Download-20K+-red)](https://clickpy.clickhouse.com/dashboard/versionhq)
85
85
  ![MIT license](https://img.shields.io/badge/License-MIT-green)
86
86
  [![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)
87
87
  ![PyPI](https://img.shields.io/badge/PyPI-v1.2.1+-blue)
@@ -93,11 +93,10 @@ Agentic orchestration framework for multi-agent networks and task graphs for com
93
93
 
94
94
  **Visit:**
95
95
 
96
- - [PyPI](https://pypi.org/project/versionhq/)
96
+ - [Playground](https://versi0n.io/playground)
97
97
  - [Docs](https://docs.versi0n.io)
98
98
  - [Github Repository](https://github.com/versionHQ/multi-agent-system)
99
- - [Playground](https://versi0n.io/)
100
-
99
+ - [PyPI](https://pypi.org/project/versionhq/)
101
100
 
102
101
  <hr />
103
102
 
@@ -181,11 +180,11 @@ node_c = task_graph.add_task(task=task_c)
181
180
 
182
181
  task_graph.add_dependency(
183
182
  node_a.identifier, node_b.identifier,
184
- type=vhq.DependencyType.FINISH_TO_START, weight=5, description="B depends on A"
183
+ dependency_type=vhq.DependencyType.FINISH_TO_START, weight=5, description="B depends on A"
185
184
  )
186
185
  task_graph.add_dependency(
187
186
  node_a.identifier, node_c.identifier,
188
- type=vhq.DependencyType.FINISH_TO_FINISH, lag=1, required=False, weight=3
187
+ dependency_type=vhq.DependencyType.FINISH_TO_FINISH, lag=1, required=False, weight=3
189
188
  )
190
189
 
191
190
  # To visualize the graph:
@@ -594,10 +593,4 @@ Common issues and solutions:
594
593
  ## Frequently Asked Questions (FAQ)
595
594
  **Q. Where can I see if the agent is working?**
596
595
 
597
- A. Visit [playground](https://versi0n.io).
598
-
599
-
600
- **Q. How do you analyze the customer?**
601
-
602
- A. We employ soft clustering for each customer.
603
- <img width="200" src="https://res.cloudinary.com/dfeirxlea/image/upload/v1732732628/pj_m_agents/ito937s5d5x0so8isvw6.png">
596
+ A. Visit [playground](https://versi0n.io/playground).