Tiny agentic framework for building AI agents which can do more than tiny just tasks.
Project description
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 sync --extra 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
[!NOTE] Not all packages are included in the default installation to keep the library lightweight. You can customize your installation by specifying the optional dependencies you need.
-
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tinygent-0.1.1011.tar.gz.
File metadata
- Download URL: tinygent-0.1.1011.tar.gz
- Upload date:
- Size: 1.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.10 {"installer":{"name":"uv","version":"0.10.10","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4b21b3335ad6e98f63d412de9c1541f3bdc4a9720b6a86bfffb53599a209346f
|
|
| MD5 |
78dc7ad82b8f5ba874a0ca74955cf340
|
|
| BLAKE2b-256 |
af5689b3909eba5c9e859cc61e8ab1e3a9f5b2c34f2efed28e6985ef7adf4704
|
File details
Details for the file tinygent-0.1.1011-py3-none-any.whl.
File metadata
- Download URL: tinygent-0.1.1011-py3-none-any.whl
- Upload date:
- Size: 114.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.10 {"installer":{"name":"uv","version":"0.10.10","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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e5e35b8b3db36b82d972be165de53611f7105b11890f67c3412800dafea24486
|
|
| MD5 |
b950a180d8187c0a82ace98c4e9c0bc3
|
|
| BLAKE2b-256 |
3c5e92d86967dd46df472ef877b5e3f58a58c228b1755f9322a92a516f71b470
|