Skip to main content
TinyGent Logo

Tiny platform for amazing agents

Homepage | Documentation | Examples | Quick Start

Tinygent is a tiny agentic framework - lightweight, easy to use (hopefully), and efficient (also hopefully ;-0) library for building and deploying generative AI applications. It provides a simple interface for working with various models and tools, making it ideal for developers who want to quickly prototype and deploy AI solutions.

Create an agent

# uv add tinygent[openai]

from tinygent.tools import tool
from tinygent.core.factory import build_agent

@tool
def get_weather(location: str) -> str:
    """Get the current weather in a given location."""
    return f'The weather in {location} is sunny with a high of 75°F.'

agent = build_agent(
    'react',
    llm='openai:gpt-4o-mini',
    tools=[get_weather],
)

print(agent.run('What is the weather like in Prague?'))

Getting Started

Prerequisites

Before you begin using tinygent, ensure that you meet the following software prerequisites.

Install From Source

  1. Clone the tinygent repository to your local machine.

    git clone git@github.com:filchy/tinygent.git tinygent
    cd tinygent
    
  2. Create a Python environment.

    uv venv --seed .venv
    source .venv/bin/activate
    
  3. Install the tinygent library. To install only the core tinygent library without any optional dependencies, run the following:

    uv sync
    

    To install the tinygent library along with all of the optional dependencies. Including developer tools (--all-groups), additional packages and all of the dependencies needed for profiling and plugins (--all-extras) in the source repository, run the following:

    uv sync --all-groups --all-extras
    
  4. Install tinygent in editable mode (development mode), so that changes in the source code are immediately reflected:

    uv pip install -e .
    

See It In Action

TinyChat Demo

Architecture

%%{init: {'theme': 'base', 'themeVariables': {'primaryColor': '#e1f5ff', 'primaryTextColor': '#0d47a1', 'primaryBorderColor': '#42a5f5', 'lineColor': '#1976d2', 'secondaryColor': '#fff4e1', 'tertiaryColor': '#f0e1ff'}}}%%
flowchart LR
    User[User Code]:::userNode
    Factory[Factories]:::factoryNode
    Runtime[Runtime Registry]:::runtimeNode
    Components[Agents & Tools & Memory]:::componentNode
    Packages[Provider Packages]:::packageNode

    User a@--> Factory
    Factory b@--> Runtime
    Runtime c@--> Components
    Packages d@-.-> Runtime

    a@{animate: true}
    b@{animate: true}
    c@{animate: true}
    d@{animate: true}

    linkStyle 0 stroke-width:2px
    linkStyle 1 stroke-width:2px
    linkStyle 2 stroke-width:2px
    linkStyle 3 stroke-width:2px,stroke-dasharray: 5 5

    classDef userNode fill:#e1f5ff,stroke:#1976d2,stroke-width:2px,color:#0d47a1
    classDef factoryNode fill:#fff4e1,stroke:#f57c00,stroke-width:2px,color:#e65100
    classDef runtimeNode fill:#f0e1ff,stroke:#7b1fa2,stroke-width:2px,color:#4a148c
    classDef componentNode fill:#e1ffe1,stroke:#388e3c,stroke-width:2px,color:#1b5e20
    classDef packageNode fill:#ffe1e1,stroke:#d32f2f,stroke-width:2px,color:#b71c1c

Tinygent uses a registry-based plugin architecture: Packages register components into the Runtime. Factories query the Runtime to build Components for your code.

Examples (Quick Start)

  1. Ensure you have set the OPENAI_API_KEY environment variable to allow the example to use OpenAI's API. An API key can be obtained from openai.com.

    export OPENAI_API_KEY="your_openai_api_key"
    
  2. Run the examples using uv:

    uv run examples/agents/multi-step/main.py
    
  3. Explore more examples below:

Features & Examples

Linting & Formatting

To ensure code quality, formatting consistency, and type safety, run:

uv run fmt   # Format code Ruff
uv run lint  # Run Ruff linter and Mypy type checks

Metadata

Release files for tinygent 0.1.1019

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tinygent 0.1.1019
File Size Uploaded
tinygent-0.1.1019.tar.gz 1.0 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for tinygent 0.1.1019
File Interpreter ABI Platform
tinygent-0.1.1019-py3-none-any.whl Python 3 none any Details

Total release size: 1.2 MB

Release files / tinygent-0.1.1019.tar.gz

Download URL tinygent-0.1.1019.tar.gz
Size 1.0 MB
Tags Source
SHA-256 checksum
How to use checksums
d7f4fc867d1802c74828d9ffa7c2bee67d05bc36685916c4998e411c8ae81c16
BLAKE2b-256 checksum
How to use checksums
27f6118f9b888d8e79683ee9f42fab2d9f97a0c47da702419ad829e22b1f9ab0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / tinygent-0.1.1019-py3-none-any.whl

Download URL tinygent-0.1.1019-py3-none-any.whl
Size 123.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
74457a829d812fb147b4c91237b2b88271c526aaa108207c0219a26fd28fea4f
BLAKE2b-256 checksum
How to use checksums
98fdcc50859f1ca16982113a23df478de4e71ba75f486af945875e5512af1a62
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page