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.
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?")
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.""" ...
Build Agents on top of a powerful SDK
Make use of ready-to-use agentic building blocks to get started without building from scratch.
Stream Processing
Observe streams and trigger condition-based actions - Enables universal agentic stream processing
Text Management
Shared text buffers for text editing and web navigation - Enables universal reading, searching and editing
Image Handling
Shared image buffers for processing images from disk, taking screenshots and observing cameras - Enables universal Agentic Vision
Composable Inheritance
Build complex agents by inheriting abilities of simpler ones - Enables shared Stream-, Text- and Image Buffer usage
The library is how you build. The platform is how you get it right.

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.
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.")