A streamlined framework for building powerful LLM-powered agents that actually work
Project description
tinyAgent
Turn any Python function into an AI‑powered agent in just a few lines:
from tinyagent import tool, ReactAgent
@tool
def multiply(a: float, b: float) -> float:
"""Multiply two numbers together."""
return a * b
@tool
def divide(a: float, b: float) -> float:
"""Divide the first number by the second number."""
return a / b
agent = ReactAgent(tools=[multiply, divide])
result = agent.run("What is 12 times 5, then divided by 3?")
# → 20
That's it! The agent automatically:
- Understands it needs to perform multiple steps
- Calls
multiply(12, 5)→ gets 60 - Takes that result and calls
divide(60, 3)→ gets 20 - Returns the final answer
Why tinyAgent?
- Zero boilerplate – Just decorate functions with
@tool - Automatic reasoning – Agent figures out which tools to use and in what order
- Built-in LLM – Works out of the box with OpenRouter
- Type safe – Full type hints and validation
- Production ready – Error handling and retries
Installation
pip install tiny_agent_os
Quick Setup
Set your API key:
export OPENAI_API_KEY=your_openrouter_key_here
export OPENAI_BASE_URL=https://openrouter.ai/api/v1
Get your key at openrouter.ai
Note: This is a clean rewrite focused on keeping tinyAgent truly tiny. For the legacy codebase (v0.72.x), install with
pip install tiny-agent-os==0.72.18or see the0.72branch.
More Examples
Multi-step reasoning
from tinyagent import tool, ReactAgent
@tool
def calculate_percentage(value: float, percentage: float) -> float:
"""Calculate what percentage of a value is."""
return value * (percentage / 100)
@tool
def subtract(a: float, b: float) -> float:
"""Subtract b from a."""
return a - b
agent = ReactAgent(tools=[calculate_percentage, subtract])
result = agent.run("If I have 15 apples and give away 40%, how many are left?")
print(result) # → "You have 9 apples left."
Behind the scenes:
- Agent calculates 40% of 15 → 6
- Subtracts 6 from 15 → 9
- Returns a natural language answer
Key Features
ReactAgent
- Multi-step reasoning - Breaks down complex problems automatically
- Clean API - Simple, ergonomic interface
- Error handling - Built-in retry logic and graceful failures
Tools Philosophy
Every function can be a tool. Keep them:
- Atomic - Do one thing well
- Typed - Use type hints for parameters
- Documented - Docstrings help the LLM understand usage
Status
BETA - Actively developed and used in production. Breaking changes possible until v1.0.
Found a bug? Have a feature request? Open an issue!
License
Business Source License 1.1
- Free for individuals and small businesses (< $1M revenue)
- Enterprise license required for larger companies
Contact: info@alchemiststudios.ai
Made by @tunahorse21 | alchemiststudios.ai focusing on keeping it "tiny"
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 tiny_agent_os-0.73.0.tar.gz.
File metadata
- Download URL: tiny_agent_os-0.73.0.tar.gz
- Upload date:
- Size: 35.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
88a25289bd205cdaf175d0729583e250b9711fd3c10c2dda81ab2a1d0e1f69b7
|
|
| MD5 |
e43f34331a01e322e0bb5fa50eaae08d
|
|
| BLAKE2b-256 |
9248de3b8bf898797fc0def4af1bc01bee0c1fbf38c59e34e3be0e6762e9b130
|
File details
Details for the file tiny_agent_os-0.73.0-py3-none-any.whl.
File metadata
- Download URL: tiny_agent_os-0.73.0-py3-none-any.whl
- Upload date:
- Size: 2.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
059f7ffb76a79f5d0028ea04913769ad18b8c05d4358b69dacb70abc20fcd27c
|
|
| MD5 |
d5bf2a40676a980b7ea4f6ffface2cdd
|
|
| BLAKE2b-256 |
0329b38d981e6f3463d65626fc02e6163402a4329c004e2bfbd3e55664849bbe
|