agno 2.0.7__py3-none-any.whl → 2.0.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.
@@ -36,6 +36,8 @@ def print_response(
36
36
  knowledge_filters: Optional[Dict[str, Any]] = None,
37
37
  add_history_to_context: Optional[bool] = None,
38
38
  dependencies: Optional[Dict[str, Any]] = None,
39
+ add_dependencies_to_context: Optional[bool] = None,
40
+ add_session_state_to_context: Optional[bool] = None,
39
41
  metadata: Optional[Dict[str, Any]] = None,
40
42
  debug_mode: Optional[bool] = None,
41
43
  **kwargs: Any,
@@ -88,6 +90,8 @@ def print_response(
88
90
  knowledge_filters=knowledge_filters,
89
91
  add_history_to_context=add_history_to_context,
90
92
  dependencies=dependencies,
93
+ add_dependencies_to_context=add_dependencies_to_context,
94
+ add_session_state_to_context=add_session_state_to_context,
91
95
  metadata=metadata,
92
96
  debug_mode=debug_mode,
93
97
  **kwargs,
@@ -317,6 +321,8 @@ def print_response_stream(
317
321
  knowledge_filters: Optional[Dict[str, Any]] = None,
318
322
  add_history_to_context: Optional[bool] = None,
319
323
  dependencies: Optional[Dict[str, Any]] = None,
324
+ add_dependencies_to_context: Optional[bool] = None,
325
+ add_session_state_to_context: Optional[bool] = None,
320
326
  metadata: Optional[Dict[str, Any]] = None,
321
327
  debug_mode: Optional[bool] = None,
322
328
  **kwargs: Any,
@@ -386,6 +392,8 @@ def print_response_stream(
386
392
  knowledge_filters=knowledge_filters,
387
393
  add_history_to_context=add_history_to_context,
388
394
  dependencies=dependencies,
395
+ add_dependencies_to_context=add_dependencies_to_context,
396
+ add_session_state_to_context=add_session_state_to_context,
389
397
  metadata=metadata,
390
398
  debug_mode=debug_mode,
391
399
  yield_run_response=True,
@@ -841,6 +849,8 @@ async def aprint_response(
841
849
  knowledge_filters: Optional[Dict[str, Any]] = None,
842
850
  add_history_to_context: Optional[bool] = None,
843
851
  dependencies: Optional[Dict[str, Any]] = None,
852
+ add_dependencies_to_context: Optional[bool] = None,
853
+ add_session_state_to_context: Optional[bool] = None,
844
854
  metadata: Optional[Dict[str, Any]] = None,
845
855
  debug_mode: Optional[bool] = None,
846
856
  **kwargs: Any,
@@ -893,6 +903,8 @@ async def aprint_response(
893
903
  knowledge_filters=knowledge_filters,
894
904
  add_history_to_context=add_history_to_context,
895
905
  dependencies=dependencies,
906
+ add_dependencies_to_context=add_dependencies_to_context,
907
+ add_session_state_to_context=add_session_state_to_context,
896
908
  metadata=metadata,
897
909
  debug_mode=debug_mode,
898
910
  **kwargs,
@@ -1120,6 +1132,8 @@ async def aprint_response_stream(
1120
1132
  knowledge_filters: Optional[Dict[str, Any]] = None,
1121
1133
  add_history_to_context: Optional[bool] = None,
1122
1134
  dependencies: Optional[Dict[str, Any]] = None,
1135
+ add_dependencies_to_context: Optional[bool] = None,
1136
+ add_session_state_to_context: Optional[bool] = None,
1123
1137
  metadata: Optional[Dict[str, Any]] = None,
1124
1138
  debug_mode: Optional[bool] = None,
1125
1139
  **kwargs: Any,
@@ -1196,6 +1210,8 @@ async def aprint_response_stream(
1196
1210
  user_id=user_id,
1197
1211
  knowledge_filters=knowledge_filters,
1198
1212
  add_history_to_context=add_history_to_context,
1213
+ add_dependencies_to_context=add_dependencies_to_context,
1214
+ add_session_state_to_context=add_session_state_to_context,
1199
1215
  dependencies=dependencies,
1200
1216
  metadata=metadata,
1201
1217
  debug_mode=debug_mode,
agno/vectordb/base.py CHANGED
@@ -1,12 +1,12 @@
1
1
  from abc import ABC, abstractmethod
2
2
  from typing import Any, Dict, List, Optional
3
3
 
4
- from agno.knowledge.document import Document
5
-
6
4
 
7
5
  class VectorDb(ABC):
8
6
  """Base class for Vector Databases"""
9
7
 
8
+ from agno.knowledge.document import Document
9
+
10
10
  @abstractmethod
11
11
  def create(self) -> None:
12
12
  raise NotImplementedError
@@ -63,9 +63,7 @@ class LangChainVectorDb(VectorDb):
63
63
  logger.warning("LangChainKnowledgeBase.async_upsert() not supported - please check the vectorstore manually.")
64
64
  raise NotImplementedError
65
65
 
66
- def search(
67
- self, query: str, num_documents: Optional[int] = None, filters: Optional[Dict[str, Any]] = None
68
- ) -> List[Document]:
66
+ def search(self, query: str, limit: int = 5, filters: Optional[Dict[str, Any]] = None) -> List[Document]:
69
67
  """Returns relevant documents matching the query"""
70
68
 
71
69
  try:
@@ -79,7 +77,7 @@ class LangChainVectorDb(VectorDb):
79
77
  if self.vectorstore is not None and self.knowledge_retriever is None:
80
78
  log_debug("Creating knowledge retriever")
81
79
  if self.search_kwargs is None:
82
- self.search_kwargs = {"k": num_documents}
80
+ self.search_kwargs = {"k": limit}
83
81
  if filters is not None:
84
82
  self.search_kwargs.update(filters)
85
83
  self.knowledge_retriever = self.vectorstore.as_retriever(search_kwargs=self.search_kwargs)
@@ -91,7 +89,7 @@ class LangChainVectorDb(VectorDb):
91
89
  if not isinstance(self.knowledge_retriever, BaseRetriever):
92
90
  raise ValueError(f"Knowledge retriever is not of type BaseRetriever: {self.knowledge_retriever}")
93
91
 
94
- log_debug(f"Getting {num_documents} relevant documents for query: {query}")
92
+ log_debug(f"Getting {limit} relevant documents for query: {query}")
95
93
  lc_documents: List[LangChainDocument] = self.knowledge_retriever.invoke(input=query)
96
94
  documents = []
97
95
  for lc_doc in lc_documents:
@@ -104,9 +102,9 @@ class LangChainVectorDb(VectorDb):
104
102
  return documents
105
103
 
106
104
  async def async_search(
107
- self, query: str, num_documents: Optional[int] = None, filters: Optional[Dict[str, Any]] = None
105
+ self, query: str, limit: int = 5, filters: Optional[Dict[str, Any]] = None
108
106
  ) -> List[Document]:
109
- return self.search(query, num_documents, filters)
107
+ return self.search(query, limit, filters)
110
108
 
111
109
  def drop(self) -> None:
112
110
  raise NotImplementedError
@@ -17,6 +17,11 @@ class LlamaIndexVectorDb(VectorDb):
17
17
  knowledge_retriever: BaseRetriever
18
18
  loader: Optional[Callable] = None
19
19
 
20
+ def __init__(self, knowledge_retriever: BaseRetriever, loader: Optional[Callable] = None, **kwargs):
21
+ super().__init__(**kwargs)
22
+ self.knowledge_retriever = knowledge_retriever
23
+ self.loader = loader
24
+
20
25
  def create(self) -> None:
21
26
  raise NotImplementedError
22
27
 
@@ -53,15 +58,13 @@ class LlamaIndexVectorDb(VectorDb):
53
58
  logger.warning("LlamaIndexVectorDb.async_upsert() not supported - please check the vectorstore manually.")
54
59
  raise NotImplementedError
55
60
 
56
- def search(
57
- self, query: str, num_documents: Optional[int] = None, filters: Optional[Dict[str, Any]] = None
58
- ) -> List[Document]:
61
+ def search(self, query: str, limit: int = 5, filters: Optional[Dict[str, Any]] = None) -> List[Document]:
59
62
  """
60
63
  Returns relevant documents matching the query.
61
64
 
62
65
  Args:
63
66
  query (str): The query string to search for.
64
- num_documents (Optional[int]): The maximum number of documents to return. Defaults to None.
67
+ limit (int): The maximum number of documents to return. Defaults to 5.
65
68
  filters (Optional[Dict[str, Any]]): Filters to apply to the search. Defaults to None.
66
69
 
67
70
  Returns:
@@ -73,8 +76,8 @@ class LlamaIndexVectorDb(VectorDb):
73
76
  raise ValueError(f"Knowledge retriever is not of type BaseRetriever: {self.knowledge_retriever}")
74
77
 
75
78
  lc_documents: List[NodeWithScore] = self.knowledge_retriever.retrieve(query)
76
- if num_documents is not None:
77
- lc_documents = lc_documents[:num_documents]
79
+ if limit is not None:
80
+ lc_documents = lc_documents[:limit]
78
81
  documents = []
79
82
  for lc_doc in lc_documents:
80
83
  documents.append(
@@ -125,3 +128,19 @@ class LlamaIndexVectorDb(VectorDb):
125
128
  metadata (Dict[str, Any]): The metadata to update
126
129
  """
127
130
  raise NotImplementedError("update_metadata not supported for LlamaIndex vectorstores")
131
+
132
+ def delete_by_content_id(self, content_id: str) -> bool:
133
+ """
134
+ Delete documents by content ID.
135
+ Not implemented for LlamaIndex wrapper.
136
+
137
+ Args:
138
+ content_id (str): The content ID to delete
139
+
140
+ Returns:
141
+ bool: False as this operation is not supported
142
+ """
143
+ logger.warning(
144
+ "LlamaIndexVectorDb.delete_by_content_id() not supported - please check the vectorstore manually."
145
+ )
146
+ return False
agno/workflow/workflow.py CHANGED
@@ -343,9 +343,19 @@ class Workflow:
343
343
  if user_id is None:
344
344
  user_id = self.user_id
345
345
 
346
- # Determine the session_state
346
+ # Determine the session_state with proper precedence
347
347
  if session_state is None:
348
348
  session_state = self.session_state or {}
349
+ else:
350
+ # If run session_state is provided, merge agent defaults under it
351
+ # This ensures run state takes precedence over agent defaults
352
+ if self.session_state:
353
+ from agno.utils.merge_dict import merge_dictionaries
354
+
355
+ base_state = self.session_state.copy()
356
+ merge_dictionaries(base_state, session_state)
357
+ session_state.clear()
358
+ session_state.update(base_state)
349
359
 
350
360
  if user_id is not None:
351
361
  session_state["current_user_id"] = user_id
@@ -594,7 +604,8 @@ class Workflow:
594
604
 
595
605
  from agno.utils.merge_dict import merge_dictionaries
596
606
 
597
- # Get the session_state from the database and update the current session_state
607
+ # Get the session_state from the database and merge with proper precedence
608
+ # At this point session_state contains: agent_defaults + run_params
598
609
  if session.session_data and "session_state" in session.session_data:
599
610
  session_state_from_db = session.session_data.get("session_state")
600
611
 
@@ -603,10 +614,11 @@ class Workflow:
603
614
  and isinstance(session_state_from_db, dict)
604
615
  and len(session_state_from_db) > 0
605
616
  ):
606
- # This updates session_state_from_db
607
- # If there are conflicting keys, values from provided session_state will take precedence
608
- merge_dictionaries(session_state_from_db, session_state)
609
- session_state = session_state_from_db
617
+ # This preserves precedence: run_params > db_state > agent_defaults
618
+ merged_state = session_state_from_db.copy()
619
+ merge_dictionaries(merged_state, session_state)
620
+ session_state.clear()
621
+ session_state.update(merged_state)
610
622
 
611
623
  # Update the session_state in the session
612
624
  if session.session_data is None:
@@ -616,7 +628,10 @@ class Workflow:
616
628
  return session_state
617
629
 
618
630
  def _get_workflow_data(self) -> Dict[str, Any]:
619
- workflow_data = {}
631
+ workflow_data: Dict[str, Any] = {
632
+ "workflow_id": self.id,
633
+ "name": self.name,
634
+ }
620
635
 
621
636
  if self.steps and not callable(self.steps):
622
637
  steps_dict = []
@@ -939,9 +954,7 @@ class Workflow:
939
954
 
940
955
  # Update the workflow-level previous_step_outputs dictionary
941
956
  previous_step_outputs[step_name] = step_output
942
- if step_output.stop:
943
- logger.info(f"Early termination requested by step {step_name}")
944
- break
957
+ collected_step_outputs.append(step_output)
945
958
 
946
959
  # Update shared media for next step
947
960
  shared_images.extend(step_output.images or [])
@@ -953,7 +966,9 @@ class Workflow:
953
966
  output_audio.extend(step_output.audio or [])
954
967
  output_files.extend(step_output.files or [])
955
968
 
956
- collected_step_outputs.append(step_output)
969
+ if step_output.stop:
970
+ logger.info(f"Early termination requested by step {step_name}")
971
+ break
957
972
 
958
973
  # Update the workflow_run_response with completion data
959
974
  if collected_step_outputs:
@@ -1375,9 +1390,7 @@ class Workflow:
1375
1390
 
1376
1391
  # Update the workflow-level previous_step_outputs dictionary
1377
1392
  previous_step_outputs[step_name] = step_output
1378
- if step_output.stop:
1379
- logger.info(f"Early termination requested by step {step_name}")
1380
- break
1393
+ collected_step_outputs.append(step_output)
1381
1394
 
1382
1395
  # Update shared media for next step
1383
1396
  shared_images.extend(step_output.images or [])
@@ -1389,7 +1402,10 @@ class Workflow:
1389
1402
  output_audio.extend(step_output.audio or [])
1390
1403
  output_files.extend(step_output.files or [])
1391
1404
 
1392
- collected_step_outputs.append(step_output)
1405
+ if step_output.stop:
1406
+ logger.info(f"Early termination requested by step {step_name}")
1407
+ break
1408
+
1393
1409
 
1394
1410
  # Update the workflow_run_response with completion data
1395
1411
  if collected_step_outputs:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agno
3
- Version: 2.0.7
3
+ Version: 2.0.8
4
4
  Summary: Agno: a lightweight library for building Multi-Agent Systems
5
5
  Author-email: Ashpreet Bedi <ashpreet@agno.com>
6
6
  Project-URL: homepage, https://agno.com
@@ -4,7 +4,7 @@ agno/exceptions.py,sha256=HWuuNFS5J0l1RYJsdUrSx51M22aFEoh9ltoeonXBoBw,2891
4
4
  agno/media.py,sha256=eTfYb_pwhX_PCIVPSrW4VYRqmoxKABEF1aZClrVvQ30,16500
5
5
  agno/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
6
  agno/agent/__init__.py,sha256=s7S3FgsjZxuaabzi8L5n4aSH8IZAiZ7XaNNcySGR-EQ,1051
7
- agno/agent/agent.py,sha256=1-GmMYKCDv4lxUzyr2IKS1nvVzQQix30M03jzE5AM5w,327890
7
+ agno/agent/agent.py,sha256=gc0TG2luSL9bVKrl6ZAhnjJGbFhtkMe-fbT3m_Ul9Us,329973
8
8
  agno/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
9
  agno/api/agent.py,sha256=fKlQ62E_C9Rjd7Zus3Gs3R1RG-IhzFV-ICpkb6SLqYc,932
10
10
  agno/api/api.py,sha256=Z7iWbrjheJcGLeeDYrtTCWiKTVqjH0uJI35UNWOtAXw,973
@@ -48,7 +48,7 @@ agno/db/json/__init__.py,sha256=zyPTmVF9S-OwXCL7FSkrDmunZ_Q14YZO3NYUv1Pa14Y,62
48
48
  agno/db/json/json_db.py,sha256=xIYkb4Fzns5490SOtIdY4wbqIaWbIh87ga6Oscci6ms,42491
49
49
  agno/db/json/utils.py,sha256=__c14xMdyw1AlyV7-DAGDr8YicqhfCbSS5C8OkVN2So,6658
50
50
  agno/db/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
51
- agno/db/migrations/v1_to_v2.py,sha256=HYLLaas9YEEbAOhzK3Sd-qBP-1YfHeeWglWsU31V584,12692
51
+ agno/db/migrations/v1_to_v2.py,sha256=m1YbpVk6dTQ3XPW0A3Z29dUgHLbsmFVtPJ8NUi9beJA,18043
52
52
  agno/db/mongo/__init__.py,sha256=EPa9QkGNVwnuej72LhZDCeASMXa-e0pR20jsgwa9BhY,63
53
53
  agno/db/mongo/mongo.py,sha256=jHizCIW4fFYrrzXMGH4rfV4DbP8p7o-WTDP59-ZtQTU,58011
54
54
  agno/db/mongo/schemas.py,sha256=MAhfwx7_zxKucnZpgq_YSZANaF5MqiZ6qDByhdIREk8,2054
@@ -88,8 +88,8 @@ agno/integrations/discord/__init__.py,sha256=MS08QSnegGgpDZd9LyLjK4pWIk9dXlbzgD7
88
88
  agno/integrations/discord/client.py,sha256=2IWkA-kCDsDXByKOGq2QJG6MtFsbouzNN105rsXn95A,8375
89
89
  agno/knowledge/__init__.py,sha256=PJCt-AGKGFztzR--Ok2TNKW5QEqllZzqiI_7f8-1u80,79
90
90
  agno/knowledge/content.py,sha256=q2bjcjDhfge_UrQAcygrv5R9ZTk7vozzKnQpatDQWRo,2295
91
- agno/knowledge/knowledge.py,sha256=s8tvW8O3bA3rZvK3giFNU_aJ3uz4xsa0tIYsl-f2t48,63507
92
- agno/knowledge/types.py,sha256=zKBJC6xhy2Kl7pxWIhu7txbTAmAPIZlgMPZCbjyU11k,635
91
+ agno/knowledge/knowledge.py,sha256=AQuJZVpwRzVtdd1Q32kk2K-3wqUaKI1tTpQvy53mDqA,68172
92
+ agno/knowledge/types.py,sha256=ciwDLK9MXwi_W_g4nUChEmK6meDQyqTqGK2Ad-wM1os,754
93
93
  agno/knowledge/utils.py,sha256=_uhEFtz4p7-cIKffdj5UZ__c-u96rs2UWP6dv5HpOMk,6490
94
94
  agno/knowledge/chunking/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
95
95
  agno/knowledge/chunking/agentic.py,sha256=OksjCXySqu0vRseQsFgsOdfD0lXqXHP_SGJ6G8Tecbc,3059
@@ -117,7 +117,7 @@ agno/knowledge/embedder/mistral.py,sha256=bs_i1XKFnAEOTyBviwNJhMEmH8HpN9NI8_pUXD
117
117
  agno/knowledge/embedder/nebius.py,sha256=4I2irehvR6Di00Al4jbG4vAa6KZnbOJ-7QqVjB7Mn64,363
118
118
  agno/knowledge/embedder/ollama.py,sha256=clxM1CslYwfdoEzK1fg5m3j9-syjQjlNF3jxOO8xaVo,5797
119
119
  agno/knowledge/embedder/openai.py,sha256=pAqJWV-T__fxzYHB69uimfN-kYIVM-9hETPrAJ75VY0,8585
120
- agno/knowledge/embedder/sentence_transformer.py,sha256=w5dMP_mvuZybvBNKKn2zZRqgVROziMLWCEknsltXmLk,2193
120
+ agno/knowledge/embedder/sentence_transformer.py,sha256=khJJbJlBFDeVJm7yd4ub3e7n7rM-l5z00f594jGtIaU,2203
121
121
  agno/knowledge/embedder/together.py,sha256=Pt524Lh6YRDKfD8rfmLu0Qlw4dDh4vLz7KEMIvIULBk,387
122
122
  agno/knowledge/embedder/voyageai.py,sha256=jaXqr4C3-Vdp_DV1nqKQad_daAn_LRsJoIVPeNmr0_U,4139
123
123
  agno/knowledge/reader/__init__.py,sha256=edjnCwyDjM9Q5JPMi4K9mll8a3CdV52iagUKAgGiaas,159
@@ -167,6 +167,8 @@ agno/models/cerebras/cerebras.py,sha256=eeJACHdYeI3k_NJtuwRuJ0iPHHYlk7K3bEZcqj7n
167
167
  agno/models/cerebras/cerebras_openai.py,sha256=iA2k2QLTkTOqx-K6Hm1XGL-xfiLhf4bB2s4NWUYWx1w,4076
168
168
  agno/models/cohere/__init__.py,sha256=4kFUnfPEL3__hd1TRW7fZxh7D_DctcpY5QDV58lR6s0,72
169
169
  agno/models/cohere/chat.py,sha256=Ff6LdMZ9xzIhaz4R9ugXFQH3YZRGaEnidIgA4kGTpM8,15086
170
+ agno/models/cometapi/__init__.py,sha256=_t5JqHLyohg2u1RkkOR9eSwKsPoAhWUr48i9ei-Rn4Y,82
171
+ agno/models/cometapi/cometapi.py,sha256=0BYFV3HJnI3lvcXr67EQZJlxNINPR3-zCQMoARVpvro,1946
170
172
  agno/models/dashscope/__init__.py,sha256=lHZTGvs7fVeX4N1G7JNMa4mfsSQHgQq02DsSVqYFqpw,86
171
173
  agno/models/dashscope/dashscope.py,sha256=ezhnM9lQ0Gg6u17aVNy82VrjUhgoefdtYhPwTvGrCfg,3370
172
174
  agno/models/deepinfra/__init__.py,sha256=24gMCeFHNbHw6l5gHZ1GwVg02546E9F_0yIZVSK15C8,86
@@ -176,7 +178,7 @@ agno/models/deepseek/deepseek.py,sha256=Sc2Jtc6-lROb2BnSHzG_m6p48RPlYXbsyrgjHqYW
176
178
  agno/models/fireworks/__init__.py,sha256=qIDjKUnwmrnwfa9B2Y3ybRyuUsF7Pzw6_bVq4N6M0Cg,86
177
179
  agno/models/fireworks/fireworks.py,sha256=jL1Zg8DZBbkNGe1-Fr5ymD8VWw2pTho4DsJa7DqWvM8,943
178
180
  agno/models/google/__init__.py,sha256=bEOSroFJ4__38XaCgBUWiOe_Qga66ZRm_gis__yIMmc,74
179
- agno/models/google/gemini.py,sha256=ygxR-1k7t29_3HHvbhfih8MPy0aUHiCyTmabdEj39Ws,47753
181
+ agno/models/google/gemini.py,sha256=UDyF4jzeT63pS2BrrFJcqARcaqd8WrLEb-B-KnyZeO4,47545
180
182
  agno/models/groq/__init__.py,sha256=gODf5IA4yJKlwTEYsUywmA-dsiQVyL2_yWMc8VncdVU,66
181
183
  agno/models/groq/groq.py,sha256=hByU97lwb9HBsFgDHZsq2_a3dvT-X8QIO-qmLsD4ePY,22121
182
184
  agno/models/huggingface/__init__.py,sha256=VgdYkgSHqsFLhvJ9lSUCyEZfest8hbCAUpWU6WCk-_c,94
@@ -206,11 +208,11 @@ agno/models/nexus/nexus.py,sha256=rJcBQXR1aqUiLWMPBRuHIEh87wVrsqXup1hr_smanBQ,63
206
208
  agno/models/nvidia/__init__.py,sha256=O0g3_0_ciOz0AH4Y4CAL7YRfhdDPAvhDzNjJmgWKT78,74
207
209
  agno/models/nvidia/nvidia.py,sha256=0vpEq4cBY_5JdBzGoD95rBdro6dpVNAV5ioKz3lpnfs,948
208
210
  agno/models/ollama/__init__.py,sha256=TIhwxG7ek3eyfoKTLoZQXwdgzcIngYKjbjSlkf2gkWE,72
209
- agno/models/ollama/chat.py,sha256=QGJetMU5qL6oPrI-yFSAMt_rfjb2T0XsquGx6r3z91k,13940
211
+ agno/models/ollama/chat.py,sha256=izI5VgfT4J319DKeLEeWvvdUy4-z1noyJ0cQvTNxu1I,14977
210
212
  agno/models/openai/__init__.py,sha256=OssVgQRpsriU6aJZ3lIp_jFuqvX6y78L4Fd3uTlmI3E,225
211
- agno/models/openai/chat.py,sha256=4cRlD9NAFhmIC81uaun4UbERkHKGMO2nBabh5InoZLo,36444
213
+ agno/models/openai/chat.py,sha256=ziDp_zOPZWZI5vpBhza3CZPv4SMeVeAi6UdtAGjzmVQ,36362
212
214
  agno/models/openai/like.py,sha256=wmw9PfAVqluBs4MMY73dgjelKn1yl5JDKyCRvaNFjFw,745
213
- agno/models/openai/responses.py,sha256=KCFe1K5TLt81WHPQMJY5vbwRaKVZlceat5Mz49RvHJg,47106
215
+ agno/models/openai/responses.py,sha256=46o9Yu0Vo6ILVGn5dELYAmI4jhdtsmn8Y0ZClezDq58,47167
214
216
  agno/models/openrouter/__init__.py,sha256=ZpZhNyy_EGSXp58uC9e2iyjnxBctql7GaY8rUG-599I,90
215
217
  agno/models/openrouter/openrouter.py,sha256=FX0P9mPEHyTuiVQNs-c84Ehy0RIGEmvdy6WM_-KhxUQ,907
216
218
  agno/models/perplexity/__init__.py,sha256=JNmOElDLwcZ9_Lk5owkEdgwmAhaH3YJ-VJqOI8rgp5c,90
@@ -237,21 +239,21 @@ agno/os/mcp.py,sha256=5L0TZwInuCWM7TQ7MI_DjMWfVIIB0jxVCqaVEdR62UU,8114
237
239
  agno/os/router.py,sha256=LSWu6jCnDxo8JV02fFi9bhXEWh47PYJmWWYLAlOlfQM,61695
238
240
  agno/os/schema.py,sha256=bdmGLQoBJyetiAZeajJG_gEKLaQSSEwiDwKy0q4Pa-M,38278
239
241
  agno/os/settings.py,sha256=Cn5_8lZI8Vx1UaUYqs9h6Qp4IMDFn4f3c35uppiaMy4,1343
240
- agno/os/utils.py,sha256=mWTHc-czb95hsEoMZxo0CAUE29HDg6vx6GAWRzY1uWo,10498
242
+ agno/os/utils.py,sha256=MdUJ214ua4ClMg1XjwLIef-sKA7pm8zYms6IOgpYJg0,10790
241
243
  agno/os/interfaces/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
242
244
  agno/os/interfaces/base.py,sha256=NIqG5vCQDaKczcQZWRc9tK1L1v5_wD6haXTHFViMCpo,443
243
245
  agno/os/interfaces/agui/__init__.py,sha256=1zrGICk4roXUINwSFZfqH6sBsbHmD5KjGYVJMGg4fKQ,66
244
- agno/os/interfaces/agui/agui.py,sha256=Gf05amiSeDrEfCe7KcQaEJ8Tq9JdX1D7It9hYh1k-a8,902
246
+ agno/os/interfaces/agui/agui.py,sha256=-KiJaM-IkL9QI9UNzyWqO-uQxdQxsZJnV5aNFmDPcN4,898
245
247
  agno/os/interfaces/agui/router.py,sha256=CgHCqNwA3ktUoGmCt0PoaQPX3hJ4rcXOgtXUGQ5sPIU,4335
246
- agno/os/interfaces/agui/utils.py,sha256=VykZ-SGN5UzBpP5Pv4TmZgMsZRNPgSryO5z5ir48-N0,15892
248
+ agno/os/interfaces/agui/utils.py,sha256=bfWxYh2w2O3aroRlaOc2f4ZJXEVavya1IqvCntqY9Xw,19162
247
249
  agno/os/interfaces/slack/__init__.py,sha256=F095kOcgiyk_KzIozNNieKwpVc_NR8HYpuO4bKiCNN0,70
248
250
  agno/os/interfaces/slack/router.py,sha256=9FvL12luuzJyTKIO_piQFayHeRAV317JEwUkZ3W9MzY,4034
249
251
  agno/os/interfaces/slack/security.py,sha256=nMbW_0g-G_DEMbCQOD8C3PYrRPIpB2cyM6P-xS6GHYk,917
250
- agno/os/interfaces/slack/slack.py,sha256=xZanqP4MPTDXHVfkAfIvPCRUiRul1RKqONuj551EE3k,883
252
+ agno/os/interfaces/slack/slack.py,sha256=GIW70TpVPlVzd6EYA8HtUhE9aj9S4UyIOIqdDgBxNJU,879
251
253
  agno/os/interfaces/whatsapp/__init__.py,sha256=-sD2W00qj8hrx72ATVMtaDc7GfAsaCQJMlnRjYPwisg,82
252
254
  agno/os/interfaces/whatsapp/router.py,sha256=48AfJrsmtmGzG32rUrQ76E4kc9F9bSqR4ei21VQRvPc,9620
253
255
  agno/os/interfaces/whatsapp/security.py,sha256=WOdjP886O0Wq6CRHSLAv_b39y6pjmn8opPQDSlZf4WA,1735
254
- agno/os/interfaces/whatsapp/whatsapp.py,sha256=NpkenUHFhILEZgEIjbicCXq61rdaXhbx5Md1aFy7UjY,837
256
+ agno/os/interfaces/whatsapp/whatsapp.py,sha256=lPWPsfK-fenpdWPYPKwXOYzev-tE44H1-LwqCSsExRA,833
255
257
  agno/os/routers/__init__.py,sha256=du4LO9aZwiY1t59VcV9M6wiAfftFFlUZc-YXsTGy9LI,97
256
258
  agno/os/routers/health.py,sha256=MpJrg488T0m8jU0mtoBNPiLhlR2r2gFihvyZwdQh_oc,725
257
259
  agno/os/routers/home.py,sha256=gbqBP2-G5_aFSdsXMdc77jtanI8XSRZ8QcxKjX8_qkw,1717
@@ -273,7 +275,7 @@ agno/os/routers/session/session.py,sha256=ajM-ehfThQTxczwkRpEpo_EkmloeRGNNYWWad6
273
275
  agno/reasoning/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
274
276
  agno/reasoning/azure_ai_foundry.py,sha256=ZCrrQ0wOEO0JNpLxFxp3crqGA9xjBqAcop9xJFlpRng,2600
275
277
  agno/reasoning/deepseek.py,sha256=nEBIs7X-3dzkPWB_0tht5jNCtg61NBdroiaVPeT0pjw,2237
276
- agno/reasoning/default.py,sha256=8p3WYtCtVA4FoGEv7x-BG3SmfF6NGA6O6n9GJq34k68,5236
278
+ agno/reasoning/default.py,sha256=KFOhfgz9ERICRpKakow60SYIRlF7LIrM7fp0TLHma4w,5318
277
279
  agno/reasoning/groq.py,sha256=B4Ha6QuLwyOEp6V3lyUDv8xDadS_XCJTEw9WyCyMd2A,2644
278
280
  agno/reasoning/helpers.py,sha256=77gce_FQDGGVwM1-j5Zc_ds5FRZy9l7EcH2cp0WkJrI,2153
279
281
  agno/reasoning/ollama.py,sha256=v-XbtBjjRUZHX9I1ZNZAAb-sv8W_a0hCgkhczz_W4HU,2564
@@ -287,12 +289,12 @@ agno/run/messages.py,sha256=rAC4CLW-xBA6qFS1BOvcjJ9j_qYf0a7sX1mcdY04zMU,1126
287
289
  agno/run/team.py,sha256=J-ZsMIMe-xLMgjAWgMRiSREqn8gJ6uKPQsKLo3RUdNU,22935
288
290
  agno/run/workflow.py,sha256=C4RHtkT-WjEzx44qiRbzzL2po7-0FV37sA4A-7XheMs,22999
289
291
  agno/session/__init__.py,sha256=p6eqzWcLSHiMex2yZvkwv2yrFUNdGs21TGMS49xrEC4,376
290
- agno/session/agent.py,sha256=0o8QJRc6HclC7X5MjPTSqtRIwuyjJ9un4ck9FK8lBlA,9686
292
+ agno/session/agent.py,sha256=vut3IwCivUu0vvuht_1c3rUhW61NZee6whxDQUsEkUM,9756
291
293
  agno/session/summary.py,sha256=2a74rDzrOGkWjrFkHQ6gf1dsZBU0_G1lgDE7b3fPaQw,8405
292
- agno/session/team.py,sha256=ttb5MquVYEAtcXZNPttcBYgELu2cEwQRknveVyddr-Y,10250
294
+ agno/session/team.py,sha256=ckz-h_sYoFEbqLmNYglS0mamI9QzLfh-2ixsrHW6lU0,10383
293
295
  agno/session/workflow.py,sha256=8dWTona5jen1iPYwjcvxq1XG5EQDFnd28BEjcbqzl4s,5004
294
296
  agno/team/__init__.py,sha256=toHidBOo5M3n_TIVtIKHgcDbLL9HR-_U-YQYuIt_XtE,847
295
- agno/team/team.py,sha256=lUwsSb1B8lEsjgpkmcvk3ov9qkPagYfE9cQZatoBz-U,307828
297
+ agno/team/team.py,sha256=BShduFtMOVDvp7nT5sEHu3GKos43vNIhsmYKHS0EWdo,315086
296
298
  agno/tools/__init__.py,sha256=jNll2sELhPPbqm5nPeT4_uyzRO2_KRTW-8Or60kioS0,210
297
299
  agno/tools/agentql.py,sha256=S82Z9aTNr-E5wnA4fbFs76COljJtiQIjf2grjz3CkHU,4104
298
300
  agno/tools/airflow.py,sha256=uf2rOzZpSU64l_qRJ5Raku-R3Gky-uewmYkh6W0-oxg,2610
@@ -332,7 +334,7 @@ agno/tools/file.py,sha256=h3CiiM0wREK3vR_PlYFwJ8zYBFFjNmReNnAm9-JPgCU,4322
332
334
  agno/tools/file_generation.py,sha256=OMRG1CkpnZTCMxnKXGHfkfdXUYEur9jsdyCNxujWHS4,13896
333
335
  agno/tools/financial_datasets.py,sha256=NiXwyiYIFCawI8rR7JLJNIfwoQlranUeCcABHKhLHfw,9190
334
336
  agno/tools/firecrawl.py,sha256=jV-uWVCZzISL4IoXlggzeO7KvnkE-UrDIzSaoQvbtmQ,5333
335
- agno/tools/function.py,sha256=dA2B9GuEk7oxrYoPA3-XRq43PyOG6Q_GJJ6NsNnijDU,41690
337
+ agno/tools/function.py,sha256=EhJBjN11219Y1wUn5aIzoL9GvHP1SLGCMKLLPveOv6U,43217
336
338
  agno/tools/giphy.py,sha256=_wOCWVnMdFByE9Yoz4Pf2MoKxSjkUTiPJZ928_BNe2M,3070
337
339
  agno/tools/github.py,sha256=wct6P00YzF3zgWoV2c5aHeXX_2dgb9LqRwJAboi6QXw,70286
338
340
  agno/tools/gmail.py,sha256=MlLlEvxHly_2oKAZaKxXDmoHLTbWDSXcjOASGt7RpY8,28067
@@ -349,7 +351,7 @@ agno/tools/linear.py,sha256=yA3Yci-Dnid0rZPeXds4aZY8hL7KjloZkES9thKEPe8,13775
349
351
  agno/tools/linkup.py,sha256=EzX4_ARW96DkFe1IXAFlPQI5rdhhdhmNTX1tB5IVFWs,2123
350
352
  agno/tools/local_file_system.py,sha256=wWyhM5-lqDgDO_YNzRA8ekG-m2n89k8fWr8M1BWiQWo,3157
351
353
  agno/tools/lumalab.py,sha256=6WnZXbThKY2jL9zLswq1PVsbFm2jz81qshWqBZi59oo,6808
352
- agno/tools/mcp.py,sha256=4effn9XvS878W810k1mOE411-_XQqp3dpHc1Y9IcN4k,25397
354
+ agno/tools/mcp.py,sha256=Zox_N0Uv6xRS_rA0pV_nSpQxTbQAiQfSBEOJGGcJnfM,26361
353
355
  agno/tools/mem0.py,sha256=5W5pZwJmBTt-_l4nvBdNQHavXFSKV9mVdJg5aso4JBI,7680
354
356
  agno/tools/memori.py,sha256=tubBYj0rQFbBXadhWxwTjjmb3Rnims536AVPkGdCMcw,13181
355
357
  agno/tools/memory.py,sha256=vpMoKtCqs3m6vkuqmZ4fW9IRf1OhXHQGGaq3exJK0Xo,18449
@@ -424,7 +426,7 @@ agno/utils/env.py,sha256=o8OwKhx78vi8MaXPes10mXejmJ13CqAh7ODKMS1pmcM,438
424
426
  agno/utils/events.py,sha256=UDlVk51vvQIgnJGkTA-mxl1_fy2qze6wi8griiPEwVQ,20092
425
427
  agno/utils/format_str.py,sha256=Zp9dDGMABUJzulp2bs41JiNv0MqmMX0qPToL7l_Ab1c,376
426
428
  agno/utils/functions.py,sha256=eHvGqO2uO63TR-QmmhZy2DEnC0xkAfhBG26z77T7jCo,6306
427
- agno/utils/gemini.py,sha256=OPaXmqS1-fuZ9kETlpx_pMp6cEufSZzHmJerR5nAR7g,11206
429
+ agno/utils/gemini.py,sha256=2IMG68G41nfD-5dSepRu9ZrZa_20AvRyqygeAtHgOJQ,15609
428
430
  agno/utils/http.py,sha256=t7sr34VD9M___MYBlX6p4XKEqkvuXRJNJG7Y1ebU2bk,2673
429
431
  agno/utils/json_schema.py,sha256=VPbK-Gdo0qOQKco7MZnv1d2Fe-9mt1PRBO1SNFIvBHY,8555
430
432
  agno/utils/knowledge.py,sha256=b2H3VxJOeut24_vICb_k-fkzoRagxt93waznn2tUJZk,990
@@ -454,7 +456,7 @@ agno/utils/yaml_io.py,sha256=cwTqCE-eBGoi87KLDcwB6iyWe0NcvEmadQjWL1cQ7jE,860
454
456
  agno/utils/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
455
457
  agno/utils/models/ai_foundry.py,sha256=PmhETWhdqZCq8NbDe-MdZVuRXx6DbVOePCyPFiPLceo,1511
456
458
  agno/utils/models/aws_claude.py,sha256=d0PWNNVHiA8Kzg_RzOEvNNkmOsmSzWxOnlA86uLtnQE,5680
457
- agno/utils/models/claude.py,sha256=27jq6tqf1ZID-ZZbrMtBsI2w6JgqiLECgVFIXYRN-iA,11000
459
+ agno/utils/models/claude.py,sha256=QYnARhGrLSvP2kfFCa7t-hnaZdU9Nby-B-21ocT9_rA,11293
458
460
  agno/utils/models/cohere.py,sha256=wir2K9u4RmOwq7T7n_2UPZFHfwmnrt_u91Psd_DFqdE,3266
459
461
  agno/utils/models/llama.py,sha256=Z5fdOFUFnov1JgUDcP6ICK3M7o64UB1fkcwAs2XaZkM,2515
460
462
  agno/utils/models/mistral.py,sha256=SVcJ8Q8SFeadNwCr8BARbET0gvGiylmaDKzcSJ9kWq0,4189
@@ -462,11 +464,11 @@ agno/utils/models/openai_responses.py,sha256=63f2UgDFCzrr6xQITrGtn42UUHQBcZFUUFM
462
464
  agno/utils/models/schema_utils.py,sha256=L6TkraMClI471H6xYy7V81lhHR4qQloVKCN0bF4Ajw0,5047
463
465
  agno/utils/models/watsonx.py,sha256=fe6jN0hBvOCQurqjS6_9PIwDHt-4kVod9qW236Zs6DU,1496
464
466
  agno/utils/print_response/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
465
- agno/utils/print_response/agent.py,sha256=nvjg2h8qTyU38DL6XdiWDIEdvd8rxOWoUgpNH5gSMBY,32917
466
- agno/utils/print_response/team.py,sha256=e5ABDd4hoCxxzgAzmN6Mo1exWusni8MwovrXubNu73E,75823
467
+ agno/utils/print_response/agent.py,sha256=Sb21YnoW5e1KzOr4rJjhxAaIKaSVrbxd8J1hSSfiPMQ,33929
468
+ agno/utils/print_response/team.py,sha256=5wtmcVlMW1s-qQ0iS7GNH1s5jn3RvkI_2Pwby4Ew4ys,76835
467
469
  agno/utils/print_response/workflow.py,sha256=qzI09OFS-f4tua27tBXhmle0ezQGFiC6s5IPgPvTq9I,66499
468
470
  agno/vectordb/__init__.py,sha256=P0QP9PUC4j2JtWIfYJX7LeC-oiPuh_QsUaOaP1ZY_dI,64
469
- agno/vectordb/base.py,sha256=LXTD5dIQbfIAzQJqbzvRriMnjT3bTyadRzBCEwjUsDU,3050
471
+ agno/vectordb/base.py,sha256=y5kqBiIp2atgcvV-_NXNXcX6NZFqJZibBaqbkWhtFTk,3054
470
472
  agno/vectordb/distance.py,sha256=OjpKSq57_gblZm4VGZTV7B7le45r_2-Fp1X4Hilx1M4,131
471
473
  agno/vectordb/search.py,sha256=9lJjTm2nvykn3MeVg0stB1qDZb_q-S7GG1MMS9P12e8,121
472
474
  agno/vectordb/cassandra/__init__.py,sha256=1N7lA9QDVWsCD5V5qvXjhACVDMWlq8f37hhNBWOcZA0,88
@@ -483,11 +485,11 @@ agno/vectordb/couchbase/couchbase.py,sha256=YSiJgabL4_xP2CwQNZOHkOmqdkX8Hh4VsbyP
483
485
  agno/vectordb/lancedb/__init__.py,sha256=tb9qvinKyWMTLjJYMwW_lhYHFvrfWTfHODtBfMj-NLE,111
484
486
  agno/vectordb/lancedb/lance_db.py,sha256=h7exAQxlwEyA6c2TMawyQNvyTO4GV691_OjIG8FaR7o,40320
485
487
  agno/vectordb/langchaindb/__init__.py,sha256=BxGs6tcEKTiydbVJL3P5djlnafS5Bbgql3u1k6vhW2w,108
486
- agno/vectordb/langchaindb/langchaindb.py,sha256=HEHWHyQvKLQofDOrMKPTa6n3pwwPXXqm_zsrSM4Bzsk,5585
488
+ agno/vectordb/langchaindb/langchaindb.py,sha256=VieHU4W-lRmYN0bLo2vmb7rGkmlNkPtjXILD4_F8818,5505
487
489
  agno/vectordb/lightrag/__init__.py,sha256=fgQpA8pZW-jEHI91SZ_xgmROmv14oKdwCQZ8LpyipaE,84
488
490
  agno/vectordb/lightrag/lightrag.py,sha256=GBReSzGBxpv0u0WTTZYTezZWpJQNj1zwL70ori3_cD4,14390
489
491
  agno/vectordb/llamaindex/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
490
- agno/vectordb/llamaindex/llamaindexdb.py,sha256=wqEIZ3S3hlS_s44IbpjbrvZbFiWgEtwk-CpDmXGVsQU,4792
492
+ agno/vectordb/llamaindex/llamaindexdb.py,sha256=co_GtDJuorGG0cN-taWiuNUXGwNlgE044PQjTT7lfcU,5432
491
493
  agno/vectordb/milvus/__init__.py,sha256=I9V-Rm-rIYxWdRVIs6bKI-6JSJsyOd1-vvasvVpYHuE,127
492
494
  agno/vectordb/milvus/milvus.py,sha256=fbpXXOV_ahxP5kX0KoPZ4_4M3kWC4gjGX0GEtuIVD8o,42394
493
495
  agno/vectordb/mongodb/__init__.py,sha256=yYwaWdxZRnFTd87Hfgs8_DO4QxcJxy1iL3__bnxP71I,73
@@ -517,9 +519,9 @@ agno/workflow/router.py,sha256=ZAiVsh2F_9ssKj0_RzHWzfgimaZ5hfb3Ni1Xx_SkVR0,26625
517
519
  agno/workflow/step.py,sha256=15vZFN5HlO3IkHqsxkM-2InUzCWC0Ee8BtoJ-OAhS5w,52485
518
520
  agno/workflow/steps.py,sha256=uRE4oGWs2cA-TrX881AEa69zu6rheXH81mNOZiRrNvg,23719
519
521
  agno/workflow/types.py,sha256=ZEFyaKH42261_3yx810ABfi70RUfjPGSwiIep7n53yg,17485
520
- agno/workflow/workflow.py,sha256=1SWIoQdXt8FN8qJDxpfJ7Ol9Ea4c_Ir2xPV7m7deqnQ,111724
521
- agno-2.0.7.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
522
- agno-2.0.7.dist-info/METADATA,sha256=1Jt-ipXGuFjrLybXQZaLJGxte4rJg0noeXjnGLl0p-M,21884
523
- agno-2.0.7.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
524
- agno-2.0.7.dist-info/top_level.txt,sha256=MKyeuVesTyOKIXUhc-d_tPa2Hrh0oTA4LM0izowpx70,5
525
- agno-2.0.7.dist-info/RECORD,,
522
+ agno/workflow/workflow.py,sha256=LhXJ58bCuBnr7NbCgeyhiA_Y6vu5nRzErAHRI4euDgY,112399
523
+ agno-2.0.8.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
524
+ agno-2.0.8.dist-info/METADATA,sha256=oxhfUVv93ZK-kJTolNwlmetMOAeQI32Rdz76ig_ZzVI,21884
525
+ agno-2.0.8.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
526
+ agno-2.0.8.dist-info/top_level.txt,sha256=MKyeuVesTyOKIXUhc-d_tPa2Hrh0oTA4LM0izowpx70,5
527
+ agno-2.0.8.dist-info/RECORD,,
File without changes