P

Build Agents as simple as Python Classes

  • Create Object Oriented Agents using the paradigms you know.
  • Make existing Software agentic instead of rewriting.
  • Test Agents the same way you test Software.
Why This Changes Everything

Every developer who knows OOP can build agentic software.

Peteos makes classes agentic. They interact with their class members. Extend and specialize agents using inheritance. Compose to build multi agent systems easily.

class GroceryList(AgenticObject):
    "You manage a grocery list. Add items, list them, clear."

    def __init__(self):
        super().__init__()
        self._items: dict[Grocery, int] = {}

    @tool
    def add_item(self, item: Grocery, quantity: int):
        self._items[item] = self._items.get(item, 0) + quantity
        return f"Added {quantity} {item.value}s."

groceries = GroceryList()
await groceries.invoke_agent("Add 2 milk and 3 eggs to the list.")
await groceries.invoke_agent("How much will my shopping cost?")
Process-tuned AI Agents

The future isn't bigger models. It's smarter agents.

Give each Agentic Object a specific purpose following Separation of Concerns. Agent-tuned models are orders of magnitude more efficient than generalists. Use the peteos platform to auto calibrate agent specific models. Learn More

@agentic_object(model="google/gemma4") 
class MathExpert(AgenticObject): """You are a solver for mathematic problems.""" ...
@agentic_object(model="zai/glm-4.7")
class RegExpert(AgenticObject): """You are an expert for building regular expressions.""" ...
The Platform

The library is how you build. The platform is how you get it right.

Peteos platform evaluation dashboard showing model performance metrics

Test-driven model optimization

Write your tests the way you always have. The platform finds the right model for the job automatically.

Invocation observability

Watch agents reason, call tools, and modify state through structured trace logs. Every invocation tells a story.

Granular cost tracking

Know exactly what each object costs, token by token. Every invocation is tracked so you can optimize spend.

Get Started

Three lines of code to Agentic Classes.

from peteos import AgenticObject

class MyAgent(AgenticObject): """You are a helpful assistant."""

@tool def process(self, data: str): return f"Processed: {data}"

agent = MyAgent()
result = await agent.invoke_agent("Process this data.")