agno 2.2.2__py3-none-any.whl → 2.2.4__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 +26 -5
- agno/db/dynamo/utils.py +1 -1
- agno/db/firestore/utils.py +1 -1
- agno/db/gcs_json/utils.py +1 -1
- agno/db/in_memory/utils.py +1 -1
- agno/db/json/utils.py +1 -1
- agno/db/mongo/__init__.py +15 -1
- agno/db/mongo/async_mongo.py +1999 -0
- agno/db/mongo/utils.py +1 -1
- agno/db/mysql/utils.py +1 -1
- agno/db/postgres/async_postgres.py +8 -3
- agno/db/postgres/utils.py +1 -1
- agno/db/redis/utils.py +1 -1
- agno/db/singlestore/utils.py +1 -1
- agno/db/sqlite/utils.py +1 -1
- agno/knowledge/embedder/ollama.py +8 -0
- agno/memory/manager.py +5 -5
- agno/os/app.py +105 -42
- agno/os/schema.py +0 -1
- agno/run/agent.py +27 -0
- agno/run/team.py +27 -0
- agno/session/agent.py +57 -17
- agno/session/team.py +57 -18
- agno/team/team.py +37 -11
- {agno-2.2.2.dist-info → agno-2.2.4.dist-info}/METADATA +1 -1
- {agno-2.2.2.dist-info → agno-2.2.4.dist-info}/RECORD +29 -28
- {agno-2.2.2.dist-info → agno-2.2.4.dist-info}/WHEEL +0 -0
- {agno-2.2.2.dist-info → agno-2.2.4.dist-info}/licenses/LICENSE +0 -0
- {agno-2.2.2.dist-info → agno-2.2.4.dist-info}/top_level.txt +0 -0
agno/session/team.py
CHANGED
|
@@ -113,11 +113,25 @@ class TeamSession:
|
|
|
113
113
|
|
|
114
114
|
log_debug("Added RunOutput to Team Session")
|
|
115
115
|
|
|
116
|
+
def _should_skip_message(
|
|
117
|
+
self, message: Message, skip_role: Optional[str] = None, skip_history_messages: bool = True
|
|
118
|
+
) -> bool:
|
|
119
|
+
"""Processes a message for history"""
|
|
120
|
+
# Skip messages that were tagged as history in previous runs
|
|
121
|
+
if hasattr(message, "from_history") and message.from_history and skip_history_messages:
|
|
122
|
+
return True
|
|
123
|
+
|
|
124
|
+
# Skip messages with specified role
|
|
125
|
+
if skip_role and message.role == skip_role:
|
|
126
|
+
return True
|
|
127
|
+
return False
|
|
128
|
+
|
|
116
129
|
def get_messages_from_last_n_runs(
|
|
117
130
|
self,
|
|
118
131
|
agent_id: Optional[str] = None,
|
|
119
132
|
team_id: Optional[str] = None,
|
|
120
133
|
last_n: Optional[int] = None,
|
|
134
|
+
last_n_messages: Optional[int] = None,
|
|
121
135
|
skip_role: Optional[str] = None,
|
|
122
136
|
skip_status: Optional[List[RunStatus]] = None,
|
|
123
137
|
skip_history_messages: bool = True,
|
|
@@ -129,6 +143,7 @@ class TeamSession:
|
|
|
129
143
|
agent_id: The id of the agent to get the messages from.
|
|
130
144
|
team_id: The id of the team to get the messages from.
|
|
131
145
|
last_n: The number of runs to return from the end of the conversation. Defaults to all runs.
|
|
146
|
+
last_n_messages: The number of messages to return from the end of the conversation. Defaults to all messages.
|
|
132
147
|
skip_role: Skip messages with this role.
|
|
133
148
|
skip_status: Skip messages with this status.
|
|
134
149
|
skip_history_messages: Skip messages that were tagged as history in previous runs.
|
|
@@ -155,31 +170,55 @@ class TeamSession:
|
|
|
155
170
|
# Filter by status
|
|
156
171
|
session_runs = [run for run in session_runs if hasattr(run, "status") and run.status not in skip_status] # type: ignore
|
|
157
172
|
|
|
158
|
-
# Filter by last_n
|
|
159
|
-
runs_to_process = session_runs[-last_n:] if last_n is not None else session_runs
|
|
160
173
|
messages_from_history = []
|
|
161
174
|
system_message = None
|
|
162
175
|
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
for message in run_response.messages or []:
|
|
168
|
-
# Skip messages that were tagged as history in previous runs
|
|
169
|
-
if hasattr(message, "from_history") and message.from_history and skip_history_messages:
|
|
176
|
+
# Filter by last_n_messages
|
|
177
|
+
if last_n_messages is not None:
|
|
178
|
+
for run_response in session_runs:
|
|
179
|
+
if not run_response or not run_response.messages:
|
|
170
180
|
continue
|
|
171
181
|
|
|
172
|
-
|
|
173
|
-
|
|
182
|
+
for message in run_response.messages or []:
|
|
183
|
+
if self._should_skip_message(message, skip_role, skip_history_messages):
|
|
184
|
+
continue
|
|
185
|
+
|
|
186
|
+
if message.role == "system":
|
|
187
|
+
# Only add the system message once
|
|
188
|
+
if system_message is None:
|
|
189
|
+
system_message = message
|
|
190
|
+
else:
|
|
191
|
+
messages_from_history.append(message)
|
|
192
|
+
|
|
193
|
+
if system_message:
|
|
194
|
+
messages_from_history = [system_message] + messages_from_history[
|
|
195
|
+
-(last_n_messages - 1) :
|
|
196
|
+
] # Grab one less message then add the system message
|
|
197
|
+
else:
|
|
198
|
+
messages_from_history = messages_from_history[-last_n_messages:]
|
|
199
|
+
|
|
200
|
+
# Remove tool result messages that don't have an associated assistant message with tool calls
|
|
201
|
+
while len(messages_from_history) > 0 and messages_from_history[0].role == "tool":
|
|
202
|
+
messages_from_history.pop(0)
|
|
203
|
+
else:
|
|
204
|
+
# Filter by last_n runs
|
|
205
|
+
runs_to_process = session_runs[-last_n:] if last_n is not None else session_runs
|
|
206
|
+
|
|
207
|
+
for run_response in runs_to_process:
|
|
208
|
+
if not (run_response and run_response.messages):
|
|
174
209
|
continue
|
|
175
210
|
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
211
|
+
for message in run_response.messages or []:
|
|
212
|
+
if self._should_skip_message(message, skip_role, skip_history_messages):
|
|
213
|
+
continue
|
|
214
|
+
|
|
215
|
+
if message.role == "system":
|
|
216
|
+
# Only add the system message once
|
|
217
|
+
if system_message is None:
|
|
218
|
+
system_message = message
|
|
219
|
+
messages_from_history.append(system_message)
|
|
220
|
+
else:
|
|
221
|
+
messages_from_history.append(message)
|
|
183
222
|
|
|
184
223
|
log_debug(f"Getting messages from previous runs: {len(messages_from_history)}")
|
|
185
224
|
return messages_from_history
|
agno/team/team.py
CHANGED
|
@@ -378,7 +378,9 @@ class Team:
|
|
|
378
378
|
# add_history_to_context=true adds messages from the chat history to the messages list sent to the Model.
|
|
379
379
|
add_history_to_context: bool = False
|
|
380
380
|
# Number of historical runs to include in the messages
|
|
381
|
-
num_history_runs: int =
|
|
381
|
+
num_history_runs: Optional[int] = None
|
|
382
|
+
# Number of historical messages to include in the messages list sent to the Model.
|
|
383
|
+
num_history_messages: Optional[int] = None
|
|
382
384
|
# Maximum number of tool calls to include from history (None = no limit)
|
|
383
385
|
max_tool_calls_from_history: Optional[int] = None
|
|
384
386
|
|
|
@@ -485,7 +487,9 @@ class Team:
|
|
|
485
487
|
store_history_messages: bool = True,
|
|
486
488
|
send_media_to_model: bool = True,
|
|
487
489
|
add_history_to_context: bool = False,
|
|
488
|
-
num_history_runs: int =
|
|
490
|
+
num_history_runs: Optional[int] = None,
|
|
491
|
+
num_history_messages: Optional[int] = None,
|
|
492
|
+
max_tool_calls_from_history: Optional[int] = None,
|
|
489
493
|
tools: Optional[List[Union[Toolkit, Callable, Function, Dict]]] = None,
|
|
490
494
|
tool_call_limit: Optional[int] = None,
|
|
491
495
|
tool_choice: Optional[Union[str, Dict[str, Any]]] = None,
|
|
@@ -508,7 +512,6 @@ class Team:
|
|
|
508
512
|
enable_session_summaries: bool = False,
|
|
509
513
|
session_summary_manager: Optional[SessionSummaryManager] = None,
|
|
510
514
|
add_session_summary_to_context: Optional[bool] = None,
|
|
511
|
-
max_tool_calls_from_history: Optional[int] = None,
|
|
512
515
|
metadata: Optional[Dict[str, Any]] = None,
|
|
513
516
|
reasoning: bool = False,
|
|
514
517
|
reasoning_model: Optional[Model] = None,
|
|
@@ -553,6 +556,17 @@ class Team:
|
|
|
553
556
|
|
|
554
557
|
self.add_history_to_context = add_history_to_context
|
|
555
558
|
self.num_history_runs = num_history_runs
|
|
559
|
+
self.num_history_messages = num_history_messages
|
|
560
|
+
if self.num_history_messages is not None and self.num_history_runs is not None:
|
|
561
|
+
log_warning(
|
|
562
|
+
"num_history_messages and num_history_runs cannot be set at the same time. Using num_history_runs."
|
|
563
|
+
)
|
|
564
|
+
self.num_history_messages = None
|
|
565
|
+
if self.num_history_messages is None and self.num_history_runs is None:
|
|
566
|
+
self.num_history_runs = 3
|
|
567
|
+
|
|
568
|
+
self.max_tool_calls_from_history = max_tool_calls_from_history
|
|
569
|
+
|
|
556
570
|
self.add_team_history_to_members = add_team_history_to_members
|
|
557
571
|
self.num_team_history_runs = num_team_history_runs
|
|
558
572
|
self.search_session_history = search_session_history
|
|
@@ -620,9 +634,6 @@ class Team:
|
|
|
620
634
|
self.enable_session_summaries = enable_session_summaries
|
|
621
635
|
self.session_summary_manager = session_summary_manager
|
|
622
636
|
self.add_session_summary_to_context = add_session_summary_to_context
|
|
623
|
-
self.add_history_to_context = add_history_to_context
|
|
624
|
-
self.num_history_runs = num_history_runs
|
|
625
|
-
self.max_tool_calls_from_history = max_tool_calls_from_history
|
|
626
637
|
self.metadata = metadata
|
|
627
638
|
|
|
628
639
|
self.reasoning = reasoning
|
|
@@ -3457,7 +3468,7 @@ class Team:
|
|
|
3457
3468
|
run_messages.user_message.get_content_string() if run_messages.user_message is not None else None
|
|
3458
3469
|
)
|
|
3459
3470
|
if user_message_str is not None and user_message_str.strip() != "" and self.memory_manager is not None:
|
|
3460
|
-
log_debug("
|
|
3471
|
+
log_debug("Managing user memories")
|
|
3461
3472
|
self.memory_manager.create_user_memories(
|
|
3462
3473
|
message=user_message_str,
|
|
3463
3474
|
user_id=user_id,
|
|
@@ -3473,7 +3484,7 @@ class Team:
|
|
|
3473
3484
|
run_messages.user_message.get_content_string() if run_messages.user_message is not None else None
|
|
3474
3485
|
)
|
|
3475
3486
|
if user_message_str is not None and user_message_str.strip() != "" and self.memory_manager is not None:
|
|
3476
|
-
log_debug("
|
|
3487
|
+
log_debug("Managing user memories")
|
|
3477
3488
|
await self.memory_manager.acreate_user_memories(
|
|
3478
3489
|
message=user_message_str,
|
|
3479
3490
|
user_id=user_id,
|
|
@@ -5928,6 +5939,7 @@ class Team:
|
|
|
5928
5939
|
|
|
5929
5940
|
history = session.get_messages_from_last_n_runs(
|
|
5930
5941
|
last_n=self.num_history_runs,
|
|
5942
|
+
last_n_messages=self.num_history_messages,
|
|
5931
5943
|
skip_role=skip_role,
|
|
5932
5944
|
team_id=self.id if self.parent_team_id is not None else None,
|
|
5933
5945
|
)
|
|
@@ -6059,9 +6071,16 @@ class Team:
|
|
|
6059
6071
|
if add_history_to_context:
|
|
6060
6072
|
from copy import deepcopy
|
|
6061
6073
|
|
|
6074
|
+
# Only skip messages from history when system_message_role is NOT a standard conversation role.
|
|
6075
|
+
# Standard conversation roles ("user", "assistant", "tool") should never be filtered
|
|
6076
|
+
# to preserve conversation continuity.
|
|
6077
|
+
skip_role = (
|
|
6078
|
+
self.system_message_role if self.system_message_role not in ["user", "assistant", "tool"] else None
|
|
6079
|
+
)
|
|
6062
6080
|
history = session.get_messages_from_last_n_runs(
|
|
6063
6081
|
last_n=self.num_history_runs,
|
|
6064
|
-
|
|
6082
|
+
last_n_messages=self.num_history_messages,
|
|
6083
|
+
skip_role=skip_role,
|
|
6065
6084
|
team_id=self.id,
|
|
6066
6085
|
)
|
|
6067
6086
|
|
|
@@ -6765,6 +6784,7 @@ class Team:
|
|
|
6765
6784
|
|
|
6766
6785
|
history = session.get_messages_from_last_n_runs(
|
|
6767
6786
|
last_n=member_agent.num_history_runs or self.num_history_runs,
|
|
6787
|
+
last_n_messages=member_agent.num_history_messages,
|
|
6768
6788
|
skip_role=skip_role,
|
|
6769
6789
|
agent_id=member_agent_id,
|
|
6770
6790
|
team_id=member_team_id,
|
|
@@ -8501,7 +8521,7 @@ class Team:
|
|
|
8501
8521
|
log_warning("No valid filters remain after validation. Search will proceed without filters.")
|
|
8502
8522
|
|
|
8503
8523
|
if self.knowledge_retriever is not None and callable(self.knowledge_retriever):
|
|
8504
|
-
from inspect import signature
|
|
8524
|
+
from inspect import isawaitable, signature
|
|
8505
8525
|
|
|
8506
8526
|
try:
|
|
8507
8527
|
sig = signature(self.knowledge_retriever)
|
|
@@ -8511,7 +8531,13 @@ class Team:
|
|
|
8511
8531
|
if "filters" in sig.parameters:
|
|
8512
8532
|
knowledge_retriever_kwargs["filters"] = filters
|
|
8513
8533
|
knowledge_retriever_kwargs.update({"query": query, "num_documents": num_documents, **kwargs})
|
|
8514
|
-
|
|
8534
|
+
|
|
8535
|
+
result = self.knowledge_retriever(**knowledge_retriever_kwargs)
|
|
8536
|
+
|
|
8537
|
+
if isawaitable(result):
|
|
8538
|
+
result = await result
|
|
8539
|
+
|
|
8540
|
+
return result
|
|
8515
8541
|
except Exception as e:
|
|
8516
8542
|
log_warning(f"Knowledge retriever failed: {e}")
|
|
8517
8543
|
raise e
|
|
@@ -4,7 +4,7 @@ agno/exceptions.py,sha256=7xqLur8sWHugnViIJz4PvPKSHljSiVKNAqaKQOJgZiU,4982
|
|
|
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=
|
|
7
|
+
agno/agent/agent.py,sha256=U0xx271S2I6WdzrJqyJMZ7z_6VY7Tc4PGvazsLKdAfk,454283
|
|
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
|
|
@@ -36,39 +36,40 @@ agno/db/async_postgres/__init__.py,sha256=ja_thcYP3bP0DD3da6iUVDR_w2-S6B3M-UxBlk
|
|
|
36
36
|
agno/db/dynamo/__init__.py,sha256=fZ7NwKbyhoIu7_4T6hVz44HkIINXMnTfFrDrgB6bpEo,67
|
|
37
37
|
agno/db/dynamo/dynamo.py,sha256=SlpKYVbfb67q8r2tp48lDRWyW2wfURo6S1TjWuqzPks,78126
|
|
38
38
|
agno/db/dynamo/schemas.py,sha256=Pdtpa0wV_M8G_inM2rA8pBn2LdxdjG-irltQpYIQPMo,12932
|
|
39
|
-
agno/db/dynamo/utils.py,sha256=
|
|
39
|
+
agno/db/dynamo/utils.py,sha256=2tt1poijpdsKqh4jipiP_ZeJ5tvwWlxNLqLrRzCnd2U,27394
|
|
40
40
|
agno/db/firestore/__init__.py,sha256=lYAJjUs4jMxJFty1GYZw464K35zeuBlcoFR9uuIQYtI,79
|
|
41
41
|
agno/db/firestore/firestore.py,sha256=ck2UtZzoSfOjXUOR_BXf2LuZ66pNidPkA5_-aKSWhq0,70496
|
|
42
42
|
agno/db/firestore/schemas.py,sha256=sPbi2teuzCfRECnCyj6LrNNu0drSqbBHpH-o1xoJYfs,4392
|
|
43
|
-
agno/db/firestore/utils.py,sha256=
|
|
43
|
+
agno/db/firestore/utils.py,sha256=hQudu539CDkEKG1GvtDPOJbzdhIpSTE7Y-Uu8IdooDU,13812
|
|
44
44
|
agno/db/gcs_json/__init__.py,sha256=aTR4o3aFrzfANHtRw7nX9uc5_GsY52ch0rmoo7uXuc4,76
|
|
45
45
|
agno/db/gcs_json/gcs_json_db.py,sha256=vtLrWlwEALSDAkHu3k8YEthkBLGENuYyO1yH493NOc8,54561
|
|
46
|
-
agno/db/gcs_json/utils.py,sha256=
|
|
46
|
+
agno/db/gcs_json/utils.py,sha256=mleGhIY2J7s5rPUteQbIBosJQgRsRDPNJEwGBzh7Hws,8008
|
|
47
47
|
agno/db/in_memory/__init__.py,sha256=OvR_FONhOh9PmcRfUA_6gvplZT5UGIBAgVKqVg6SWTA,80
|
|
48
48
|
agno/db/in_memory/in_memory_db.py,sha256=IapPmv178SXv5Gy9t395PjvvcjpyIDNt_mpwL-2QGB8,45991
|
|
49
|
-
agno/db/in_memory/utils.py,sha256=
|
|
49
|
+
agno/db/in_memory/utils.py,sha256=KM-FlcN8IszNU4dtP82oSAg5ImpYil3ygH0mOxWV2Ns,8061
|
|
50
50
|
agno/db/json/__init__.py,sha256=zyPTmVF9S-OwXCL7FSkrDmunZ_Q14YZO3NYUv1Pa14Y,62
|
|
51
51
|
agno/db/json/json_db.py,sha256=JgBintmR0gGaXsPLTprgvawpivXbEXhhW_2h5da5HB8,52632
|
|
52
|
-
agno/db/json/utils.py,sha256=
|
|
52
|
+
agno/db/json/utils.py,sha256=a4dOAKLIP8vHh64gZ3ebBTrf69EzSM4vd2_80_WwRa8,8056
|
|
53
53
|
agno/db/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
54
54
|
agno/db/migrations/v1_to_v2.py,sha256=gj8deaEWUxOr0qJyMfjOpV3LxEh-otOSOxDckeUq0qU,24938
|
|
55
|
-
agno/db/mongo/__init__.py,sha256=
|
|
55
|
+
agno/db/mongo/__init__.py,sha256=NG2WC2jE5PX1kMXTYCVHjhomf5DAJgvzSj45QHdvl2E,466
|
|
56
|
+
agno/db/mongo/async_mongo.py,sha256=7U7wTcqWewtR4a_aJi108GjD9uTw4oGmuNOXfMIrZf8,80357
|
|
56
57
|
agno/db/mongo/mongo.py,sha256=0Mqr_U_ViK8S7clJR6nre-bAMaaGvfhEdSQtgKP9gfw,77034
|
|
57
58
|
agno/db/mongo/schemas.py,sha256=d2ZxqqzKYwz0Iexgrv1HWArGnmk3KUKJ37PCzFykodI,2314
|
|
58
|
-
agno/db/mongo/utils.py,sha256=
|
|
59
|
+
agno/db/mongo/utils.py,sha256=9xdra4QRe01f441VrSpBMMy9gv7SYeKrJJchlOdwfsE,9252
|
|
59
60
|
agno/db/mysql/__init__.py,sha256=ohBMZ1E6ctioEF0XX5PjC4LtUQrc6lFkjsE4ojyXA8g,63
|
|
60
61
|
agno/db/mysql/mysql.py,sha256=rkfUFwOcJ2lxyPq1QE0SItJ0ZhP2oY1Zj556jSJ77xk,95134
|
|
61
62
|
agno/db/mysql/schemas.py,sha256=OpdAWhh-ElwQ5JOg1MKJqGJ16qzVTuyS56iH9Zw3oHs,6171
|
|
62
|
-
agno/db/mysql/utils.py,sha256=
|
|
63
|
+
agno/db/mysql/utils.py,sha256=XHuvgI-xAe0Y0sBZWSXW9B0xM0KKgI-JDssG7Tyqlbs,12360
|
|
63
64
|
agno/db/postgres/__init__.py,sha256=Ojk00nTCzQFiH2ViD7KIBjgpkTKLRNPCwWnuXMKtNXY,154
|
|
64
|
-
agno/db/postgres/async_postgres.py,sha256=
|
|
65
|
+
agno/db/postgres/async_postgres.py,sha256=y3l3R6gw4xb9Wlhh5YYrnEJ-n-Rmqzne2MC9FYKzxtA,78604
|
|
65
66
|
agno/db/postgres/postgres.py,sha256=HnxdgdIFik3fPnFQLtAmz4y5y0EDNMcKzfh-Wlh8SoM,91345
|
|
66
67
|
agno/db/postgres/schemas.py,sha256=O049oyPU07tHwnyuOzYyiKcK1NYvh6cQmmsFOvA7LTs,5971
|
|
67
|
-
agno/db/postgres/utils.py,sha256=
|
|
68
|
+
agno/db/postgres/utils.py,sha256=ZHWmVlx96pqI07h-hoiMm6TZTsudpf2zxID4MJtiY9s,15465
|
|
68
69
|
agno/db/redis/__init__.py,sha256=rZWeZ4CpVeKP-enVQ-SRoJ777i0rdGNgoNDRS9gsfAc,63
|
|
69
70
|
agno/db/redis/redis.py,sha256=QoM8J8uXCv5x5w0RZsFs9mpNzctXkCSBaZo46rrHvxs,62821
|
|
70
71
|
agno/db/redis/schemas.py,sha256=3WilZq3NqZqRONyu_mAjjmQpClgYDYoWjfkvlOh0Tfw,4038
|
|
71
|
-
agno/db/redis/utils.py,sha256=
|
|
72
|
+
agno/db/redis/utils.py,sha256=4iql9MavWM3okOhuOFKK7r0TP1AAT5qAAbiL5jTE84k,11236
|
|
72
73
|
agno/db/schemas/__init__.py,sha256=g72Zr5_nm00yXHStv4pf9PG9bGLKXEK7Av6YQtrDbCQ,147
|
|
73
74
|
agno/db/schemas/culture.py,sha256=w4azKAVLf5X4xyRUFXMIEq0CA0pnyeN03W3eMpqScxo,4342
|
|
74
75
|
agno/db/schemas/evals.py,sha256=T1zIiwrN5fxZVD2em85wQ9CV-HSVZvNF4D4v9_w30VA,786
|
|
@@ -78,12 +79,12 @@ agno/db/schemas/metrics.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
78
79
|
agno/db/singlestore/__init__.py,sha256=dufbaod8ZZIeZIVi0hYJQ8Eu2DfIfWdIy00cpqAsx9U,87
|
|
79
80
|
agno/db/singlestore/schemas.py,sha256=Eb9wipCjWr48dlF3CMDa53WDvFsr7QhLOSaTgbUkMKg,6178
|
|
80
81
|
agno/db/singlestore/singlestore.py,sha256=B_RG3f67j7JLOQ_xs4bnGw8ZjTLqopzd5GGg2GjTPUc,93042
|
|
81
|
-
agno/db/singlestore/utils.py,sha256=
|
|
82
|
+
agno/db/singlestore/utils.py,sha256=NnA6YJAk1Oj-5w7Y-juxuQ7eiFnpjVAiGCV5U7QcjVE,13671
|
|
82
83
|
agno/db/sqlite/__init__.py,sha256=09V3i4y0-tBjt60--57ivZ__SaaS67GCsDT4Apzv-5Y,138
|
|
83
84
|
agno/db/sqlite/async_sqlite.py,sha256=EGHkhETD-UPxzm0wvOHJo99BlOOddW1NRtahNnpFTFw,95604
|
|
84
85
|
agno/db/sqlite/schemas.py,sha256=NyEvAFG-hi3Inm5femgJdorxJ5l2-bXLWBhxJ4r7jW0,5832
|
|
85
86
|
agno/db/sqlite/sqlite.py,sha256=NQfh56217Xki1KnDCM_kAfPjn4RHz_0wYbXJBaUOi3Q,93789
|
|
86
|
-
agno/db/sqlite/utils.py,sha256=
|
|
87
|
+
agno/db/sqlite/utils.py,sha256=21Z1PjQNjz1QaeY0BQY-abg0sv0nIJJ3oHuFUTV-raU,15551
|
|
87
88
|
agno/db/surrealdb/__init__.py,sha256=C8qp5-Nx9YnSmgKEtGua-sqG_ntCXONBw1qqnNyKPqI,75
|
|
88
89
|
agno/db/surrealdb/metrics.py,sha256=oKDRyjRQ6KR3HaO8zDHQLVMG7-0NDkOFOKX5I7mD5FA,10336
|
|
89
90
|
agno/db/surrealdb/models.py,sha256=2KBxSxiEI4yQ2OTOr1HVeL8Fd52tQfWkM53kwzqUmyw,11512
|
|
@@ -132,7 +133,7 @@ agno/knowledge/embedder/jina.py,sha256=M2M2ki0XyylyitJs_ZL2JoepC1y70IJzYntPsCVUx
|
|
|
132
133
|
agno/knowledge/embedder/langdb.py,sha256=_vbE1Jbj16WGP4aEkh54D7ESTu0LlI1_lp5WiXPIABA,731
|
|
133
134
|
agno/knowledge/embedder/mistral.py,sha256=AMc3VBpQCKFxetx2gRd9c6iRvR4-bSEWJ1Q4JPwQg28,8608
|
|
134
135
|
agno/knowledge/embedder/nebius.py,sha256=4I2irehvR6Di00Al4jbG4vAa6KZnbOJ-7QqVjB7Mn64,363
|
|
135
|
-
agno/knowledge/embedder/ollama.py,sha256=
|
|
136
|
+
agno/knowledge/embedder/ollama.py,sha256=faLkOvPt2dWs8h87anAgeeG3LJpMH4jVMWP7_3f7JHs,6313
|
|
136
137
|
agno/knowledge/embedder/openai.py,sha256=oUEyqIyREIPYRCtQBjAn-aIjxI7DQkMZQmXOt0OkLbo,7331
|
|
137
138
|
agno/knowledge/embedder/sentence_transformer.py,sha256=khJJbJlBFDeVJm7yd4ub3e7n7rM-l5z00f594jGtIaU,2203
|
|
138
139
|
agno/knowledge/embedder/together.py,sha256=Pt524Lh6YRDKfD8rfmLu0Qlw4dDh4vLz7KEMIvIULBk,387
|
|
@@ -164,7 +165,7 @@ agno/knowledge/reranker/cohere.py,sha256=2Be5blVyeZ3vYlnFa2NYvJuytjaCB8G2OWJ11pQ
|
|
|
164
165
|
agno/knowledge/reranker/infinity.py,sha256=N9geg9xZqRdJZksfQcvbGJgMymXrQVJl_K5KICWqH8o,7193
|
|
165
166
|
agno/knowledge/reranker/sentence_transformer.py,sha256=ZN4SqnMZsUhg5G7AzlONM1_UjezfNrjFYXpNVHD4U-U,1912
|
|
166
167
|
agno/memory/__init__.py,sha256=XWKJU5SJObYZqEKMZ2XYwgH8-YeuWUoSRfT4dEI5HnY,101
|
|
167
|
-
agno/memory/manager.py,sha256=
|
|
168
|
+
agno/memory/manager.py,sha256=p7ZHhzrfYYEj_7ALCdvU72qWa_qtxkQc-A9taqVfLAw,51829
|
|
168
169
|
agno/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
169
170
|
agno/models/base.py,sha256=6ucSAOgG95n6uT2VaWp8QtZctVnH67FS4JwYt4P4_Rw,95015
|
|
170
171
|
agno/models/defaults.py,sha256=1_fe4-ZbNriE8BgqxVRVi4KGzEYxYKYsz4hn6CZNEEM,40
|
|
@@ -256,12 +257,12 @@ agno/models/vllm/vllm.py,sha256=UtiiSvUR4pG_1CzuhY5MWduRgzM2hGVTakKJ6ZBdQmo,2730
|
|
|
256
257
|
agno/models/xai/__init__.py,sha256=ukcCxnCHxTtkJNA2bAMTX4MhCv1wJcbiq8ZIfYczIxs,55
|
|
257
258
|
agno/models/xai/xai.py,sha256=jA6_39tfapkjkHKdzbKaNq1t9qIvO1IaZY1hQqEmFVs,4181
|
|
258
259
|
agno/os/__init__.py,sha256=h8oQu7vhD5RZf09jkyM_Kt1Kdq_d5kFB9gJju8QPwcY,55
|
|
259
|
-
agno/os/app.py,sha256=
|
|
260
|
+
agno/os/app.py,sha256=N6sBJqx2ShfuPaPJdy3waHC5cZ5OH-Owa0ApgTojNm8,30217
|
|
260
261
|
agno/os/auth.py,sha256=FyBtAKWtg-qSunCas5m5pK1dVEmikOSZvcCp5r25tTA,1844
|
|
261
262
|
agno/os/config.py,sha256=u4R9yazQXIcKjR3QzEIZw_XAe_OHp3xn0ff7SVkj2jA,2893
|
|
262
263
|
agno/os/mcp.py,sha256=vJhjjSm1KC61HLoxPj24lSrjkjo7plkoFfcQX2BmTp0,10253
|
|
263
264
|
agno/os/router.py,sha256=qn9oK0ko8P8WtYAaxOHTeiJLNC7FRptpfEGZQSco7wk,71172
|
|
264
|
-
agno/os/schema.py,sha256=
|
|
265
|
+
agno/os/schema.py,sha256=oDQSPh4SMIswX4eCOcT7dCRwNaPIwg8YACdqtHJf1SM,53073
|
|
265
266
|
agno/os/settings.py,sha256=Cn5_8lZI8Vx1UaUYqs9h6Qp4IMDFn4f3c35uppiaMy4,1343
|
|
266
267
|
agno/os/utils.py,sha256=qe3utJ9jS2b0an5WbOu9eRY3LQueZL6GRdh4-GLXan0,20269
|
|
267
268
|
agno/os/interfaces/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
@@ -315,19 +316,19 @@ agno/reasoning/openai.py,sha256=JYk-mR9cMf1ibprX3MdL8oeCEDyQ3XaJw9PAIYvWeGk,3234
|
|
|
315
316
|
agno/reasoning/step.py,sha256=6DaOb_0DJRz9Yh1w_mxcRaOSVzIQDrj3lQ6rzHLdIwA,1220
|
|
316
317
|
agno/reasoning/vertexai.py,sha256=O9ntvalkIY2jLmWviEH1DnecMskqTL-mRZQBZohoHiU,2974
|
|
317
318
|
agno/run/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
318
|
-
agno/run/agent.py,sha256=
|
|
319
|
+
agno/run/agent.py,sha256=uTtruA2DCrt5qPuAH6QuDQZ-s4E7TEP8NkIGBE7n-OA,26887
|
|
319
320
|
agno/run/base.py,sha256=2KEu0TLfCM-0Dd3JQ6aSQf_dqtKHtDIUt0oCPdk7rIk,7756
|
|
320
321
|
agno/run/cancel.py,sha256=yoSj3fnx8D7Gf-fSngVIgd3GOp3tRaDhHH_4QeHDoAk,2667
|
|
321
322
|
agno/run/messages.py,sha256=rAC4CLW-xBA6qFS1BOvcjJ9j_qYf0a7sX1mcdY04zMU,1126
|
|
322
|
-
agno/run/team.py,sha256=
|
|
323
|
+
agno/run/team.py,sha256=hR61LilAVVvVzVTbyJ600youEP29poX2CosmKa0f4kU,27343
|
|
323
324
|
agno/run/workflow.py,sha256=dxnrvG7icRt7oOiFYyJvqI_XpSj4A0dCAMRCmsSo1XQ,23377
|
|
324
325
|
agno/session/__init__.py,sha256=p6eqzWcLSHiMex2yZvkwv2yrFUNdGs21TGMS49xrEC4,376
|
|
325
|
-
agno/session/agent.py,sha256=
|
|
326
|
+
agno/session/agent.py,sha256=UGgDQB5nTxFwJcqWpWAmRGjXMLhwSCqRXDyoEi5a-jg,11763
|
|
326
327
|
agno/session/summary.py,sha256=JEvSnvOgYf6pxmExXsQu7kQGx5p4OLVuQtgsypz2jhY,10130
|
|
327
|
-
agno/session/team.py,sha256=
|
|
328
|
+
agno/session/team.py,sha256=M9QEmGYyQM64ZsvPWRdp1xZV6EQGuun6pjJL05AzU-k,15260
|
|
328
329
|
agno/session/workflow.py,sha256=tluE_3ERMBYJtffpwlrhdETWlzJk6Xw2x06FZ1Y3fXg,7397
|
|
329
330
|
agno/team/__init__.py,sha256=toHidBOo5M3n_TIVtIKHgcDbLL9HR-_U-YQYuIt_XtE,847
|
|
330
|
-
agno/team/team.py,sha256=
|
|
331
|
+
agno/team/team.py,sha256=s1Xd-1S50HJR7iDhJM1lw-gYTRKhEs_fsUT8aZpS56Y,400633
|
|
331
332
|
agno/tools/__init__.py,sha256=jNll2sELhPPbqm5nPeT4_uyzRO2_KRTW-8Or60kioS0,210
|
|
332
333
|
agno/tools/agentql.py,sha256=S82Z9aTNr-E5wnA4fbFs76COljJtiQIjf2grjz3CkHU,4104
|
|
333
334
|
agno/tools/airflow.py,sha256=uf2rOzZpSU64l_qRJ5Raku-R3Gky-uewmYkh6W0-oxg,2610
|
|
@@ -560,8 +561,8 @@ agno/workflow/step.py,sha256=3t83LwEajM-jHjcXzJR74iEO36P4ZVqenocmiWLtQOg,60532
|
|
|
560
561
|
agno/workflow/steps.py,sha256=O3lbKw56ziSnuJndAGm8hjlEwdTh2jQXf1s0587Va3M,25671
|
|
561
562
|
agno/workflow/types.py,sha256=J474F5MWHCHHVjrzTUPJihlcrRLUnQ3hVW2-9TWdxWw,18519
|
|
562
563
|
agno/workflow/workflow.py,sha256=LBy_jVjvglRE4sOLAITZGaOJctJYbP59oV0HvuiHopA,147346
|
|
563
|
-
agno-2.2.
|
|
564
|
-
agno-2.2.
|
|
565
|
-
agno-2.2.
|
|
566
|
-
agno-2.2.
|
|
567
|
-
agno-2.2.
|
|
564
|
+
agno-2.2.4.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
|
|
565
|
+
agno-2.2.4.dist-info/METADATA,sha256=IRtlV1luuV_lGWilSVIOVmjhZnUf90G2ZbRPJBHQKNA,28193
|
|
566
|
+
agno-2.2.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
567
|
+
agno-2.2.4.dist-info/top_level.txt,sha256=MKyeuVesTyOKIXUhc-d_tPa2Hrh0oTA4LM0izowpx70,5
|
|
568
|
+
agno-2.2.4.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|