agno 2.0.4__py3-none-any.whl → 2.0.5__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 +74 -85
- agno/db/dynamo/dynamo.py +2 -2
- agno/db/firestore/firestore.py +3 -2
- agno/db/gcs_json/gcs_json_db.py +2 -2
- agno/db/json/json_db.py +2 -2
- agno/db/migrations/v1_to_v2.py +191 -23
- agno/db/mongo/mongo.py +61 -2
- agno/db/mysql/mysql.py +5 -5
- agno/db/mysql/schemas.py +27 -27
- agno/db/postgres/postgres.py +5 -5
- agno/db/redis/redis.py +2 -2
- agno/db/singlestore/singlestore.py +2 -2
- agno/db/sqlite/sqlite.py +6 -5
- agno/db/utils.py +0 -14
- agno/integrations/discord/client.py +1 -0
- agno/knowledge/knowledge.py +7 -7
- agno/knowledge/reader/reader_factory.py +7 -3
- agno/knowledge/reader/web_search_reader.py +12 -6
- agno/models/message.py +109 -0
- agno/models/openai/responses.py +6 -0
- agno/os/app.py +162 -42
- agno/os/interfaces/agui/utils.py +98 -134
- agno/os/routers/health.py +0 -1
- agno/os/routers/home.py +52 -0
- agno/os/routers/knowledge/knowledge.py +2 -2
- agno/os/schema.py +21 -0
- agno/os/utils.py +0 -8
- agno/run/agent.py +3 -3
- agno/run/team.py +3 -3
- agno/team/team.py +33 -38
- agno/tools/duckduckgo.py +15 -11
- agno/tools/googlesearch.py +1 -1
- agno/utils/string.py +32 -0
- agno/utils/tools.py +1 -1
- agno/workflow/step.py +4 -3
- {agno-2.0.4.dist-info → agno-2.0.5.dist-info}/METADATA +6 -5
- {agno-2.0.4.dist-info → agno-2.0.5.dist-info}/RECORD +40 -40
- agno/knowledge/reader/url_reader.py +0 -128
- {agno-2.0.4.dist-info → agno-2.0.5.dist-info}/WHEEL +0 -0
- {agno-2.0.4.dist-info → agno-2.0.5.dist-info}/licenses/LICENSE +0 -0
- {agno-2.0.4.dist-info → agno-2.0.5.dist-info}/top_level.txt +0 -0
agno/team/team.py
CHANGED
|
@@ -104,7 +104,7 @@ from agno.utils.response import (
|
|
|
104
104
|
generator_wrapper,
|
|
105
105
|
)
|
|
106
106
|
from agno.utils.safe_formatter import SafeFormatter
|
|
107
|
-
from agno.utils.string import parse_response_model_str
|
|
107
|
+
from agno.utils.string import generate_id_from_name, parse_response_model_str
|
|
108
108
|
from agno.utils.team import format_member_agent_task, get_member_id
|
|
109
109
|
from agno.utils.timer import Timer
|
|
110
110
|
|
|
@@ -580,10 +580,7 @@ class Team:
|
|
|
580
580
|
If the name is not provided, generate a random UUID.
|
|
581
581
|
"""
|
|
582
582
|
if self.id is None:
|
|
583
|
-
|
|
584
|
-
self.id = self.name.lower().replace(" ", "-")
|
|
585
|
-
else:
|
|
586
|
-
self.id = str(uuid4())
|
|
583
|
+
self.id = generate_id_from_name(self.name)
|
|
587
584
|
|
|
588
585
|
def _set_debug(self, debug_mode: Optional[bool] = None) -> None:
|
|
589
586
|
if self.debug_mode or debug_mode or getenv("AGNO_DEBUG", "false").lower() == "true":
|
|
@@ -659,8 +656,6 @@ class Team:
|
|
|
659
656
|
member.set_id()
|
|
660
657
|
|
|
661
658
|
elif isinstance(member, Team):
|
|
662
|
-
if member.id is None:
|
|
663
|
-
member.id = str(uuid4())
|
|
664
659
|
member.parent_team_id = self.id
|
|
665
660
|
for sub_member in member.members:
|
|
666
661
|
self._initialize_member(sub_member, debug_mode=debug_mode)
|
|
@@ -853,7 +848,15 @@ class Team:
|
|
|
853
848
|
else:
|
|
854
849
|
self._scrub_media_from_run_output(run_response)
|
|
855
850
|
|
|
856
|
-
|
|
851
|
+
run_response.status = RunStatus.completed
|
|
852
|
+
|
|
853
|
+
# Parse team response model
|
|
854
|
+
self._convert_response_to_structured_format(run_response=run_response)
|
|
855
|
+
|
|
856
|
+
# 3. Add the RunOutput to Team Session
|
|
857
|
+
session.upsert_run(run_response=run_response)
|
|
858
|
+
|
|
859
|
+
# 4. Update Team Memory
|
|
857
860
|
response_iterator = self._make_memories_and_summaries(
|
|
858
861
|
run_response=run_response,
|
|
859
862
|
run_messages=run_messages,
|
|
@@ -862,14 +865,6 @@ class Team:
|
|
|
862
865
|
)
|
|
863
866
|
deque(response_iterator, maxlen=0)
|
|
864
867
|
|
|
865
|
-
run_response.status = RunStatus.completed
|
|
866
|
-
|
|
867
|
-
# Parse team response model
|
|
868
|
-
self._convert_response_to_structured_format(run_response=run_response)
|
|
869
|
-
|
|
870
|
-
# 4. Add the RunOutput to Team Session
|
|
871
|
-
session.upsert_run(run_response=run_response)
|
|
872
|
-
|
|
873
868
|
# 5. Calculate session metrics
|
|
874
869
|
self._update_session_metrics(session=session)
|
|
875
870
|
|
|
@@ -978,7 +973,12 @@ class Team:
|
|
|
978
973
|
session=session, run_response=run_response, stream_intermediate_steps=stream_intermediate_steps
|
|
979
974
|
)
|
|
980
975
|
|
|
981
|
-
|
|
976
|
+
run_response.status = RunStatus.completed
|
|
977
|
+
|
|
978
|
+
# 3. Add the run to Team Session
|
|
979
|
+
session.upsert_run(run_response=run_response)
|
|
980
|
+
|
|
981
|
+
# 4. Update Team Memory
|
|
982
982
|
yield from self._make_memories_and_summaries(
|
|
983
983
|
run_response=run_response,
|
|
984
984
|
run_messages=run_messages,
|
|
@@ -986,11 +986,6 @@ class Team:
|
|
|
986
986
|
user_id=user_id,
|
|
987
987
|
)
|
|
988
988
|
|
|
989
|
-
run_response.status = RunStatus.completed
|
|
990
|
-
|
|
991
|
-
# 4. Add the run to memory
|
|
992
|
-
session.upsert_run(run_response=run_response)
|
|
993
|
-
|
|
994
989
|
# 5. Calculate session metrics
|
|
995
990
|
self._update_session_metrics(session=session)
|
|
996
991
|
|
|
@@ -1435,7 +1430,15 @@ class Team:
|
|
|
1435
1430
|
else:
|
|
1436
1431
|
self._scrub_media_from_run_output(run_response)
|
|
1437
1432
|
|
|
1438
|
-
|
|
1433
|
+
run_response.status = RunStatus.completed
|
|
1434
|
+
|
|
1435
|
+
# Parse team response model
|
|
1436
|
+
self._convert_response_to_structured_format(run_response=run_response)
|
|
1437
|
+
|
|
1438
|
+
# 5. Add the run to memory
|
|
1439
|
+
session.upsert_run(run_response=run_response)
|
|
1440
|
+
|
|
1441
|
+
# 6. Update Team Memory
|
|
1439
1442
|
async for _ in self._amake_memories_and_summaries(
|
|
1440
1443
|
run_response=run_response,
|
|
1441
1444
|
session=session,
|
|
@@ -1444,14 +1447,6 @@ class Team:
|
|
|
1444
1447
|
):
|
|
1445
1448
|
pass
|
|
1446
1449
|
|
|
1447
|
-
run_response.status = RunStatus.completed
|
|
1448
|
-
|
|
1449
|
-
# Parse team response model
|
|
1450
|
-
self._convert_response_to_structured_format(run_response=run_response)
|
|
1451
|
-
|
|
1452
|
-
# 6. Add the run to memory
|
|
1453
|
-
session.upsert_run(run_response=run_response)
|
|
1454
|
-
|
|
1455
1450
|
# 7. Calculate session metrics
|
|
1456
1451
|
self._update_session_metrics(session=session)
|
|
1457
1452
|
|
|
@@ -1599,6 +1594,11 @@ class Team:
|
|
|
1599
1594
|
):
|
|
1600
1595
|
yield event
|
|
1601
1596
|
|
|
1597
|
+
run_response.status = RunStatus.completed
|
|
1598
|
+
|
|
1599
|
+
# 5. Add the run to Team Session
|
|
1600
|
+
session.upsert_run(run_response=run_response)
|
|
1601
|
+
|
|
1602
1602
|
# 6. Update Team Memory
|
|
1603
1603
|
async for event in self._amake_memories_and_summaries(
|
|
1604
1604
|
run_response=run_response,
|
|
@@ -1608,19 +1608,14 @@ class Team:
|
|
|
1608
1608
|
):
|
|
1609
1609
|
yield event
|
|
1610
1610
|
|
|
1611
|
-
|
|
1612
|
-
|
|
1613
|
-
# 7. Add the run to memory
|
|
1614
|
-
session.upsert_run(run_response=run_response)
|
|
1615
|
-
|
|
1616
|
-
# 8. Calculate session metrics
|
|
1611
|
+
# 7. Calculate session metrics
|
|
1617
1612
|
self._update_session_metrics(session=session)
|
|
1618
1613
|
|
|
1619
1614
|
completed_event = self._handle_event(
|
|
1620
1615
|
create_team_run_completed_event(from_run_response=run_response), run_response, workflow_context
|
|
1621
1616
|
)
|
|
1622
1617
|
|
|
1623
|
-
#
|
|
1618
|
+
# 8. Save session to storage
|
|
1624
1619
|
self.save_session(session=session)
|
|
1625
1620
|
|
|
1626
1621
|
if stream_intermediate_steps:
|
agno/tools/duckduckgo.py
CHANGED
|
@@ -12,14 +12,16 @@ except ImportError:
|
|
|
12
12
|
|
|
13
13
|
class DuckDuckGoTools(Toolkit):
|
|
14
14
|
"""
|
|
15
|
-
DuckDuckGo is a toolkit for searching DuckDuckGo easily.
|
|
15
|
+
DuckDuckGo is a toolkit for searching using DuckDuckGo easily.
|
|
16
|
+
It uses the meta-search library DDGS, so it also has access to other backends.
|
|
16
17
|
Args:
|
|
17
|
-
|
|
18
|
-
|
|
18
|
+
enable_search (bool): Enable DDGS search function.
|
|
19
|
+
enable_news (bool): Enable DDGS news function.
|
|
19
20
|
modifier (Optional[str]): A modifier to be used in the search request.
|
|
20
21
|
fixed_max_results (Optional[int]): A fixed number of maximum results.
|
|
21
22
|
proxy (Optional[str]): Proxy to be used in the search request.
|
|
22
23
|
timeout (Optional[int]): The maximum number of seconds to wait for a response.
|
|
24
|
+
backend (Optional[str]): The backend to be used in the search request.
|
|
23
25
|
|
|
24
26
|
"""
|
|
25
27
|
|
|
@@ -28,6 +30,7 @@ class DuckDuckGoTools(Toolkit):
|
|
|
28
30
|
enable_search: bool = True,
|
|
29
31
|
enable_news: bool = True,
|
|
30
32
|
all: bool = False,
|
|
33
|
+
backend: str = "duckduckgo",
|
|
31
34
|
modifier: Optional[str] = None,
|
|
32
35
|
fixed_max_results: Optional[int] = None,
|
|
33
36
|
proxy: Optional[str] = None,
|
|
@@ -40,6 +43,7 @@ class DuckDuckGoTools(Toolkit):
|
|
|
40
43
|
self.fixed_max_results: Optional[int] = fixed_max_results
|
|
41
44
|
self.modifier: Optional[str] = modifier
|
|
42
45
|
self.verify_ssl: bool = verify_ssl
|
|
46
|
+
self.backend: str = backend
|
|
43
47
|
|
|
44
48
|
tools: List[Any] = []
|
|
45
49
|
if all or enable_search:
|
|
@@ -50,38 +54,38 @@ class DuckDuckGoTools(Toolkit):
|
|
|
50
54
|
super().__init__(name="duckduckgo", tools=tools, **kwargs)
|
|
51
55
|
|
|
52
56
|
def duckduckgo_search(self, query: str, max_results: int = 5) -> str:
|
|
53
|
-
"""Use this function to search
|
|
57
|
+
"""Use this function to search DDGS for a query.
|
|
54
58
|
|
|
55
59
|
Args:
|
|
56
60
|
query(str): The query to search for.
|
|
57
61
|
max_results (optional, default=5): The maximum number of results to return.
|
|
58
62
|
|
|
59
63
|
Returns:
|
|
60
|
-
The result from
|
|
64
|
+
The result from DDGS.
|
|
61
65
|
"""
|
|
62
66
|
actual_max_results = self.fixed_max_results or max_results
|
|
63
67
|
search_query = f"{self.modifier} {query}" if self.modifier else query
|
|
64
68
|
|
|
65
|
-
log_debug(f"Searching DDG for: {search_query}")
|
|
69
|
+
log_debug(f"Searching DDG for: {search_query} using backend: {self.backend}")
|
|
66
70
|
with DDGS(proxy=self.proxy, timeout=self.timeout, verify=self.verify_ssl) as ddgs:
|
|
67
|
-
results = ddgs.text(query=search_query, max_results=actual_max_results)
|
|
71
|
+
results = ddgs.text(query=search_query, max_results=actual_max_results, backend=self.backend)
|
|
68
72
|
|
|
69
73
|
return json.dumps(results, indent=2)
|
|
70
74
|
|
|
71
75
|
def duckduckgo_news(self, query: str, max_results: int = 5) -> str:
|
|
72
|
-
"""Use this function to get the latest news from
|
|
76
|
+
"""Use this function to get the latest news from DDGS.
|
|
73
77
|
|
|
74
78
|
Args:
|
|
75
79
|
query(str): The query to search for.
|
|
76
80
|
max_results (optional, default=5): The maximum number of results to return.
|
|
77
81
|
|
|
78
82
|
Returns:
|
|
79
|
-
The latest news from
|
|
83
|
+
The latest news from DDGS.
|
|
80
84
|
"""
|
|
81
85
|
actual_max_results = self.fixed_max_results or max_results
|
|
82
86
|
|
|
83
|
-
log_debug(f"Searching DDG news for: {query}")
|
|
87
|
+
log_debug(f"Searching DDG news for: {query} using backend: {self.backend}")
|
|
84
88
|
with DDGS(proxy=self.proxy, timeout=self.timeout, verify=self.verify_ssl) as ddgs:
|
|
85
|
-
results = ddgs.news(query=query, max_results=actual_max_results)
|
|
89
|
+
results = ddgs.news(query=query, max_results=actual_max_results, backend=self.backend)
|
|
86
90
|
|
|
87
91
|
return json.dumps(results, indent=2)
|
agno/tools/googlesearch.py
CHANGED
|
@@ -82,7 +82,7 @@ class GoogleSearchTools(Toolkit):
|
|
|
82
82
|
log_debug(f"Searching Google [{language}] for: {query}")
|
|
83
83
|
|
|
84
84
|
# Perform Google search using the googlesearch-python package
|
|
85
|
-
results = list(search(query,
|
|
85
|
+
results = list(search(query, num_results=max_results, lang=language))
|
|
86
86
|
|
|
87
87
|
# Collect the search results
|
|
88
88
|
res: List[Dict[str, str]] = []
|
agno/utils/string.py
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import hashlib
|
|
2
2
|
import json
|
|
3
3
|
import re
|
|
4
|
+
import uuid
|
|
4
5
|
from typing import Optional, Type
|
|
6
|
+
from uuid import uuid4
|
|
5
7
|
|
|
6
8
|
from pydantic import BaseModel, ValidationError
|
|
7
9
|
|
|
@@ -188,3 +190,33 @@ def parse_response_model_str(content: str, output_schema: Type[BaseModel]) -> Op
|
|
|
188
190
|
logger.warning("All parsing attempts failed.")
|
|
189
191
|
|
|
190
192
|
return structured_output
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
def generate_id(seed: Optional[str] = None) -> str:
|
|
196
|
+
"""
|
|
197
|
+
Generate a deterministic UUID5 based on a seed string.
|
|
198
|
+
If no seed is provided, generate a random UUID4.
|
|
199
|
+
|
|
200
|
+
Args:
|
|
201
|
+
seed (str): The seed string to generate the UUID from.
|
|
202
|
+
|
|
203
|
+
Returns:
|
|
204
|
+
str: A deterministic UUID5 string.
|
|
205
|
+
"""
|
|
206
|
+
if seed is None:
|
|
207
|
+
return str(uuid4())
|
|
208
|
+
return str(uuid.uuid5(uuid.NAMESPACE_DNS, seed))
|
|
209
|
+
|
|
210
|
+
|
|
211
|
+
def generate_id_from_name(name: Optional[str] = None) -> str:
|
|
212
|
+
"""
|
|
213
|
+
Generate a deterministic ID from a name string.
|
|
214
|
+
If no name is provided, generate a random UUID4.
|
|
215
|
+
|
|
216
|
+
Args:
|
|
217
|
+
name (str): The name string to generate the ID from.
|
|
218
|
+
"""
|
|
219
|
+
if name:
|
|
220
|
+
return name.lower().replace(" ", "-").replace("_", "-")
|
|
221
|
+
else:
|
|
222
|
+
return str(uuid4())
|
agno/utils/tools.py
CHANGED
|
@@ -13,7 +13,7 @@ def get_function_call_for_tool_call(
|
|
|
13
13
|
_tool_call_function = tool_call.get("function")
|
|
14
14
|
if _tool_call_function is not None:
|
|
15
15
|
_tool_call_function_name = _tool_call_function.get("name")
|
|
16
|
-
_tool_call_function_arguments_str = _tool_call_function.get("arguments")
|
|
16
|
+
_tool_call_function_arguments_str = _tool_call_function.get("arguments") or "{}"
|
|
17
17
|
if _tool_call_function_name is not None:
|
|
18
18
|
return get_function_call(
|
|
19
19
|
name=_tool_call_function_name,
|
agno/workflow/step.py
CHANGED
|
@@ -499,7 +499,7 @@ class Step:
|
|
|
499
499
|
if store_executor_outputs and workflow_run_response is not None:
|
|
500
500
|
self._store_executor_response(workflow_run_response, active_executor_run_response) # type: ignore
|
|
501
501
|
|
|
502
|
-
final_response =
|
|
502
|
+
final_response = active_executor_run_response # type: ignore
|
|
503
503
|
|
|
504
504
|
else:
|
|
505
505
|
raise ValueError(f"Unsupported executor type: {self._executor_type}")
|
|
@@ -513,6 +513,7 @@ class Step:
|
|
|
513
513
|
use_workflow_logger()
|
|
514
514
|
|
|
515
515
|
# Yield the step output
|
|
516
|
+
final_response = self._process_step_output(final_response)
|
|
516
517
|
yield final_response
|
|
517
518
|
|
|
518
519
|
# Emit StepCompletedEvent
|
|
@@ -865,7 +866,6 @@ class Step:
|
|
|
865
866
|
|
|
866
867
|
active_executor_run_response = None
|
|
867
868
|
async for event in response_stream:
|
|
868
|
-
log_debug(f"Received async event from agent: {type(event).__name__}")
|
|
869
869
|
if isinstance(event, RunOutput) or isinstance(event, TeamRunOutput):
|
|
870
870
|
active_executor_run_response = event
|
|
871
871
|
break
|
|
@@ -877,7 +877,7 @@ class Step:
|
|
|
877
877
|
if store_executor_outputs and workflow_run_response is not None:
|
|
878
878
|
self._store_executor_response(workflow_run_response, active_executor_run_response) # type: ignore
|
|
879
879
|
|
|
880
|
-
final_response =
|
|
880
|
+
final_response = active_executor_run_response # type: ignore
|
|
881
881
|
else:
|
|
882
882
|
raise ValueError(f"Unsupported executor type: {self._executor_type}")
|
|
883
883
|
|
|
@@ -889,6 +889,7 @@ class Step:
|
|
|
889
889
|
use_workflow_logger()
|
|
890
890
|
|
|
891
891
|
# Yield the final response
|
|
892
|
+
final_response = self._process_step_output(final_response)
|
|
892
893
|
yield final_response
|
|
893
894
|
|
|
894
895
|
if stream_intermediate_steps and workflow_run_response:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agno
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.5
|
|
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
|
|
@@ -366,6 +366,7 @@ Dynamic: license-file
|
|
|
366
366
|
<div align="center">
|
|
367
367
|
<a href="https://docs.agno.com">📚 Documentation</a> |
|
|
368
368
|
<a href="https://docs.agno.com/examples/introduction">💡 Examples</a> |
|
|
369
|
+
<a href="https://www.agno.com/?utm_source=github&utm_medium=readme&utm_campaign=agno-github&utm_content=header">🏠 Website</a> |
|
|
369
370
|
<a href="https://github.com/agno-agi/agno/stargazers">🌟 Star Us</a>
|
|
370
371
|
</div>
|
|
371
372
|
|
|
@@ -406,14 +407,14 @@ If you're new to Agno, follow our [quickstart](https://docs.agno.com/introductio
|
|
|
406
407
|
|
|
407
408
|
After that, checkout the [examples gallery](https://docs.agno.com/examples/introduction) and build real-world applications with Agno.
|
|
408
409
|
|
|
409
|
-
## Documentation, Community & More
|
|
410
|
+
## Documentation, Community & More Examples
|
|
410
411
|
|
|
411
412
|
- Docs: <a href="https://docs.agno.com" target="_blank" rel="noopener noreferrer">docs.agno.com</a>
|
|
412
413
|
- Cookbook: <a href="https://github.com/agno-agi/agno/tree/main/cookbook" target="_blank" rel="noopener noreferrer">Cookbook</a>
|
|
413
414
|
- Community forum: <a href="https://community.agno.com/" target="_blank" rel="noopener noreferrer">community.agno.com</a>
|
|
414
415
|
- Discord: <a href="https://discord.gg/4MtYHHrgA8" target="_blank" rel="noopener noreferrer">discord</a>
|
|
415
416
|
|
|
416
|
-
## Setup
|
|
417
|
+
## Setup Your Coding Agent to Use Agno
|
|
417
418
|
|
|
418
419
|
For LLMs and AI assistants to understand and navigate Agno's documentation, we provide an [llms.txt](https://docs.agno.com/llms.txt) or [llms-full.txt](https://docs.agno.com/llms-full.txt) file.
|
|
419
420
|
|
|
@@ -441,7 +442,7 @@ At Agno, we're obsessed with performance. Why? because even simple AI workflows
|
|
|
441
442
|
|
|
442
443
|
While an Agent's run-time is bottlenecked by inference, we must do everything possible to minimize execution time, reduce memory usage, and parallelize tool calls. These numbers may seem trivial at first, but our experience shows that they add up even at a reasonably small scale.
|
|
443
444
|
|
|
444
|
-
### Instantiation
|
|
445
|
+
### Instantiation Time
|
|
445
446
|
|
|
446
447
|
Let's measure the time it takes for an Agent with 1 tool to start up. We'll run the evaluation 1000 times to get a baseline measurement.
|
|
447
448
|
|
|
@@ -469,7 +470,7 @@ Agno is on the left, notice how it finishes before LangGraph gets 1/2 way throug
|
|
|
469
470
|
|
|
470
471
|
https://github.com/user-attachments/assets/ba466d45-75dd-45ac-917b-0a56c5742e23
|
|
471
472
|
|
|
472
|
-
### Memory
|
|
473
|
+
### Memory Usage
|
|
473
474
|
|
|
474
475
|
To measure memory usage, we use the `tracemalloc` library. We first calculate a baseline memory usage by running an empty function, then run the Agent 1000x times and calculate the difference. This gives a (reasonably) isolated measurement of the memory usage of the Agent.
|
|
475
476
|
|
|
@@ -4,7 +4,7 @@ agno/exceptions.py,sha256=HWuuNFS5J0l1RYJsdUrSx51M22aFEoh9ltoeonXBoBw,2891
|
|
|
4
4
|
agno/media.py,sha256=bWnJb2ns4gN-do73iHvslZPn9uNbH_Ty8XgOiOvSFfU,13932
|
|
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=2YbyDCSXkH2pjO1IGobEzWnkZ7Fkkmcz3l6eiHTxGRU,325861
|
|
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
|
|
@@ -29,40 +29,40 @@ agno/cloud/aws/s3/bucket.py,sha256=5dkKhjWVmf8dyQEyCTd6DkQlKADBnm0-_VKQgKqtJQM,7
|
|
|
29
29
|
agno/cloud/aws/s3/object.py,sha256=ttZPbLm3o63oGIhKgAr_bIf9DOpJlXRmrEVlkbTcJbk,1766
|
|
30
30
|
agno/db/__init__.py,sha256=bfd_tpKsIKCjZosnFqID26VoWqy88v8gzkf9kLHToY4,625
|
|
31
31
|
agno/db/base.py,sha256=POGw6M85Dwt1YD_69KbtB1iuTyrqYl4ZIWU07GO_4yc,7898
|
|
32
|
-
agno/db/utils.py,sha256=
|
|
32
|
+
agno/db/utils.py,sha256=xjrbR4g2ry0HnkiQC29Ql7jRzfxrorqS4HNlswhzVcM,3478
|
|
33
33
|
agno/db/dynamo/__init__.py,sha256=fZ7NwKbyhoIu7_4T6hVz44HkIINXMnTfFrDrgB6bpEo,67
|
|
34
|
-
agno/db/dynamo/dynamo.py,sha256=
|
|
34
|
+
agno/db/dynamo/dynamo.py,sha256=ZIud33mQeIO7IxNFmgtUgXUE7phNkR4xJ3mTCgNgEL8,66481
|
|
35
35
|
agno/db/dynamo/schemas.py,sha256=ZqeR4QdqMVi53iz2qcs-d5Y6MDfmhHSuP7vot__hLoI,11638
|
|
36
36
|
agno/db/dynamo/utils.py,sha256=3Kwkq7FqUac6Q6BjwuzWzfyo4ANnS8FIz7_n3EEnbYo,25047
|
|
37
37
|
agno/db/firestore/__init__.py,sha256=lYAJjUs4jMxJFty1GYZw464K35zeuBlcoFR9uuIQYtI,79
|
|
38
|
-
agno/db/firestore/firestore.py,sha256=
|
|
38
|
+
agno/db/firestore/firestore.py,sha256=1IjBjZwHcbTiukeiTuFqM0xPVo3pJwx_EVuFlVG6vDE,56960
|
|
39
39
|
agno/db/firestore/schemas.py,sha256=k8YuG_PC_Hd3WCLaDkk4bAJP8BmAWmrt6VXuG1wr2Ak,4132
|
|
40
40
|
agno/db/firestore/utils.py,sha256=FVR1XQjnsZsG3IrFyvTOHICd0lgD99aajUJ-UAvVEOg,10332
|
|
41
41
|
agno/db/gcs_json/__init__.py,sha256=aTR4o3aFrzfANHtRw7nX9uc5_GsY52ch0rmoo7uXuc4,76
|
|
42
|
-
agno/db/gcs_json/gcs_json_db.py,sha256=
|
|
42
|
+
agno/db/gcs_json/gcs_json_db.py,sha256=SMPSMDpYL326wv1KbqD7qHh3NACvrUk1P8DpT_PvIgI,42307
|
|
43
43
|
agno/db/gcs_json/utils.py,sha256=Ist4HuQoYvC2BKr01oTxDp9mfMirz1UBBDKElbXg2bg,6610
|
|
44
44
|
agno/db/in_memory/__init__.py,sha256=OvR_FONhOh9PmcRfUA_6gvplZT5UGIBAgVKqVg6SWTA,80
|
|
45
45
|
agno/db/in_memory/in_memory_db.py,sha256=qivtyP3ShYMuKFRadGgzbrRyaCElfm511ytiSdqPWcY,35074
|
|
46
46
|
agno/db/in_memory/utils.py,sha256=X02wny18w5uvGE3caokPbCQTG6t7OErWNPkK3Umru3s,5780
|
|
47
47
|
agno/db/json/__init__.py,sha256=zyPTmVF9S-OwXCL7FSkrDmunZ_Q14YZO3NYUv1Pa14Y,62
|
|
48
|
-
agno/db/json/json_db.py,sha256=
|
|
48
|
+
agno/db/json/json_db.py,sha256=AFcNHriyosn3Tce8S2fYCUZNL9UrE-MK3DCaAQGGttM,42228
|
|
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=
|
|
51
|
+
agno/db/migrations/v1_to_v2.py,sha256=HYLLaas9YEEbAOhzK3Sd-qBP-1YfHeeWglWsU31V584,12692
|
|
52
52
|
agno/db/mongo/__init__.py,sha256=EPa9QkGNVwnuej72LhZDCeASMXa-e0pR20jsgwa9BhY,63
|
|
53
|
-
agno/db/mongo/mongo.py,sha256=
|
|
53
|
+
agno/db/mongo/mongo.py,sha256=jOwq6agagQEkFHZykSjB_h4oItFTPoBTZZSegrOFcUg,57904
|
|
54
54
|
agno/db/mongo/schemas.py,sha256=MAhfwx7_zxKucnZpgq_YSZANaF5MqiZ6qDByhdIREk8,2054
|
|
55
55
|
agno/db/mongo/utils.py,sha256=dmVo0HGIG7IPKdCjuRDcO0ZOtyXcNkP6S2G-XBFqzZE,6906
|
|
56
56
|
agno/db/mysql/__init__.py,sha256=ohBMZ1E6ctioEF0XX5PjC4LtUQrc6lFkjsE4ojyXA8g,63
|
|
57
|
-
agno/db/mysql/mysql.py,sha256=
|
|
58
|
-
agno/db/mysql/schemas.py,sha256=
|
|
57
|
+
agno/db/mysql/mysql.py,sha256=3P6Wm69IEiYnYtuA9U-afU-S76e5OJJGVT5e98wKtiQ,70241
|
|
58
|
+
agno/db/mysql/schemas.py,sha256=2OAaX7ILykFCJBcEWH6kFXzNI8JnnYZCXClbVUoRbLc,5482
|
|
59
59
|
agno/db/mysql/utils.py,sha256=7E83u2gKOkr7lxFPGM2ucLvfJarbEtNRxOeZQhLYKzU,10066
|
|
60
60
|
agno/db/postgres/__init__.py,sha256=eEdY4emRxmBmxeZUhAYSaObgcqKdd6C9IxUSk1U0gDY,75
|
|
61
|
-
agno/db/postgres/postgres.py,sha256=
|
|
61
|
+
agno/db/postgres/postgres.py,sha256=PezXOvn7y0g4-eugNt0YUEOHeF3oBv01-mU8Mu_HyuA,69264
|
|
62
62
|
agno/db/postgres/schemas.py,sha256=adbKcMapqeXsEYeF6feWe2ja1paRzCMOkQSHHN6Psp8,5275
|
|
63
63
|
agno/db/postgres/utils.py,sha256=iaY0ZqJgzadCitxSbsRchCtBE5WeUApfIj-VbdH9MJI,9447
|
|
64
64
|
agno/db/redis/__init__.py,sha256=rZWeZ4CpVeKP-enVQ-SRoJ777i0rdGNgoNDRS9gsfAc,63
|
|
65
|
-
agno/db/redis/redis.py,sha256=
|
|
65
|
+
agno/db/redis/redis.py,sha256=JntBcaerlnGUL67eUUMjqIIzhB7bldkl6NlUYJywzCk,51537
|
|
66
66
|
agno/db/redis/schemas.py,sha256=LE1NApES1ao5X770HXB7jvrk2n31KiOWAsl5Z0xMG08,3637
|
|
67
67
|
agno/db/redis/utils.py,sha256=z1pyakjlCQ_FyQUXe8pPer-pQDG70GLDOYQLNl4Oxrg,8955
|
|
68
68
|
agno/db/schemas/__init__.py,sha256=HIKc2Apyk6ENJb_Py6sgNdbl6H7eo6PD5QMTmkdJSwI,72
|
|
@@ -72,11 +72,11 @@ agno/db/schemas/memory.py,sha256=kKlJ6AWpbwz-ZJfBJieartPP0QqeeoKAXx2Ity4Yj-Y,146
|
|
|
72
72
|
agno/db/schemas/metrics.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
73
73
|
agno/db/singlestore/__init__.py,sha256=dufbaod8ZZIeZIVi0hYJQ8Eu2DfIfWdIy00cpqAsx9U,87
|
|
74
74
|
agno/db/singlestore/schemas.py,sha256=yDXBGtswAuVxKX1_GvKIBt6IlEor2HiAbYPrwX5SSJ8,5489
|
|
75
|
-
agno/db/singlestore/singlestore.py,sha256=
|
|
75
|
+
agno/db/singlestore/singlestore.py,sha256=gYNi3k-4GYmqivoIBIB9h6FO7JdUGmyksYy3-pZ_zVg,69539
|
|
76
76
|
agno/db/singlestore/utils.py,sha256=LG0NhOx5B5oJY-Kcc_3ipNzBT1J-mBGx8TARUkRtWv8,11377
|
|
77
77
|
agno/db/sqlite/__init__.py,sha256=LocJ-suv6xpdun8HUxgbD3bTgmQArQvLJkbpb1pRGy0,67
|
|
78
78
|
agno/db/sqlite/schemas.py,sha256=-L3hmlg80PAPmfexPrWtnepSzlmZHrbyPZ754nJlVdE,5191
|
|
79
|
-
agno/db/sqlite/sqlite.py,sha256=
|
|
79
|
+
agno/db/sqlite/sqlite.py,sha256=puxKFhiriPz4TAIOKzBy2qBQY3En8AT7CwjFxTO6gZc,68187
|
|
80
80
|
agno/db/sqlite/utils.py,sha256=52FbQrmMHXicxocqbXM5B7iBGgVTSft0r_9PyckLSt0,9434
|
|
81
81
|
agno/eval/__init__.py,sha256=vCYcIbfOkT2lL8vZJ9zsea6j3byp5A-mxEb_45VaD8I,449
|
|
82
82
|
agno/eval/accuracy.py,sha256=UZmxOtVP3p3fFzby2YyjE4-Tza2MMtQiBrfhK9mJrx4,32531
|
|
@@ -85,10 +85,10 @@ agno/eval/reliability.py,sha256=kmyHthgzTeKOn_HGDSdpBlpxQ4m_vqhcAcjAjQxgKdk,1223
|
|
|
85
85
|
agno/eval/utils.py,sha256=EbpxDTgP9QGlSjU9NQi0X-tJRMMbxDmDpTedb_s-D20,3149
|
|
86
86
|
agno/integrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
87
87
|
agno/integrations/discord/__init__.py,sha256=MS08QSnegGgpDZd9LyLjK4pWIk9dXlbzgD7wB3eEVJE,88
|
|
88
|
-
agno/integrations/discord/client.py,sha256=
|
|
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=
|
|
91
|
+
agno/knowledge/knowledge.py,sha256=fQxDUufCT42PCMZn0M400swtbsk6nVDvT8N4IKA30X0,63384
|
|
92
92
|
agno/knowledge/types.py,sha256=zKBJC6xhy2Kl7pxWIhu7txbTAmAPIZlgMPZCbjyU11k,635
|
|
93
93
|
agno/knowledge/utils.py,sha256=_uhEFtz4p7-cIKffdj5UZ__c-u96rs2UWP6dv5HpOMk,6490
|
|
94
94
|
agno/knowledge/chunking/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -129,11 +129,10 @@ agno/knowledge/reader/firecrawl_reader.py,sha256=SCbcRLkMrUb2WiC6SPuAoZULtHITa2V
|
|
|
129
129
|
agno/knowledge/reader/json_reader.py,sha256=KfDgHno_XHORIGaoA1Q2Y5M7nkcTFM9IUzWXkjVjYKQ,3245
|
|
130
130
|
agno/knowledge/reader/markdown_reader.py,sha256=HoSEkX2Svl2tEMDyzAmRNmwxsterb3i3-1-EQR6N4IU,5272
|
|
131
131
|
agno/knowledge/reader/pdf_reader.py,sha256=4xx9ErZ4oXMsn4dgde9P9xKR6wogYnUKWJF2UAjAp84,17494
|
|
132
|
-
agno/knowledge/reader/reader_factory.py,sha256=
|
|
132
|
+
agno/knowledge/reader/reader_factory.py,sha256=g-Z9axqRv1PJliPNnl77y4Qt7ElXD3fq3rbWi85A5tg,9715
|
|
133
133
|
agno/knowledge/reader/s3_reader.py,sha256=j_xBDWV9l5Uhsr88glQ0dCMS-ijvqw8gdMc1Bzfm394,3547
|
|
134
134
|
agno/knowledge/reader/text_reader.py,sha256=Vkk3mWhjyazPv77Z9PGO1nRVk8cmVkUFIWZFCVqTkOI,4444
|
|
135
|
-
agno/knowledge/reader/
|
|
136
|
-
agno/knowledge/reader/web_search_reader.py,sha256=CaHBiMtONrO4HvNbM7NkHAyjLhHVCJZEkmQ5IvITWxQ,14239
|
|
135
|
+
agno/knowledge/reader/web_search_reader.py,sha256=GMc59AxwS1zTyBEmnwzJCEbPmK4ut1eWy8EV5XXTRSk,14585
|
|
137
136
|
agno/knowledge/reader/website_reader.py,sha256=S2q9ozLPa7NCFZF8iXtIIkn9ECJF_s8b1UAJKYwGLoA,18401
|
|
138
137
|
agno/knowledge/reader/wikipedia_reader.py,sha256=rTmqpr3IpwioMMZoMx5LLoscR19x6tUhv4aU84o0quk,2085
|
|
139
138
|
agno/knowledge/reader/youtube_reader.py,sha256=z0Udminq7XkUpob129Oq_8w8SvmRVn0CkXHp2S0KUg4,2986
|
|
@@ -149,7 +148,7 @@ agno/memory/manager.py,sha256=eCgy4KLVM97x8ypqx1-0hKubbTcwEYrOlzI-rNOinec,42219
|
|
|
149
148
|
agno/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
150
149
|
agno/models/base.py,sha256=pnApr0FSnFVJw5WQwNERz0pC2cRums-AS1xO5pyKkT4,77953
|
|
151
150
|
agno/models/defaults.py,sha256=1_fe4-ZbNriE8BgqxVRVi4KGzEYxYKYsz4hn6CZNEEM,40
|
|
152
|
-
agno/models/message.py,sha256=
|
|
151
|
+
agno/models/message.py,sha256=oIyuIhILNnV86OHYiwh_vWSduQSCVwrqQfjQ4-fqdFs,17633
|
|
153
152
|
agno/models/metrics.py,sha256=81IILXZwGmOTiWK003bi5mg4bM1f4LCWbwyamjFzp18,4500
|
|
154
153
|
agno/models/response.py,sha256=Tq36PoxFrp-_OA6SZPfM7Kd858kQ6cG4BcIlDUGBlZ8,4168
|
|
155
154
|
agno/models/utils.py,sha256=PprNlVI8d8loHayjRsrc4TL38sfkFMS3EVZcF5cLXoA,669
|
|
@@ -207,7 +206,7 @@ agno/models/ollama/chat.py,sha256=QGJetMU5qL6oPrI-yFSAMt_rfjb2T0XsquGx6r3z91k,13
|
|
|
207
206
|
agno/models/openai/__init__.py,sha256=OssVgQRpsriU6aJZ3lIp_jFuqvX6y78L4Fd3uTlmI3E,225
|
|
208
207
|
agno/models/openai/chat.py,sha256=4cRlD9NAFhmIC81uaun4UbERkHKGMO2nBabh5InoZLo,36444
|
|
209
208
|
agno/models/openai/like.py,sha256=wmw9PfAVqluBs4MMY73dgjelKn1yl5JDKyCRvaNFjFw,745
|
|
210
|
-
agno/models/openai/responses.py,sha256=
|
|
209
|
+
agno/models/openai/responses.py,sha256=KCFe1K5TLt81WHPQMJY5vbwRaKVZlceat5Mz49RvHJg,47106
|
|
211
210
|
agno/models/openrouter/__init__.py,sha256=ZpZhNyy_EGSXp58uC9e2iyjnxBctql7GaY8rUG-599I,90
|
|
212
211
|
agno/models/openrouter/openrouter.py,sha256=Ng-_ztpq_lghGI3tM94nsC8minKhiZ6d265c6IYXtg4,869
|
|
213
212
|
agno/models/perplexity/__init__.py,sha256=JNmOElDLwcZ9_Lk5owkEdgwmAhaH3YJ-VJqOI8rgp5c,90
|
|
@@ -227,20 +226,20 @@ agno/models/vllm/vllm.py,sha256=anBt3gshctbmda-OZJ51tOgbHHemsrSbQLMDqB39HIA,2707
|
|
|
227
226
|
agno/models/xai/__init__.py,sha256=ukcCxnCHxTtkJNA2bAMTX4MhCv1wJcbiq8ZIfYczIxs,55
|
|
228
227
|
agno/models/xai/xai.py,sha256=2BaoRSBxL2KXNqbSOv7iVmKPJIWoEPRh0er_9fu8yfc,4120
|
|
229
228
|
agno/os/__init__.py,sha256=h8oQu7vhD5RZf09jkyM_Kt1Kdq_d5kFB9gJju8QPwcY,55
|
|
230
|
-
agno/os/app.py,sha256=
|
|
229
|
+
agno/os/app.py,sha256=FuhU3tz2CoWER4cJ4NvFT0UgUE23LHolPUlE1EBSuZI,24636
|
|
231
230
|
agno/os/auth.py,sha256=FyBtAKWtg-qSunCas5m5pK1dVEmikOSZvcCp5r25tTA,1844
|
|
232
231
|
agno/os/config.py,sha256=u4R9yazQXIcKjR3QzEIZw_XAe_OHp3xn0ff7SVkj2jA,2893
|
|
233
232
|
agno/os/mcp.py,sha256=5L0TZwInuCWM7TQ7MI_DjMWfVIIB0jxVCqaVEdR62UU,8114
|
|
234
233
|
agno/os/router.py,sha256=Ic9M3eDS-01zpGHzn1ODR8ox-7B-xe-7xjA7VIb-OAg,61658
|
|
235
|
-
agno/os/schema.py,sha256=
|
|
234
|
+
agno/os/schema.py,sha256=n1DseZbkqR_Fy1bFSoog17rljYj3RFLMxUM2r_6gwF4,38222
|
|
236
235
|
agno/os/settings.py,sha256=Cn5_8lZI8Vx1UaUYqs9h6Qp4IMDFn4f3c35uppiaMy4,1343
|
|
237
|
-
agno/os/utils.py,sha256=
|
|
236
|
+
agno/os/utils.py,sha256=_UIq19VBwIa09YP7WYLvkX3LYNJLFAtayPvNzEjLG-4,9115
|
|
238
237
|
agno/os/interfaces/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
239
238
|
agno/os/interfaces/base.py,sha256=NIqG5vCQDaKczcQZWRc9tK1L1v5_wD6haXTHFViMCpo,443
|
|
240
239
|
agno/os/interfaces/agui/__init__.py,sha256=1zrGICk4roXUINwSFZfqH6sBsbHmD5KjGYVJMGg4fKQ,66
|
|
241
240
|
agno/os/interfaces/agui/agui.py,sha256=Gf05amiSeDrEfCe7KcQaEJ8Tq9JdX1D7It9hYh1k-a8,902
|
|
242
241
|
agno/os/interfaces/agui/router.py,sha256=CgHCqNwA3ktUoGmCt0PoaQPX3hJ4rcXOgtXUGQ5sPIU,4335
|
|
243
|
-
agno/os/interfaces/agui/utils.py,sha256=
|
|
242
|
+
agno/os/interfaces/agui/utils.py,sha256=VykZ-SGN5UzBpP5Pv4TmZgMsZRNPgSryO5z5ir48-N0,15892
|
|
244
243
|
agno/os/interfaces/slack/__init__.py,sha256=F095kOcgiyk_KzIozNNieKwpVc_NR8HYpuO4bKiCNN0,70
|
|
245
244
|
agno/os/interfaces/slack/router.py,sha256=9FvL12luuzJyTKIO_piQFayHeRAV317JEwUkZ3W9MzY,4034
|
|
246
245
|
agno/os/interfaces/slack/security.py,sha256=nMbW_0g-G_DEMbCQOD8C3PYrRPIpB2cyM6P-xS6GHYk,917
|
|
@@ -250,13 +249,14 @@ agno/os/interfaces/whatsapp/router.py,sha256=48AfJrsmtmGzG32rUrQ76E4kc9F9bSqR4ei
|
|
|
250
249
|
agno/os/interfaces/whatsapp/security.py,sha256=WOdjP886O0Wq6CRHSLAv_b39y6pjmn8opPQDSlZf4WA,1735
|
|
251
250
|
agno/os/interfaces/whatsapp/whatsapp.py,sha256=NpkenUHFhILEZgEIjbicCXq61rdaXhbx5Md1aFy7UjY,837
|
|
252
251
|
agno/os/routers/__init__.py,sha256=du4LO9aZwiY1t59VcV9M6wiAfftFFlUZc-YXsTGy9LI,97
|
|
253
|
-
agno/os/routers/health.py,sha256=
|
|
252
|
+
agno/os/routers/health.py,sha256=MpJrg488T0m8jU0mtoBNPiLhlR2r2gFihvyZwdQh_oc,725
|
|
253
|
+
agno/os/routers/home.py,sha256=gbqBP2-G5_aFSdsXMdc77jtanI8XSRZ8QcxKjX8_qkw,1717
|
|
254
254
|
agno/os/routers/evals/__init__.py,sha256=3s0M-Ftg5A3rFyRfTATs-0aNA6wcbj_5tCvtwH9gORQ,87
|
|
255
255
|
agno/os/routers/evals/evals.py,sha256=zjsgoTCyKbj9clPtTyg3veFFkHNxMBPtcLGuy5Zlnck,16965
|
|
256
256
|
agno/os/routers/evals/schemas.py,sha256=3Ebm3IrpX22Hg3ZatMRkozgS4TfnMki4_UbqCNtQvJ4,4800
|
|
257
257
|
agno/os/routers/evals/utils.py,sha256=ZdQd5Rz7rBFwMT6Z380cP1MvJG24I_lgTfaQItvva3g,5519
|
|
258
258
|
agno/os/routers/knowledge/__init__.py,sha256=ZSqMQ8X7C_oYn8xt7NaYlriarWUpHgaWDyHXOWooMaU,105
|
|
259
|
-
agno/os/routers/knowledge/knowledge.py,sha256=
|
|
259
|
+
agno/os/routers/knowledge/knowledge.py,sha256=nCbVU2aCenIvpbmIIWjupgICO3GHbiD76q81P-lD0r8,38604
|
|
260
260
|
agno/os/routers/knowledge/schemas.py,sha256=w8XZZsWCVNmd2s_rihq2PDcgXhF7H_yO7WHU_OgY6OU,4397
|
|
261
261
|
agno/os/routers/memory/__init__.py,sha256=9hrYFc1dkbsLBqKfqyfioQeLX9TTbLrJx6lWDKNNWbc,93
|
|
262
262
|
agno/os/routers/memory/memory.py,sha256=pi_3omyZ54usHNTVBvkoPwIXBgu1p-Q7s4jYD2wUYYM,16798
|
|
@@ -276,11 +276,11 @@ agno/reasoning/ollama.py,sha256=v-XbtBjjRUZHX9I1ZNZAAb-sv8W_a0hCgkhczz_W4HU,2564
|
|
|
276
276
|
agno/reasoning/openai.py,sha256=RkXxZZpr1KykMiDLVdz36d3WKjwlGPucR5RmhU5asHM,3089
|
|
277
277
|
agno/reasoning/step.py,sha256=6DaOb_0DJRz9Yh1w_mxcRaOSVzIQDrj3lQ6rzHLdIwA,1220
|
|
278
278
|
agno/run/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
279
|
-
agno/run/agent.py,sha256=
|
|
279
|
+
agno/run/agent.py,sha256=xZ6yZA8T7QEJLDyogbpmTz8GJlRdxznUT1pKzugnGQw,21633
|
|
280
280
|
agno/run/base.py,sha256=TvIGCos_uNrFpYe8F9j3qWE1YC4-_SW9rxnsFilJvCc,6911
|
|
281
281
|
agno/run/cancel.py,sha256=yoSj3fnx8D7Gf-fSngVIgd3GOp3tRaDhHH_4QeHDoAk,2667
|
|
282
282
|
agno/run/messages.py,sha256=rAC4CLW-xBA6qFS1BOvcjJ9j_qYf0a7sX1mcdY04zMU,1126
|
|
283
|
-
agno/run/team.py,sha256=
|
|
283
|
+
agno/run/team.py,sha256=FSgPjfTqyHSNKrrNC0tVGUo-208w27xA9k2PxLYZlfE,22172
|
|
284
284
|
agno/run/workflow.py,sha256=MuNvgDKBoNRsg81S-fw7URt_k36xIOYiL64uWDDHxSg,22624
|
|
285
285
|
agno/session/__init__.py,sha256=p6eqzWcLSHiMex2yZvkwv2yrFUNdGs21TGMS49xrEC4,376
|
|
286
286
|
agno/session/agent.py,sha256=0o8QJRc6HclC7X5MjPTSqtRIwuyjJ9un4ck9FK8lBlA,9686
|
|
@@ -288,7 +288,7 @@ agno/session/summary.py,sha256=2a74rDzrOGkWjrFkHQ6gf1dsZBU0_G1lgDE7b3fPaQw,8405
|
|
|
288
288
|
agno/session/team.py,sha256=ttb5MquVYEAtcXZNPttcBYgELu2cEwQRknveVyddr-Y,10250
|
|
289
289
|
agno/session/workflow.py,sha256=8dWTona5jen1iPYwjcvxq1XG5EQDFnd28BEjcbqzl4s,5004
|
|
290
290
|
agno/team/__init__.py,sha256=toHidBOo5M3n_TIVtIKHgcDbLL9HR-_U-YQYuIt_XtE,847
|
|
291
|
-
agno/team/team.py,sha256=
|
|
291
|
+
agno/team/team.py,sha256=AoTeRtDFI9g2MybcMFc4Z7t5HqEe9s6Xt8jCTsVhsgE,306165
|
|
292
292
|
agno/tools/__init__.py,sha256=jNll2sELhPPbqm5nPeT4_uyzRO2_KRTW-8Or60kioS0,210
|
|
293
293
|
agno/tools/agentql.py,sha256=S82Z9aTNr-E5wnA4fbFs76COljJtiQIjf2grjz3CkHU,4104
|
|
294
294
|
agno/tools/airflow.py,sha256=uf2rOzZpSU64l_qRJ5Raku-R3Gky-uewmYkh6W0-oxg,2610
|
|
@@ -317,7 +317,7 @@ agno/tools/desi_vocal.py,sha256=dTeIaD7pabaZxPG9IxtQhaVpC6-A3-4hX4xIt5C7kA4,3661
|
|
|
317
317
|
agno/tools/discord.py,sha256=KkqArWVMtwpqOC-fQ7MxHAOAL9-G0CqlXUWgjQNgvOA,5819
|
|
318
318
|
agno/tools/docker.py,sha256=pk1OXW3Pk318gMoFjV2vXGA0HBc93DLs8eftOM7eRIQ,25837
|
|
319
319
|
agno/tools/duckdb.py,sha256=cYs1cgMUqZOydYC_ow65mTMSlRoAyws7k-Hx_RfVgrM,14668
|
|
320
|
-
agno/tools/duckduckgo.py,sha256=
|
|
320
|
+
agno/tools/duckduckgo.py,sha256=7IdggRnw6kuhPARRPIjWxrxGOt9TwP4W1oSILFhF_0Y,3474
|
|
321
321
|
agno/tools/e2b.py,sha256=InuGclzz93kbqWfrXSAtLvpCn-DzwuN1H26lWyUP0qQ,25958
|
|
322
322
|
agno/tools/eleven_labs.py,sha256=dYdyjxsLL9fLQBwY6_e-bPG-XgSNIB2y91avZskbg_Y,7184
|
|
323
323
|
agno/tools/email.py,sha256=YmqNngDMDfJn-TCrxGV9IxRh2xcLmxQh7NOuuKTyUwU,2359
|
|
@@ -334,7 +334,7 @@ agno/tools/gmail.py,sha256=MlLlEvxHly_2oKAZaKxXDmoHLTbWDSXcjOASGt7RpY8,28067
|
|
|
334
334
|
agno/tools/google_bigquery.py,sha256=j0c14CgGK8KvD7eEirsdAx7RSwcfMheugn84ySq6miU,4483
|
|
335
335
|
agno/tools/google_maps.py,sha256=AqPEIt4u6B2kQtzOnL5PH3RXoefCfjT_Uvm3coAqzaY,9513
|
|
336
336
|
agno/tools/googlecalendar.py,sha256=s8BPKvDZGeLD2idlQG-vqDqVpza6PupF5AzAElnAK_M,27457
|
|
337
|
-
agno/tools/googlesearch.py,sha256=
|
|
337
|
+
agno/tools/googlesearch.py,sha256=xRuaEqn7N6JIQC6z9jFuA0Kdtoe5MafGqRMtZ8jW2AQ,3566
|
|
338
338
|
agno/tools/googlesheets.py,sha256=Xb5y5ka_K3T-ZlYs-aVCl0RC5NFy3GOh7R8SGUb3i-o,14911
|
|
339
339
|
agno/tools/hackernews.py,sha256=h5w-L5FkGGMAHr6Jjez6164-UYZ_2r2qFAzwMrKLdRM,2776
|
|
340
340
|
agno/tools/jina.py,sha256=xa0yxcxsSZ1-BzxO3PJKNWnWrv64DxbpvRHTPFXWhC4,4036
|
|
@@ -439,10 +439,10 @@ agno/utils/response_iterator.py,sha256=MgtadrOuMcw2vJcVvhJdMKRzpVddhLWUIkGFbBz7Z
|
|
|
439
439
|
agno/utils/safe_formatter.py,sha256=zLrW6O-nGUZvXoDkZOTgVpjeUFTmMUj8pk3FLvW_XjM,809
|
|
440
440
|
agno/utils/shell.py,sha256=JaY14Fq3ulodG4SeSdLEoOZDI4JJlmCbdgwK5beJuc8,700
|
|
441
441
|
agno/utils/streamlit.py,sha256=Bn2kQLiTKKqyN0VXj0NBN_sz8V1bV5vImoSk1PCi52g,17966
|
|
442
|
-
agno/utils/string.py,sha256=
|
|
442
|
+
agno/utils/string.py,sha256=N2BBdn-gvtFjeWAU_FBDpXBzEZxHEhK85DpA1ZiV4p0,7189
|
|
443
443
|
agno/utils/team.py,sha256=VXdm41WhsC6Rb20fHcpO4H55obQ6R435luAAZ4Jc3yQ,1853
|
|
444
444
|
agno/utils/timer.py,sha256=Fuax69yh1cVIzCYMmJDB4HpTsPM8Iiq1VaTWz1vJtF8,1282
|
|
445
|
-
agno/utils/tools.py,sha256=
|
|
445
|
+
agno/utils/tools.py,sha256=YZjA95pSNhHHcyoz5pe-Wo-yh9O2NU4Pqcbhs5kbefY,3842
|
|
446
446
|
agno/utils/web.py,sha256=JwLKspkLcuFyA19T5tf4-Rs8BGPwTEySp531A3t0sC4,655
|
|
447
447
|
agno/utils/whatsapp.py,sha256=242VwGOdbgkxVeIj4D899mpT3GnG_IpcaKnd5qebhTA,9936
|
|
448
448
|
agno/utils/yaml_io.py,sha256=cwTqCE-eBGoi87KLDcwB6iyWe0NcvEmadQjWL1cQ7jE,860
|
|
@@ -509,12 +509,12 @@ agno/workflow/condition.py,sha256=JFWPnwEeOIkQWexGYDK9pToPyf_siRCW92rkFdA4yTc,28
|
|
|
509
509
|
agno/workflow/loop.py,sha256=cTVkRX5pwfZH5O19Q3W3YS9bcSKmEszkDwfR0V72rV8,30635
|
|
510
510
|
agno/workflow/parallel.py,sha256=K_fT51xzYLI2k48dafNHH4uki-HoT6H2aNwCSeHWE2c,29859
|
|
511
511
|
agno/workflow/router.py,sha256=ZAiVsh2F_9ssKj0_RzHWzfgimaZ5hfb3Ni1Xx_SkVR0,26625
|
|
512
|
-
agno/workflow/step.py,sha256=
|
|
512
|
+
agno/workflow/step.py,sha256=15vZFN5HlO3IkHqsxkM-2InUzCWC0Ee8BtoJ-OAhS5w,52485
|
|
513
513
|
agno/workflow/steps.py,sha256=uRE4oGWs2cA-TrX881AEa69zu6rheXH81mNOZiRrNvg,23719
|
|
514
514
|
agno/workflow/types.py,sha256=ZEFyaKH42261_3yx810ABfi70RUfjPGSwiIep7n53yg,17485
|
|
515
515
|
agno/workflow/workflow.py,sha256=40t5CqcQk_cRLfQwkUXodCBPEcWMvvQaPPLd-vKB62Y,110539
|
|
516
|
-
agno-2.0.
|
|
517
|
-
agno-2.0.
|
|
518
|
-
agno-2.0.
|
|
519
|
-
agno-2.0.
|
|
520
|
-
agno-2.0.
|
|
516
|
+
agno-2.0.5.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
|
|
517
|
+
agno-2.0.5.dist-info/METADATA,sha256=NITjl8r0ICMENhQha1162KEddPmOzgsh6j8D6fdqTTg,21762
|
|
518
|
+
agno-2.0.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
519
|
+
agno-2.0.5.dist-info/top_level.txt,sha256=MKyeuVesTyOKIXUhc-d_tPa2Hrh0oTA4LM0izowpx70,5
|
|
520
|
+
agno-2.0.5.dist-info/RECORD,,
|