Tool result caching is designed to avoid unnecessary recomputation by storing the results of function calls on disk.
This is useful during development and testing to speed up the development process, avoid rate limiting, and reduce costs.
This is supported for all Agno Toolkits
Pass cache_results=True
to the Toolkit constructor to enable caching for that Toolkit.
import asyncio
from agno.agent import Agent
from agno.models.openai import OpenAIChat
from agno.tools.duckduckgo import DuckDuckGoTools
from agno.tools.yfinance import YFinanceTools
agent = Agent(
model=OpenAIChat(id="gpt-5-mini"),
tools=[DuckDuckGoTools(cache_results=True), YFinanceTools(cache_results=True)],
)
asyncio.run(
agent.aprint_response(
"What is the current stock price of AAPL and latest news on 'Apple'?",
markdown=True,
)
)
Pass cache_results=True
to the @tool
decorator to enable caching for that tool.
from agno.tools import tool
@tool(cache_results=True)
def get_stock_price(ticker: str) -> str:
"""Get the current stock price of a given ticker"""
# ... Long running operation
return f"The current stock price of {ticker} is 100"