agno 2.4.6__py3-none-any.whl → 2.4.8__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.
- agno/agent/agent.py +5 -1
- agno/db/base.py +2 -0
- agno/db/postgres/postgres.py +5 -5
- agno/db/singlestore/singlestore.py +4 -5
- agno/db/sqlite/sqlite.py +4 -4
- agno/knowledge/embedder/aws_bedrock.py +325 -106
- agno/knowledge/knowledge.py +83 -1853
- agno/knowledge/loaders/__init__.py +29 -0
- agno/knowledge/loaders/azure_blob.py +423 -0
- agno/knowledge/loaders/base.py +187 -0
- agno/knowledge/loaders/gcs.py +267 -0
- agno/knowledge/loaders/github.py +415 -0
- agno/knowledge/loaders/s3.py +281 -0
- agno/knowledge/loaders/sharepoint.py +439 -0
- agno/knowledge/reader/website_reader.py +2 -2
- agno/knowledge/remote_knowledge.py +151 -0
- agno/knowledge/reranker/aws_bedrock.py +299 -0
- agno/learn/machine.py +5 -6
- agno/learn/stores/session_context.py +10 -2
- agno/models/azure/openai_chat.py +6 -11
- agno/models/neosantara/__init__.py +5 -0
- agno/models/neosantara/neosantara.py +42 -0
- agno/models/utils.py +5 -0
- agno/os/app.py +4 -1
- agno/os/interfaces/agui/router.py +1 -1
- agno/os/routers/components/components.py +2 -0
- agno/os/routers/knowledge/knowledge.py +0 -1
- agno/os/routers/registry/registry.py +340 -192
- agno/os/routers/workflows/router.py +7 -1
- agno/os/schema.py +104 -0
- agno/registry/registry.py +4 -0
- agno/run/workflow.py +3 -0
- agno/session/workflow.py +1 -1
- agno/skills/utils.py +100 -2
- agno/team/team.py +6 -3
- agno/tools/mcp/mcp.py +26 -1
- agno/vectordb/lancedb/lance_db.py +22 -7
- agno/workflow/__init__.py +4 -0
- agno/workflow/cel.py +299 -0
- agno/workflow/condition.py +280 -58
- agno/workflow/loop.py +177 -46
- agno/workflow/parallel.py +75 -4
- agno/workflow/router.py +260 -44
- agno/workflow/step.py +14 -7
- agno/workflow/steps.py +43 -0
- agno/workflow/workflow.py +104 -46
- {agno-2.4.6.dist-info → agno-2.4.8.dist-info}/METADATA +25 -37
- {agno-2.4.6.dist-info → agno-2.4.8.dist-info}/RECORD +51 -39
- {agno-2.4.6.dist-info → agno-2.4.8.dist-info}/WHEEL +0 -0
- {agno-2.4.6.dist-info → agno-2.4.8.dist-info}/licenses/LICENSE +0 -0
- {agno-2.4.6.dist-info → agno-2.4.8.dist-info}/top_level.txt +0 -0
agno/agent/agent.py
CHANGED
|
@@ -11493,7 +11493,7 @@ class Agent:
|
|
|
11493
11493
|
|
|
11494
11494
|
return get_tool_call_history
|
|
11495
11495
|
|
|
11496
|
-
def _update_session_state_tool(self,
|
|
11496
|
+
def _update_session_state_tool(self, run_context: RunContext, session_state_updates: dict) -> str:
|
|
11497
11497
|
"""
|
|
11498
11498
|
Update the shared session state. Provide any updates as a dictionary of key-value pairs.
|
|
11499
11499
|
Example:
|
|
@@ -11502,6 +11502,10 @@ class Agent:
|
|
|
11502
11502
|
Args:
|
|
11503
11503
|
session_state_updates (dict): The updates to apply to the shared session state. Should be a dictionary of key-value pairs.
|
|
11504
11504
|
"""
|
|
11505
|
+
|
|
11506
|
+
if run_context.session_state is None:
|
|
11507
|
+
run_context.session_state = {}
|
|
11508
|
+
session_state = run_context.session_state
|
|
11505
11509
|
for key, value in session_state_updates.items():
|
|
11506
11510
|
session_state[key] = value
|
|
11507
11511
|
|
agno/db/base.py
CHANGED
|
@@ -576,6 +576,7 @@ class BaseDb(ABC):
|
|
|
576
576
|
component_type: Optional[ComponentType] = None,
|
|
577
577
|
name: Optional[str] = None,
|
|
578
578
|
description: Optional[str] = None,
|
|
579
|
+
current_version: Optional[int] = None,
|
|
579
580
|
metadata: Optional[Dict[str, Any]] = None,
|
|
580
581
|
) -> Dict[str, Any]:
|
|
581
582
|
"""Create or update a component.
|
|
@@ -585,6 +586,7 @@ class BaseDb(ABC):
|
|
|
585
586
|
component_type: Type (agent|team|workflow). Required for create, optional for update.
|
|
586
587
|
name: Display name.
|
|
587
588
|
description: Optional description.
|
|
589
|
+
current_version: Optional current version.
|
|
588
590
|
metadata: Optional metadata dict.
|
|
589
591
|
|
|
590
592
|
Returns:
|
agno/db/postgres/postgres.py
CHANGED
|
@@ -3241,6 +3241,7 @@ class PostgresDb(BaseDb):
|
|
|
3241
3241
|
component_type: Optional[ComponentType] = None,
|
|
3242
3242
|
name: Optional[str] = None,
|
|
3243
3243
|
description: Optional[str] = None,
|
|
3244
|
+
current_version: Optional[int] = None,
|
|
3244
3245
|
metadata: Optional[Dict[str, Any]] = None,
|
|
3245
3246
|
) -> Dict[str, Any]:
|
|
3246
3247
|
"""Create or update a component.
|
|
@@ -3250,6 +3251,7 @@ class PostgresDb(BaseDb):
|
|
|
3250
3251
|
component_type: Type (agent|team|workflow). Required for create, optional for update.
|
|
3251
3252
|
name: Display name.
|
|
3252
3253
|
description: Optional description.
|
|
3254
|
+
current_version: Optional current version.
|
|
3253
3255
|
metadata: Optional metadata dict.
|
|
3254
3256
|
|
|
3255
3257
|
Returns:
|
|
@@ -3317,6 +3319,8 @@ class PostgresDb(BaseDb):
|
|
|
3317
3319
|
updates["name"] = name
|
|
3318
3320
|
if description is not None:
|
|
3319
3321
|
updates["description"] = description
|
|
3322
|
+
if current_version is not None:
|
|
3323
|
+
updates["current_version"] = current_version
|
|
3320
3324
|
if metadata is not None:
|
|
3321
3325
|
updates["metadata"] = metadata
|
|
3322
3326
|
|
|
@@ -3693,8 +3697,8 @@ class PostgresDb(BaseDb):
|
|
|
3693
3697
|
raise ValueError(f"Invalid stage: {stage}")
|
|
3694
3698
|
|
|
3695
3699
|
try:
|
|
3696
|
-
configs_table = self._get_table(table_type="component_configs", create_table_if_not_found=True)
|
|
3697
3700
|
components_table = self._get_table(table_type="components")
|
|
3701
|
+
configs_table = self._get_table(table_type="component_configs", create_table_if_not_found=True)
|
|
3698
3702
|
links_table = self._get_table(table_type="component_links", create_table_if_not_found=True)
|
|
3699
3703
|
|
|
3700
3704
|
if components_table is None:
|
|
@@ -3881,10 +3885,6 @@ class PostgresDb(BaseDb):
|
|
|
3881
3885
|
if config_row is None:
|
|
3882
3886
|
return False
|
|
3883
3887
|
|
|
3884
|
-
# Cannot delete published configs
|
|
3885
|
-
if config_row == "published":
|
|
3886
|
-
raise ValueError(f"Cannot delete published config {component_id} v{version}")
|
|
3887
|
-
|
|
3888
3888
|
# Check if it's current version
|
|
3889
3889
|
current = sess.execute(
|
|
3890
3890
|
select(components_table.c.current_version).where(components_table.c.component_id == component_id)
|
|
@@ -173,8 +173,7 @@ class SingleStoreDb(BaseDb):
|
|
|
173
173
|
column_kwargs["unique"] = True
|
|
174
174
|
columns.append(Column(*column_args, **column_kwargs))
|
|
175
175
|
|
|
176
|
-
|
|
177
|
-
table = Table(table_name, self.metadata, *columns, schema=self.db_schema)
|
|
176
|
+
table = Table(table_name, self.metadata, *columns, schema=self.db_schema, extend_existing=True)
|
|
178
177
|
|
|
179
178
|
return table
|
|
180
179
|
|
|
@@ -240,8 +239,7 @@ class SingleStoreDb(BaseDb):
|
|
|
240
239
|
|
|
241
240
|
columns.append(Column(*column_args, **column_kwargs))
|
|
242
241
|
|
|
243
|
-
|
|
244
|
-
table = Table(table_name, self.metadata, *columns, schema=self.db_schema)
|
|
242
|
+
table = Table(table_name, self.metadata, *columns, schema=self.db_schema, extend_existing=True)
|
|
245
243
|
|
|
246
244
|
# Add multi-column unique constraints with table-specific names
|
|
247
245
|
for constraint in schema_unique_constraints:
|
|
@@ -396,7 +394,8 @@ class SingleStoreDb(BaseDb):
|
|
|
396
394
|
|
|
397
395
|
if table_type == "spans":
|
|
398
396
|
# Ensure traces table exists first (for foreign key)
|
|
399
|
-
|
|
397
|
+
if create_table_if_not_found:
|
|
398
|
+
self._get_table(table_type="traces", create_table_if_not_found=True)
|
|
400
399
|
self.spans_table = self._get_or_create_table(
|
|
401
400
|
table_name=self.span_table_name,
|
|
402
401
|
table_type="spans",
|
agno/db/sqlite/sqlite.py
CHANGED
|
@@ -3139,6 +3139,7 @@ class SqliteDb(BaseDb):
|
|
|
3139
3139
|
component_type: Optional[ComponentType] = None,
|
|
3140
3140
|
name: Optional[str] = None,
|
|
3141
3141
|
description: Optional[str] = None,
|
|
3142
|
+
current_version: Optional[int] = None,
|
|
3142
3143
|
metadata: Optional[Dict[str, Any]] = None,
|
|
3143
3144
|
) -> Dict[str, Any]:
|
|
3144
3145
|
"""Create or update a component.
|
|
@@ -3148,6 +3149,7 @@ class SqliteDb(BaseDb):
|
|
|
3148
3149
|
component_type: Type (agent|team|workflow). Required for create, optional for update.
|
|
3149
3150
|
name: Display name.
|
|
3150
3151
|
description: Optional description.
|
|
3152
|
+
current_version: Optional current version.
|
|
3151
3153
|
metadata: Optional metadata dict.
|
|
3152
3154
|
|
|
3153
3155
|
Returns:
|
|
@@ -3213,6 +3215,8 @@ class SqliteDb(BaseDb):
|
|
|
3213
3215
|
updates["name"] = name
|
|
3214
3216
|
if description is not None:
|
|
3215
3217
|
updates["description"] = description
|
|
3218
|
+
if current_version is not None:
|
|
3219
|
+
updates["current_version"] = current_version
|
|
3216
3220
|
if metadata is not None:
|
|
3217
3221
|
updates["metadata"] = metadata
|
|
3218
3222
|
|
|
@@ -3759,10 +3763,6 @@ class SqliteDb(BaseDb):
|
|
|
3759
3763
|
if config_row is None:
|
|
3760
3764
|
return False
|
|
3761
3765
|
|
|
3762
|
-
# Cannot delete published configs
|
|
3763
|
-
if config_row.stage == "published":
|
|
3764
|
-
raise ValueError(f"Cannot delete published config {component_id} v{version}")
|
|
3765
|
-
|
|
3766
3766
|
# Check if it's current version
|
|
3767
3767
|
current = sess.execute(
|
|
3768
3768
|
select(components_table.c.current_version).where(components_table.c.component_id == component_id)
|