Metadata-Version: 2.4
Name: tono
Version: 0.1.3
Summary: A framework for building autonomous AI agents
License-File: LICENSE
Requires-Python: >=3.11
Requires-Dist: bs4>=0.0.2
Requires-Dist: docstring-parser>=0.16
Requires-Dist: httpx>=0.27.2
Requires-Dist: python-dotenv>=1.0.1
Requires-Dist: rich>=13.9.2
Requires-Dist: typer>=0.12.5
Provides-Extra: anthropic
Requires-Dist: anthropic>=0.37.1; extra == 'anthropic'
Provides-Extra: openai
Requires-Dist: openai>=1.52.0; extra == 'openai'
Description-Content-Type: text/markdown

# Tono

[![image](https://img.shields.io/pypi/v/tono.svg)](https://pypi.python.org/pypi/tono)
![GitHub License](https://img.shields.io/github/license/CilantroStudio/tono)
[![Build](https://github.com/CilantroStudio/tono/actions/workflows/build.yaml/badge.svg)](https://github.com/CilantroStudio/tono/actions/workflows/build.yaml)
[![Discord](https://img.shields.io/badge/Discord-%235865F2.svg?logo=discord&logoColor=white)](https://discord.gg/954vZeZ4)


Tono is a framework for building autonomous AI agents. 

## Features

- 🔋 Batteries included - Tono provides a basic set of tools for building autonomous AI agents
- 🚀 Automatic tool definition inference from function definition and reStructuredText docstrings
- ✨ Support for OpenAI models
- ✨ Support for Anthropic models

## Installation

You can install Tono using pip:

```bash
pip install "tono[all]"
``` 

If you only want to use the OpenAI models, run:

```bash
pip install "tono[openai]"
```

Alternatively, if you would only like to use the Anthropic models, run:

```bash
pip install "tono[anthropic]"
```

## Quickstart

Here is a simple example of how to use Tono to build an autonomous AI agent:

```python
import openai
from tono import Agent
from tono.models.openai import CompletionClient
from tono.tools import http_request, write_to_file


openai_client = openai.OpenAI(api_key="your-api-key")
client = CompletionClient(client=openai_client)

agent = Agent(
    name="gpt-agent",
    client=client,
    tools=[write_to_file, http_request],
    context=[
        {
            "role": "assistant",
            "content": "You are a helpful assistant that...",
        }
    ],
)

agent.start(objective="Use the supplied tools to...")
```


## Contributing

We are passionate about supporting contributors of all levels of experience and would love to see you get involved in the project. See the [contributing guide](/contributing.md) to get started.

## License 

Tono is licensed under the [MIT License](/LICENSE).