This example demonstrates how to create a context-aware agent that can access real-time HackerNews data through dependency injection, enabling the agent to provide current information.
import jsonimport httpxfrom agno.agent import Agentfrom agno.models.openai import OpenAIChatdef get_top_hackernews_stories(num_stories: int = 5) -> str: """Fetch and return the top stories from HackerNews. Args: num_stories: Number of top stories to retrieve (default: 5) Returns: JSON string containing story details (title, url, score, etc.) """ # Get top stories stories = [ { k: v for k, v in httpx.get( f"https://hacker-news.firebaseio.com/v0/item/{id}.json" ) .json() .items() if k != "kids" # Exclude discussion threads } for id in httpx.get( "https://hacker-news.firebaseio.com/v0/topstories.json" ).json()[:num_stories] ] return json.dumps(stories, indent=4)# Create a Context-Aware Agent that can access real-time HackerNews dataagent = Agent( model=OpenAIChat(id="gpt-5-mini"), # Each function in the dependencies is resolved when the agent is run, # think of it as dependency injection for Agents dependencies={"top_hackernews_stories": get_top_hackernews_stories}, # We can add the entire dependencies dictionary to the user message add_dependencies_to_context=True, markdown=True,)# Example usageagent.print_response( "Summarize the top stories on HackerNews and identify any interesting trends.", stream=True,)