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
-
Clone the tinygent repository to your local machine.
git clone git@github.com:filchy/tinygent.git tinygent cd tinygent
-
Create a Python environment.
uv venv --seed .venv source .venv/bin/activate
-
Install the tinygent library. To install only the core tinygent library without any optional dependencies, run the following:
uv syncTo 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
-
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
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)
-
Ensure you have set the
OPENAI_API_KEYenvironment variable to allow the example to use OpenAI's API. An API key can be obtained fromopenai.com.export OPENAI_API_KEY="your_openai_api_key"
-
Run the examples using
uv:uv run examples/agents/multi-step/main.py
-
Explore more examples below:
Features & Examples
- Basics — Tool Usage, LLM Usage, Function Calling
- Memory — Chat Buffer, Summary Buffer, Window Buffer, Combined
- Agents — ReAct, Multi-Step, Squad, MAP, Middlewares
- Packages — OpenAI, Anthropic, Mistral, Gemini, VoyageAI, Brave, Chat, Graph
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)
| File | Size | Uploaded | |
|---|---|---|---|
| tinygent-0.1.1019.tar.gz | 1.0 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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}
|