versionhq 1.1.10.5__py3-none-any.whl → 1.1.10.6__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
versionhq/__init__.py CHANGED
@@ -18,7 +18,7 @@ from versionhq.tool.model import Tool
18
18
  from versionhq.tool.composio_tool import ComposioHandler
19
19
 
20
20
 
21
- __version__ = "1.1.10.5"
21
+ __version__ = "1.1.10.6"
22
22
  __all__ = [
23
23
  "Agent",
24
24
  "Customer",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: versionhq
3
- Version: 1.1.10.5
3
+ Version: 1.1.10.6
4
4
  Summary: LLM orchestration frameworks for model-agnostic AI agents that handle complex outbound workflows
5
5
  Author-email: Kuriko Iwai <kuriko@versi0n.io>
6
6
  License: MIT License
@@ -100,7 +100,7 @@ LLM-powered `agent`s and `team`s use `tool`s and their own knowledge to complete
100
100
 
101
101
  - [Key Features](#key-features)
102
102
  - [Usage](#usage)
103
- - [Case 1. Build an AI agent on LLM of your choice and execute a task:](#case-1-build-an-ai-agent-on-llm-of-your-choice-and-execute-a-task)
103
+ - [Case 1. Single agent handling task:](#case-1-single-agent-handling-task)
104
104
  - [Case 2. Form a team to handle multiple tasks:](#case-2-form-a-team-to-handle-multiple-tasks)
105
105
  - [Technologies Used](#technologies-used)
106
106
  - [Project Structure](#project-structure)
@@ -142,45 +142,49 @@ Multiple `agents` can form a `team` to complete complex tasks together.
142
142
 
143
143
  1. Install `versionhq` package:
144
144
  ```
145
- uv pip install versionhq
145
+ pip install versionhq
146
146
  ```
147
147
 
148
148
  2. You can use the `versionhq` module in your Python app.
149
149
 
150
150
 
151
- ### Case 1. Build an AI agent on LLM of your choice and execute a task:
151
+ ### Case 1. Single agent handling task:
152
152
 
153
153
  ```
154
+ from pydantic import BaseModel
154
155
  from versionhq.agent.model import Agent
155
- from versionhq.task.model import Task, ResponseField
156
+ from versionhq.task.model import Task
156
157
 
157
- def my_callback_func():
158
- """callback func"""
158
+ class CustomOutput(BaseModel):
159
+ test1: str
160
+ test2: list[str]
159
161
 
160
- agent = Agent(
161
- role="demo",
162
- goal="amazing project goal",
163
- skillsets=["skill_1", "skill_2", ],
164
- tools=["amazing RAG tool",]
165
- llm="llm-of-your-choice"
166
- )
162
+ def dummy_func(message: str, test1: str, test2: list[str]) -> str:
163
+ return f"{message}: {test1}, {", ".join(test2)}"
164
+
165
+
166
+ agent = Agent(role="demo", goal="amazing project goal")
167
167
 
168
168
  task = Task(
169
169
  description="Amazing task",
170
- response_fields=[
171
- ResponseField(title="test1", data_type=str, required=True),
172
- ResponseField(title="test2", data_type=list, items=str, required=True),
173
- ],
174
- callbacks=[my_callback_func]
170
+ pydantic_custom_output=CustomOutput,
171
+ callback=dummy_func,
172
+ callback_kwargs=dict(message="Hi! Here is the result: ")
175
173
  )
174
+
176
175
  res = task.execute_sync(agent=agent, context="amazing context to consider.")
177
- return res.to_dict()
176
+ print(res)
178
177
  ```
179
178
 
180
- This will return a dictionary with keys defined in the `ResponseField`.
179
+ This will return a `TaskOutput` instance with response in raw, JSON dict, and Pydantic model: `CustomOutput` formats with a callback result.
181
180
 
182
181
  ```
183
- { test1: "answer1", "test2": ["answer2-1", "answer2-2", "answer2-3",] }
182
+ res == TaskOutput(
183
+ raw="{\\"test1\\": \\"random str\\", \\"test2\\": [\\"item1\\", \\"item2\\"]}",
184
+ json_dict={"test1": "random str", "test2": ["item1", "item2"]},
185
+ pydantic=CustomOutput(test1="random str", test2=["item 1", "item 2"]),
186
+ callback_output="Hi! Here is the result: random str, item 1, item 2",
187
+ )
184
188
  ```
185
189
 
186
190
  ### Case 2. Form a team to handle multiple tasks:
@@ -1,4 +1,4 @@
1
- versionhq/__init__.py,sha256=3rrrqFJBIQtmf-L5xbeX1RytYfuPbZ_FLB1Tqg_yRHc,951
1
+ versionhq/__init__.py,sha256=RKe1lkTyJ8IrVi0_DCbvRYnfeST79MLz1SIdplZIgdA,951
2
2
  versionhq/_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
3
  versionhq/_utils/i18n.py,sha256=TwA_PnYfDLA6VqlUDPuybdV9lgi3Frh_ASsb_X8jJo8,1483
4
4
  versionhq/_utils/logger.py,sha256=U-MpeGueA6YS8Ptfy0VnU_ePsZP-8Pvkvi0tZ4s_UMg,1438
@@ -38,8 +38,8 @@ versionhq/tool/composio_tool_vars.py,sha256=FvBuEXsOQUYnN7RTFxT20kAkiEYkxWKkiVtg
38
38
  versionhq/tool/decorator.py,sha256=C4ZM7Xi2gwtEMaSeRo-geo_g_MAkY77WkSLkAuY0AyI,1205
39
39
  versionhq/tool/model.py,sha256=5qG-OH7zohvepPDOjdjDulhEqmNUM4osiyk5LaxmSiU,12333
40
40
  versionhq/tool/tool_handler.py,sha256=2m41K8qo5bGCCbwMFferEjT-XZ-mE9F0mDUOBkgivOI,1416
41
- versionhq-1.1.10.5.dist-info/LICENSE,sha256=7CCXuMrAjPVsUvZrsBq9DsxI2rLDUSYXR_qj4yO_ZII,1077
42
- versionhq-1.1.10.5.dist-info/METADATA,sha256=ipMs_kXt5rq8aARmBXst_Ldp1S3yAKcoBnV79Ioj-fA,16356
43
- versionhq-1.1.10.5.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
44
- versionhq-1.1.10.5.dist-info/top_level.txt,sha256=DClQwxDWqIUGeRJkA8vBlgeNsYZs4_nJWMonzFt5Wj0,10
45
- versionhq-1.1.10.5.dist-info/RECORD,,
41
+ versionhq-1.1.10.6.dist-info/LICENSE,sha256=7CCXuMrAjPVsUvZrsBq9DsxI2rLDUSYXR_qj4yO_ZII,1077
42
+ versionhq-1.1.10.6.dist-info/METADATA,sha256=V-Ld6P_xDdRfK2HQGcbCuPS8FeyoRX2seXFy0v_UX4g,16535
43
+ versionhq-1.1.10.6.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
44
+ versionhq-1.1.10.6.dist-info/top_level.txt,sha256=DClQwxDWqIUGeRJkA8vBlgeNsYZs4_nJWMonzFt5Wj0,10
45
+ versionhq-1.1.10.6.dist-info/RECORD,,