Back to projects

Agno Agentic Programming Demos

Agentic programming lab with runnable examples for Agno agents, Gemini tools, Pydantic output, LanceDB RAG, and SQLite session memory.

ExperimentalAgentic programming lab / 2025

Problem

Agent frameworks are easier to understand through small examples for tools, structured responses, retrieval, embeddings, and persistent sessions.

Solution

Create a compact Python repo with Agno scripts, shared environment loading, diagrams, and examples for Gemini tools, Pydantic models, URL knowledge, LanceDB, embeddings, and SQLite storage.

Key Features

Basic Agno agent setup using Google Gemini
YFinance tool integration for stock price and company information responses
Optional Hacker News tool that fetches top stories from the public Firebase API
Pydantic MovieScript response model for JSON mode and structured-output comparison
URL knowledge workflow loading Agno documentation into a LanceDB vector store
SentenceTransformer embeddings with hybrid LanceDB search
SQLite session storage with chat history added back into agent messages
Visual diagrams for baseline LLM, basic agent, structured output, and knowledge-plus-storage flows

Architecture Map

Mermaid
flowchart LR
  Prompt["User prompt"] --> Agent["Agno agent"]
  Agent --> Gemini["Google Gemini model"]
  Agent --> Tools["YFinance and Hacker News tools"]
  Agent --> Schema["Pydantic response model"]
  Agent --> Knowledge["UrlKnowledge from Agno docs"]
  Knowledge --> LanceDB["LanceDB hybrid vector search"]
  LanceDB --> Embeddings["SentenceTransformer embeddings"]
  Agent --> Memory["SQLite session storage"]
  Gemini --> Output["Markdown or structured response"]
  Tools --> Agent
  Schema --> Output
  Memory --> Agent

Agno Course Screenshots

4 views
Knowledge and memory flow: the Agno agent uses URL knowledge, LanceDB hybrid search, SentenceTransformer embeddings, SQLite storage, and Gemini.
Basic agent loop showing how user input moves through an Agno agent to the LLM and back as output.
Structured-output example using a Pydantic response model to compare JSON mode and native structured responses.
Baseline LLM interaction used as the first step before adding tools, schema validation, knowledge, and memory.