$ show agno-agi/agno
Agno is a Python framework for building, orchestrating, and deploying AI agents. It provides a unified abstraction over dozens of LLM providers (OpenAI, Anthropic, Gemini, Groq, DeepSeek, etc.) and supports rich tool integration, multi-agent teams, workflow engines, RAG knowledge bases, persistent session storage, and human-in-the-loop patterns. The architecture centers on core classes: `Agent`, `Team`, `Workflow`, `Knowledge`, and `Toolkit`, all composable through a consistent configuration interface. Agents can be served via the `AgentOS` runtime, which exposes REST, MCP, A2A, Slack, and WhatsApp endpoints with JWT-based auth, scheduling, and observability. The framework includes a comprehensive evaluation suite (`AccuracyEval`, `PerformanceEval`, `ReliabilityEval`), a learning machine for persistent user profiling and memory, and an environments module for reproducible agent rollouts and scorer-based export. While primarily an application framework, it also exhibits data/research characteristics through its evaluation infrastructure, knowledge chunking/embedding pipelines, and systematic experiment tooling. The extensive cookbook (300+ examples) doubles as integration tests, demonstrating patterns ranging from simple single-agent tasks to complex distributed teams and nested workflows. Key entry points include `agno.agent.Agent`, `agno.team.Team`, `agno.workflow.Workflow`, `agno.os.AgentOS` (`agno serve`), and the `agno` CLI. The codebase is large and actively maintained, with a broad integration surface across models, vector databases, storage backends, and third-party tools. Technical drift is moderate, with some experimental model wrappers and rapidly evolving model IDs that may require updates.
The LLM identified 5 files worth highlighting for reuse:
Defines a `Scorer` protocol and `CodeScorer` implementation for typed output validation of agent responses. The protocol is self-contained, abstract, and can be reused in any project that needs to evaluate structured outputs (e.g., correctness, format adherence). Demonstrates clean protocol-based architecture with configurable `CodeScorer` that validates dataclass fields.
Implements multiple chunking strategies (fixed-size, recursive, semantic, agentic) as composable classes. Each strategy is isolated, parameterized, and can be extracted and applied to any text-splitting task. Demonstrates the Strategy pattern with clear interfaces and minimal internal coupling.
A workflow engine supporting steps, loops, parallel execution, conditional branching, and human-in-the-loop pauses. Steps are composable, can be run nested, and events are streamable. The abstraction is self-contained and could be reused to model any sequential/parallel process with state, not just agent workflows. Demonstrates non-obvious skill in designing a declarative workflow DSL.
Provides `AccuracyEval` and `AccuracyEvalWithAgent` classes for measuring correctness of agent responses against expected answers. Includes configurable evaluator agents, batch processing, and metrics logging. The pattern is isolated and reusable for any scenario requiring automated answer validation (with or without tools).
Implements a `LearningMachine` that automatically extracts user profiles, user memories, entity memories, and session context from conversations. Supports agentic and automatic modes, custom schemas, and persistence across sessions via pluggable stores. The architecture is self-contained and could be adapted to any application needing structured long-term memory extraction.