versionhq 1.2.2.4__tar.gz → 1.2.2.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 (152) hide show
  1. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/PKG-INFO +4 -7
  2. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/README.md +3 -6
  3. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/docs/core/agent/index.md +1 -1
  4. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/docs/index.md +1 -4
  5. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/docs/quickstart.md +1 -1
  6. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/pyproject.toml +1 -1
  7. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/__init__.py +1 -1
  8. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/agent/inhouse_agents.py +1 -1
  9. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/agent/model.py +6 -6
  10. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq.egg-info/PKG-INFO +4 -7
  11. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/tests/agent/agent_test.py +2 -5
  12. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/tests/doc_test.py +3 -3
  13. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/tests/usecase_test.py +1 -4
  14. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/uv.lock +8 -7
  15. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/.env.sample +0 -0
  16. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/.github/workflows/deploy_docs.yml +0 -0
  17. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/.github/workflows/publish.yml +0 -0
  18. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/.github/workflows/publish_testpypi.yml +0 -0
  19. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/.github/workflows/run_tests.yml +0 -0
  20. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/.github/workflows/security_check.yml +0 -0
  21. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/.gitignore +0 -0
  22. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/.pre-commit-config.yaml +0 -0
  23. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/.python-version +0 -0
  24. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/LICENSE +0 -0
  25. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/SECURITY.md +0 -0
  26. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/db/preprocess.py +0 -0
  27. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/docs/CNAME +0 -0
  28. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/docs/_logos/favicon.ico +0 -0
  29. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/docs/_logos/logo192.png +0 -0
  30. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/docs/core/agent/config.md +0 -0
  31. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/docs/core/agent/task-handling.md +0 -0
  32. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/docs/core/agent-network/config.md +0 -0
  33. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/docs/core/agent-network/form.md +0 -0
  34. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/docs/core/agent-network/index.md +0 -0
  35. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/docs/core/agent-network/ref.md +0 -0
  36. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/docs/core/llm/index.md +0 -0
  37. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/docs/core/task/evaluation.md +0 -0
  38. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/docs/core/task/index.md +0 -0
  39. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/docs/core/task/response-field.md +0 -0
  40. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/docs/core/task/task-execution.md +0 -0
  41. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/docs/core/task/task-output.md +0 -0
  42. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/docs/core/task/task-ref.md +0 -0
  43. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/docs/core/task/task-strc-response.md +0 -0
  44. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/docs/core/task-graph/index.md +0 -0
  45. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/docs/core/tool.md +0 -0
  46. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/docs/stylesheets/main.css +0 -0
  47. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/docs/tags.md +0 -0
  48. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/mkdocs.yml +0 -0
  49. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/requirements-dev.txt +0 -0
  50. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/requirements.txt +0 -0
  51. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/runtime.txt +0 -0
  52. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/setup.cfg +0 -0
  53. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/_utils/__init__.py +0 -0
  54. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/_utils/i18n.py +0 -0
  55. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/_utils/llm_as_a_judge.py +0 -0
  56. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/_utils/logger.py +0 -0
  57. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/_utils/process_config.py +0 -0
  58. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/_utils/usage_metrics.py +0 -0
  59. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/_utils/vars.py +0 -0
  60. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/agent/TEMPLATES/Backstory.py +0 -0
  61. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/agent/TEMPLATES/__init__.py +0 -0
  62. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/agent/__init__.py +0 -0
  63. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/agent/parser.py +0 -0
  64. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/agent/rpm_controller.py +0 -0
  65. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/agent_network/__init__.py +0 -0
  66. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/agent_network/formation.py +0 -0
  67. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/agent_network/model.py +0 -0
  68. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/cli/__init__.py +0 -0
  69. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/clients/__init__.py +0 -0
  70. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/clients/customer/__init__.py +0 -0
  71. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/clients/customer/model.py +0 -0
  72. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/clients/product/__init__.py +0 -0
  73. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/clients/product/model.py +0 -0
  74. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/clients/workflow/__init__.py +0 -0
  75. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/clients/workflow/model.py +0 -0
  76. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/knowledge/__init__.py +0 -0
  77. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/knowledge/_utils.py +0 -0
  78. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/knowledge/embedding.py +0 -0
  79. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/knowledge/model.py +0 -0
  80. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/knowledge/source.py +0 -0
  81. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/knowledge/source_docling.py +0 -0
  82. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/knowledge/storage.py +0 -0
  83. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/llm/__init__.py +0 -0
  84. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/llm/llm_vars.py +0 -0
  85. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/llm/model.py +0 -0
  86. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/memory/__init__.py +0 -0
  87. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/memory/contextual_memory.py +0 -0
  88. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/memory/model.py +0 -0
  89. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/storage/__init__.py +0 -0
  90. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/storage/base.py +0 -0
  91. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/storage/ltm_sqlite_storage.py +0 -0
  92. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/storage/mem0_storage.py +0 -0
  93. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/storage/rag_storage.py +0 -0
  94. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/storage/task_output_storage.py +0 -0
  95. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/storage/utils.py +0 -0
  96. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/task/TEMPLATES/Description.py +0 -0
  97. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/task/__init__.py +0 -0
  98. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/task/evaluation.py +0 -0
  99. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/task/formatter.py +0 -0
  100. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/task/model.py +0 -0
  101. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/task/structured_response.py +0 -0
  102. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/task_graph/__init__.py +0 -0
  103. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/task_graph/colors.py +0 -0
  104. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/task_graph/draft.py +0 -0
  105. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/task_graph/model.py +0 -0
  106. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/tool/__init__.py +0 -0
  107. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/tool/cache_handler.py +0 -0
  108. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/tool/composio_tool.py +0 -0
  109. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/tool/composio_tool_vars.py +0 -0
  110. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/tool/decorator.py +0 -0
  111. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/tool/model.py +0 -0
  112. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/tool/rag_tool.py +0 -0
  113. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq/tool/tool_handler.py +0 -0
  114. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq.egg-info/SOURCES.txt +0 -0
  115. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq.egg-info/dependency_links.txt +0 -0
  116. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq.egg-info/requires.txt +0 -0
  117. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/src/versionhq.egg-info/top_level.txt +0 -0
  118. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/tests/__init__.py +0 -0
  119. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/tests/agent/__init__.py +0 -0
  120. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/tests/agent/doc_test.py +0 -0
  121. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/tests/agent_network/Prompts/Demo_test.py +0 -0
  122. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/tests/agent_network/__init__.py +0 -0
  123. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/tests/agent_network/agent_network_test.py +0 -0
  124. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/tests/agent_network/doc_test.py +0 -0
  125. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/tests/cli/__init__.py +0 -0
  126. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/tests/clients/customer_test.py +0 -0
  127. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/tests/clients/product_test.py +0 -0
  128. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/tests/clients/workflow_test.py +0 -0
  129. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/tests/conftest.py +0 -0
  130. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/tests/formation_test.py +0 -0
  131. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/tests/knowledge/__init__.py +0 -0
  132. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/tests/knowledge/knowledge_test.py +0 -0
  133. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/tests/knowledge/mock_report_compressed.pdf +0 -0
  134. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/tests/llm/__init__.py +0 -0
  135. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/tests/llm/llm_test.py +0 -0
  136. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/tests/memory/__init__.py +0 -0
  137. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/tests/memory/memory_test.py +0 -0
  138. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/tests/sample.json +0 -0
  139. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/tests/task/__init__.py +0 -0
  140. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/tests/task/doc_taskoutput_test.py +0 -0
  141. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/tests/task/doc_test.py +0 -0
  142. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/tests/task/eval_test.py +0 -0
  143. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/tests/task/llm_connection_test.py +0 -0
  144. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/tests/task/task_test.py +0 -0
  145. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/tests/task_graph/__init__.py +0 -0
  146. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/tests/task_graph/doc_test.py +0 -0
  147. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/tests/task_graph/task_graph_test.py +0 -0
  148. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/tests/tool/__init__.py +0 -0
  149. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/tests/tool/composio_test.py +0 -0
  150. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/tests/tool/doc_test.py +0 -0
  151. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/tests/tool/rag_tool_test.py +0 -0
  152. {versionhq-1.2.2.4 → versionhq-1.2.2.5}/tests/tool/tool_test.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: versionhq
3
- Version: 1.2.2.4
3
+ Version: 1.2.2.5
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
@@ -227,10 +227,7 @@ The following code snippet demonstrates agent customization:
227
227
  ```python
228
228
  import versionhq as vhq
229
229
 
230
- agent = vhq.Agent(
231
- role="Marketing Analyst",
232
- goal="my amazing goal"
233
- ) # assuming this agent was created during the network formation
230
+ agent = vhq.Agent(role="Marketing Analyst")
234
231
 
235
232
  # update the agent
236
233
  agent.update(
@@ -321,8 +318,8 @@ To create an agent network with one or more manager agents, designate members us
321
318
  ```python
322
319
  import versionhq as vhq
323
320
 
324
- agent_a = vhq.Agent(role="agent a", goal="My amazing goals", llm="llm-of-your-choice")
325
- agent_b = vhq.Agent(role="agent b", goal="My amazing goals", llm="llm-of-your-choice")
321
+ agent_a = vhq.Agent(role="agent a", llm="llm-of-your-choice")
322
+ agent_b = vhq.Agent(role="agent b", llm="llm-of-your-choice")
326
323
 
327
324
  task_1 = vhq.Task(
328
325
  description="Analyze the client's business model.",
@@ -141,10 +141,7 @@ The following code snippet demonstrates agent customization:
141
141
  ```python
142
142
  import versionhq as vhq
143
143
 
144
- agent = vhq.Agent(
145
- role="Marketing Analyst",
146
- goal="my amazing goal"
147
- ) # assuming this agent was created during the network formation
144
+ agent = vhq.Agent(role="Marketing Analyst")
148
145
 
149
146
  # update the agent
150
147
  agent.update(
@@ -235,8 +232,8 @@ To create an agent network with one or more manager agents, designate members us
235
232
  ```python
236
233
  import versionhq as vhq
237
234
 
238
- agent_a = vhq.Agent(role="agent a", goal="My amazing goals", llm="llm-of-your-choice")
239
- agent_b = vhq.Agent(role="agent b", goal="My amazing goals", llm="llm-of-your-choice")
235
+ agent_a = vhq.Agent(role="agent a", llm="llm-of-your-choice")
236
+ agent_b = vhq.Agent(role="agent b", llm="llm-of-your-choice")
240
237
 
241
238
  task_1 = vhq.Task(
242
239
  description="Analyze the client's business model.",
@@ -7,7 +7,7 @@ tags:
7
7
 
8
8
  <class>`class` versionhq.agent.model.<bold>Agent<bold></class>
9
9
 
10
- A Pydantic class to store `Agent` objects and handle `Task` execution as well as `LLM` configuration.
10
+ A Pydantic class to store an `Agent` object that handles `Task` execution.
11
11
 
12
12
 
13
13
  ## Quick Start
@@ -113,10 +113,7 @@ The following code snippet demonstrates agent customization:
113
113
  ```python
114
114
  import versionhq as vhq
115
115
 
116
- agent = vhq.Agent(
117
- role="Marketing Analyst",
118
- goal="my amazing goal"
119
- ) # assuming this agent was created during the network formation
116
+ agent = vhq.Agent(role="Marketing Analyst")
120
117
 
121
118
  # update the agent
122
119
  agent.update(
@@ -48,7 +48,7 @@ def dummy_func(message: str, test1: str, test2: list[str]) -> str:
48
48
  return f"""{message}: {test1}, {", ".join(test2)}"""
49
49
 
50
50
 
51
- agent = vhq.Agent(role="demo", goal="amazing project goal")
51
+ agent = vhq.Agent(role="demo manager")
52
52
 
53
53
  task = vhq.Task(
54
54
  description="Amazing task",
@@ -15,7 +15,7 @@ exclude = ["test*", "__pycache__", "*.egg-info"]
15
15
 
16
16
  [project]
17
17
  name = "versionhq"
18
- version = "1.2.2.4"
18
+ version = "1.2.2.5"
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"
@@ -32,7 +32,7 @@ from versionhq.agent_network.formation import form_agent_network
32
32
  from versionhq.task_graph.draft import workflow
33
33
 
34
34
 
35
- __version__ = "1.2.2.4"
35
+ __version__ = "1.2.2.5"
36
36
  __all__ = [
37
37
  "Agent",
38
38
 
@@ -38,7 +38,7 @@ vhq_formation_planner = Agent(
38
38
  "Solo is a formation where a single agent with tools, knowledge, and memory handles tasks indivudually. When self-learning mode is on - it will turn into Random formation. Typical usecase is an email agent drafts promo message for the given audience using their own knowledge.",
39
39
  "Supervising is a formation where the leader agent gives directions, while sharing its knowledge and memory with subbordinates.Subordinates can be solo agents or networks. Typical usecase is that the leader agent strategizes an outbound campaign plan and assigns components such as media mix or message creation to subordinate agents.",
40
40
  "Network is a formation where multple agents can share tasks, knowledge, and memory among network members without hierarchy. Typical usecase is that an email agent and social media agent share the product knowledge and deploy multi-channel outbound campaign. ",
41
- "Random is a formation where a single agent handles tasks, asking help from other agents without sharing its memory or knowledge. Typical usecase is that an email agent drafts promo message for the given audience, asking insights on tones from other email agents which oversee other customer clusters, or an agent calls the external, third party agent to deploy the campaign. ",
41
+ "Random is a formation where a single agent handles tasks, asking help from other agents without sharing its memory or knowledge. Typical usecase is that an email agent drafts promo message for the given audience, asking insights on tones from other email agents which oversee other customer clusters, or an agent calls the external, third party agent to deploy the campaign.",
42
42
  ]
43
43
  )
44
44
 
@@ -35,8 +35,8 @@ class Agent(BaseModel):
35
35
  config: Optional[Dict[str, Any]] = Field(default=None, exclude=True, description="values to add to the Agent class")
36
36
 
37
37
  id: UUID4 = Field(default_factory=uuid.uuid4, frozen=True)
38
- role: str = Field(description="role of the agent - used in summary and logs")
39
- goal: str = Field(description="concise goal of the agent (details are set in the Task instance)")
38
+ role: str = Field(description="required. agent's role")
39
+ goal: Optional[str] = Field(default=None)
40
40
  backstory: Optional[str] = Field(default=None, description="developer prompt to the llm")
41
41
  skillsets: Optional[List[str]] = Field(default_factory=list)
42
42
  tools: Optional[List[Any]] = Field(default_factory=list)
@@ -92,7 +92,7 @@ class Agent(BaseModel):
92
92
 
93
93
  @model_validator(mode="after")
94
94
  def validate_required_fields(self) -> Self:
95
- required_fields = ["role", "goal"]
95
+ required_fields = ["role",]
96
96
  for field in required_fields:
97
97
  if getattr(self, field) is None:
98
98
  raise ValueError(f"{field} must be provided either directly or through config")
@@ -172,7 +172,7 @@ class Agent(BaseModel):
172
172
  skills = ", ".join([item for item in self.skillsets]) if self.skillsets else ""
173
173
  tools = ", ".join([item.name for item in self.tools if hasattr(item, "name") and item.name is not None]) if self.tools else ""
174
174
  role = self.role.lower()
175
- goal = self.goal.lower()
175
+ goal = self.goal.lower() if self.goal else ""
176
176
 
177
177
  if self.tools or self.skillsets:
178
178
  backstory = BACKSTORY_FULL.format(role=role, goal=goal, skills=skills, tools=tools)
@@ -494,7 +494,7 @@ class Agent(BaseModel):
494
494
  Defines and executes a task when it is not given and returns TaskOutput object.
495
495
  """
496
496
 
497
- if not self.goal or not self.role:
497
+ if not self.role or not self.goal:
498
498
  return None
499
499
 
500
500
  from versionhq.task.model import Task
@@ -595,7 +595,7 @@ class Agent(BaseModel):
595
595
 
596
596
 
597
597
  def __repr__(self):
598
- return f"Agent(role={self.role}, goal={self.goal}"
598
+ return f"Agent(role={self.role}, id={str(self.id)}"
599
599
 
600
600
  def __str__(self):
601
601
  return super().__str__()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: versionhq
3
- Version: 1.2.2.4
3
+ Version: 1.2.2.5
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
@@ -227,10 +227,7 @@ The following code snippet demonstrates agent customization:
227
227
  ```python
228
228
  import versionhq as vhq
229
229
 
230
- agent = vhq.Agent(
231
- role="Marketing Analyst",
232
- goal="my amazing goal"
233
- ) # assuming this agent was created during the network formation
230
+ agent = vhq.Agent(role="Marketing Analyst")
234
231
 
235
232
  # update the agent
236
233
  agent.update(
@@ -321,8 +318,8 @@ To create an agent network with one or more manager agents, designate members us
321
318
  ```python
322
319
  import versionhq as vhq
323
320
 
324
- agent_a = vhq.Agent(role="agent a", goal="My amazing goals", llm="llm-of-your-choice")
325
- agent_b = vhq.Agent(role="agent b", goal="My amazing goals", llm="llm-of-your-choice")
321
+ agent_a = vhq.Agent(role="agent a", llm="llm-of-your-choice")
322
+ agent_b = vhq.Agent(role="agent b", llm="llm-of-your-choice")
326
323
 
327
324
  task_1 = vhq.Task(
328
325
  description="Analyze the client's business model.",
@@ -13,13 +13,10 @@ LITELLM_API_KEY = os.environ.get("LITELLM_API_KEY")
13
13
 
14
14
 
15
15
  def test_build_agent_with_minimal_input():
16
- agent = Agent(
17
- role="analyst",
18
- goal="analyze the company's website and retrieve the product overview"
19
- )
16
+ agent = Agent(role="analyst")
20
17
 
21
18
  assert agent.role == "analyst"
22
- assert agent.backstory == BACKSTORY_SHORT.format(role=agent.role.lower(), goal=agent.goal.lower())
19
+ assert agent.backstory == BACKSTORY_SHORT.format(role=agent.role.lower(), goal="")
23
20
  assert isinstance(agent.llm, LLM)
24
21
  assert agent.llm.model == DEFAULT_MODEL_NAME
25
22
  assert agent.llm.api_key == LITELLM_API_KEY
@@ -25,7 +25,7 @@ def test_doc_index_b():
25
25
  return f"""{message}: {test1}, {", ".join(test2)}"""
26
26
 
27
27
 
28
- agent = vhq.Agent(role="demo", goal="amazing project goal", maxit=1)
28
+ agent = vhq.Agent(role="demo", maxit=1)
29
29
 
30
30
  task = vhq.Task(
31
31
  description="Amazing task",
@@ -42,8 +42,8 @@ def test_doc_index_b():
42
42
  def test_doc_index_c():
43
43
  import versionhq as vhq
44
44
 
45
- agent_a = vhq.Agent(role="agent a", goal="My amazing goals", llm="llm-of-your-choice")
46
- agent_b = vhq.Agent(role="agent b", goal="My amazing goals", llm="llm-of-your-choice")
45
+ agent_a = vhq.Agent(role="agent a", llm="llm-of-your-choice")
46
+ agent_b = vhq.Agent(role="agent b", llm="llm-of-your-choice")
47
47
 
48
48
  task_1 = vhq.Task(
49
49
  description="Analyze the client's business model.",
@@ -31,10 +31,7 @@ def test_demo_agent_customization():
31
31
  import pathlib
32
32
  current_path = pathlib.Path(__file__).parent.resolve()
33
33
 
34
- agent = vhq.Agent(
35
- role='Demo Manager',
36
- goal='run a demo successfully'
37
- )
34
+ agent = vhq.Agent(role='Demo Manager')
38
35
 
39
36
  agent.update(
40
37
  llm='gemini-2.0',
@@ -1509,19 +1509,20 @@ wheels = [
1509
1509
 
1510
1510
  [[package]]
1511
1511
  name = "langsmith"
1512
- version = "0.3.10"
1512
+ version = "0.3.11"
1513
1513
  source = { registry = "https://pypi.org/simple" }
1514
1514
  dependencies = [
1515
1515
  { name = "httpx" },
1516
1516
  { name = "orjson", marker = "platform_python_implementation != 'PyPy'" },
1517
+ { name = "packaging" },
1517
1518
  { name = "pydantic" },
1518
1519
  { name = "requests" },
1519
1520
  { name = "requests-toolbelt" },
1520
1521
  { name = "zstandard" },
1521
1522
  ]
1522
- sdist = { url = "https://files.pythonhosted.org/packages/28/08/9d3591a7dfe543afda0451b456c54e0408cd709efbda4b26c7ffff6f5d70/langsmith-0.3.10.tar.gz", hash = "sha256:7c05512d19a7741b348879149f4b7ef6aa4495abd12ad2e9418243664559b521", size = 321698 }
1523
+ sdist = { url = "https://files.pythonhosted.org/packages/ea/34/c4c0eddad03e00457cd6be1a88c288cd4419da8d368d8f519a29abe5392c/langsmith-0.3.11.tar.gz", hash = "sha256:ddf29d24352e99de79c9618aaf95679214324e146c5d3d9475a7ddd2870018b1", size = 323815 }
1523
1524
  wheels = [
1524
- { url = "https://files.pythonhosted.org/packages/27/2c/8e48e5c264022b03555fa3c5367c58f424d50f6a562a7efb20a178e1d9e9/langsmith-0.3.10-py3-none-any.whl", hash = "sha256:2f1f9e27c4fc6dd605557c3cdb94465f4f33464ab195c69ce599b6ee44d18275", size = 333021 },
1525
+ { url = "https://files.pythonhosted.org/packages/ff/68/514ffa62860202a5a0a3acbf5c05017ef9df38d4437d2cb44a3cf93d617b/langsmith-0.3.11-py3-none-any.whl", hash = "sha256:0cca22737ef07d3b038a437c141deda37e00add56022582680188b681bec095e", size = 335265 },
1525
1526
  ]
1526
1527
 
1527
1528
  [[package]]
@@ -1547,7 +1548,7 @@ wheels = [
1547
1548
 
1548
1549
  [[package]]
1549
1550
  name = "litellm"
1550
- version = "1.61.15"
1551
+ version = "1.61.16"
1551
1552
  source = { registry = "https://pypi.org/simple" }
1552
1553
  dependencies = [
1553
1554
  { name = "aiohttp" },
@@ -1563,9 +1564,9 @@ dependencies = [
1563
1564
  { name = "tokenizers", version = "0.19.1", source = { registry = "https://pypi.org/simple" }, marker = "platform_machine == 'x86_64' and sys_platform == 'darwin'" },
1564
1565
  { name = "tokenizers", version = "0.21.0", source = { registry = "https://pypi.org/simple" }, marker = "platform_machine != 'x86_64' or sys_platform != 'darwin'" },
1565
1566
  ]
1566
- sdist = { url = "https://files.pythonhosted.org/packages/23/3a/3e299244bb048bbe63e6342a34b5974ab551b24ca0cbafdd5aaf81c0c81d/litellm-1.61.15.tar.gz", hash = "sha256:f10ff155d8bca6cb0e2a1cc8d9aedbe6b390f73b30b9603e9cadb66b11472d44", size = 6561672 }
1567
+ sdist = { url = "https://files.pythonhosted.org/packages/3d/a5/0750edce9f4cbdce7f0d852b8e175cec4760d1c687c0079f7fe1b91c7d7f/litellm-1.61.16.tar.gz", hash = "sha256:02df5865f98ea9734a4d27ac7c33aad9a45c4015403d5c0797d3292ade3c5cb5", size = 6562533 }
1567
1568
  wheels = [
1568
- { url = "https://files.pythonhosted.org/packages/ac/b8/2908528ce280a1554162bffaec47514c71a01d76867e0b3fefd096c9cd00/litellm-1.61.15-py3-none-any.whl", hash = "sha256:977fd4e37491dd5adf14ed7c4d55bd099dd5ee7d40b8b8af5eba515d448013bb", size = 6871062 },
1569
+ { url = "https://files.pythonhosted.org/packages/56/49/6af8c25e4e57426d322ee94e312a822162bb8122d24adcbcb913916225e2/litellm-1.61.16-py3-none-any.whl", hash = "sha256:d241436ac0edf64ec57fb5686f8d84a25998a7e52213d9063adf87df8432701f", size = 6871951 },
1569
1570
  ]
1570
1571
 
1571
1572
  [[package]]
@@ -4024,7 +4025,7 @@ wheels = [
4024
4025
 
4025
4026
  [[package]]
4026
4027
  name = "versionhq"
4027
- version = "1.2.2.4"
4028
+ version = "1.2.2.5"
4028
4029
  source = { editable = "." }
4029
4030
  dependencies = [
4030
4031
  { name = "appdirs" },
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes