Skip to main content

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

Metadata

Release files for aitelier 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aitelier 0.2.1
File Size Uploaded
aitelier-0.2.1.tar.gz 17.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for aitelier 0.2.1
File Interpreter ABI Platform
aitelier-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 38.4 kB

Release files / aitelier-0.2.1.tar.gz

Download URL aitelier-0.2.1.tar.gz
Size 17.3 kB
Tags Source
SHA-256 checksum
How to use checksums
a4fc634a960ab3a32f396b0c92048eb2ec8180703e054eb74523e0733ad5bc8c
BLAKE2b-256 checksum
How to use checksums
1b3c3c3ef97fdb0396c265ef2754b0a38e80092fdb326b93deabe54ca8278264
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.6

Release files / aitelier-0.2.1-py3-none-any.whl

Download URL aitelier-0.2.1-py3-none-any.whl
Size 21.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9ae2328bfed7442a05848cd8b416a841820c31bcfba45ea225af2b1bfdbd1519
BLAKE2b-256 checksum
How to use checksums
ee18587299ec92d2e391023d9a339ddecfc4e57e3e3a1ef89f1da9a854673d4c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.6

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page