Skip to main content

An atelier for AI Agents.

Project description

aitelier 🎨🤖

An atelier for AI Agents running on your Mac thanks to mlx-llm.

How to install it

pip install aitelier

Why aitelier?

aitelier is not just another agent library — it’s my personal playground to learn how AI agents work

  • Learning by doing 🛠️: I want to understand every part of building AI agents. Instead of just using existing frameworks, I’m creating this library to figure out how things work from the ground up.

  • Exploration, not duplication 🧐: aitelier isn’t meant to compete with other agent libraries. My goal is to learn, not to replace. Each update happens when I discover a new concept or method I want to explore.

  • Deep understanding through practice 🧠: building from scratch helps me go beyond the surface. By recreating different paradigms, I can focus on truly understanding the details and improving my AI development skills.

aitelier will grow as I dive into new ideas and challenge myself to learn more. 🎯

I wrote an article about the motivation behind aitelier and how I implemented the first version of the library. You can read it here.

Agents as FSMs

In aitelier, agents are implemented as Finite State Machines (FSMs). Each agent has a set of states and transitions that define how the agent processes the input and produces the output.

Currently, aitelier supports two types of agents:

  • Agent: A basic agent that takes a query and returns a response based on the available tools
  • ReAct Agent: An agent the follows the Reasoning and Act paradigm paper with available tools

Agent Example

from aitelier.model import LLM
from aitelier.agents import Agent
from aitelier.tool import Tool

@Tool
def multiply(a: float, b: float) -> float:
    return a * b

model = LLM("llama_3_2_3b_instruct")
agent = Agent(model=model, tools=[multiply])
agent("What is 3 multiplied by 4?")

ReAct Agent

The ReAct agent is a more advanced agent that follows the Reasoning and Act paradigm. The agent goes through the Think, Act, Observe states to produce the final answer based on a set of tools.

ReAct Agent in action

This is how you can use the ReAct Agent in aitelier:

from aitelier.model import LLM
from aitelier.agents import ReActAgent
from aitelier.tool import Tool

@Tool
def divide(a: float, b: float) -> float:
    if b == 0:
        return "Division by zero is not allowed"
    return a / b

model = LLM("deepseek_r1_distill_llama_8b")
agent = ReActAgent(model=model, tools=[divide])
agent("What is 10 divided by 2?")

Supported Models

aitelier natively supports mlx-llm and Claude (with own API key)

Examples

  1. How to create Custom Agent as FSM - Practical Example

Known Issues

  • aitelier is in active development, so expect bugs and breaking changes
  • The library is currently only tested on macOS
  • All the agents depend on the LLM model - LLMs with fewer parameters are way more buggy than the larger ones since their behavior is less predictable - my advice is to use the largest models available

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aitelier-0.2.1.tar.gz (17.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aitelier-0.2.1-py3-none-any.whl (21.1 kB view details)

Uploaded Python 3

File details

Details for the file aitelier-0.2.1.tar.gz.

File metadata

  • Download URL: aitelier-0.2.1.tar.gz
  • Upload date:
  • Size: 17.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.6

File hashes

Hashes for aitelier-0.2.1.tar.gz
Algorithm Hash digest
SHA256 a4fc634a960ab3a32f396b0c92048eb2ec8180703e054eb74523e0733ad5bc8c
MD5 3302f6f125bed7662193e453072d9fe9
BLAKE2b-256 1b3c3c3ef97fdb0396c265ef2754b0a38e80092fdb326b93deabe54ca8278264

See more details on using hashes here.

File details

Details for the file aitelier-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: aitelier-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 21.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.6

File hashes

Hashes for aitelier-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9ae2328bfed7442a05848cd8b416a841820c31bcfba45ea225af2b1bfdbd1519
MD5 f41ecbb9b7c8cf948770a583208263d5
BLAKE2b-256 ee18587299ec92d2e391023d9a339ddecfc4e57e3e3a1ef89f1da9a854673d4c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page