Build custom intelligence by specifying Python functions as a tool in Agno agents. For Agno agents Python functions are first-class citizens that can be passed directly into an agent’s tools list. They don’t need complex wrappers or classes to give an agent new capabilities.
Copy
Ask AI
import jsonimport httpxfrom agno.agent import Agent# ---------------------------------------------------------------------------# Create Agent# ---------------------------------------------------------------------------def get_top_hackernews_stories(num_stories: int = 10) -> str: """Use this function to get top stories from Hacker News. Args: num_stories (int): Number of stories to return. Defaults to 10. Returns: str: JSON string of top stories. """ # Fetch top story IDs response = httpx.get("https://hacker-news.firebaseio.com/v0/topstories.json") story_ids = response.json() # Fetch story details stories = [] for story_id in story_ids[:num_stories]: story_response = httpx.get( f"https://hacker-news.firebaseio.com/v0/item/{story_id}.json" ) story = story_response.json() if "text" in story: story.pop("text", None) stories.append(story) return json.dumps(stories)agent = Agent(tools=[get_top_hackernews_stories], markdown=True)# ---------------------------------------------------------------------------# Run Agent# ---------------------------------------------------------------------------if __name__ == "__main__": agent.print_response("Summarize the top 5 stories on hackernews?", stream=True)