Skip to main content
Version: Next 🚧

CubePi

CubePi is a Pythonic, async-native agent framework designed for high performance, readability, and production-grade persistence. It provides a leaner alternative to graph-based agent runtimes by modeling agent logic as a linear while loop that developers can easily trace and debug.

pip install cubepi

Then jump to the Quick Start to ship a working tool-using agent in under five minutes.

What you get

  • Plain async functions, not graph nodes. The agent loop is a while loop over message turns. You build tools as async def functions; the framework routes calls and executes them in parallel.
  • One streaming pattern. Every provider yields StreamEvents through a MessageStream. You iterate it with async for. No callback registries, no separate handler types for text vs. tools.
  • Append-only checkpointing. Persistence writes the new messages on each turn, not the full transcript. O(1) DB I/O regardless of conversation length — SQLite for laptops, Postgres for production.
  • Native multi-provider. Anthropic and OpenAI ship in the box, through a Provider Protocol. Add a new provider in one class.
  • Seven-hook middleware. transform_context, convert_to_llm, transform_system_prompt, before_tool_call, after_tool_call, should_stop_after_turn, after_model_response — each with explicit composition rules. No mystery node ordering.
  • MCP loaders. Point at any Model Context Protocol server (HTTP or stdio) and get back a list of AgentTools.
  • OpenTelemetry built in. Attach a Tracer and every prompt produces a tree of OTel spans aligned with the GenAI Semantic Conventions — works with Jaeger, Tempo, Honeycomb, Datadog, or any OTLP-compatible backend. No payloads recorded by default; opt in with record_content=True and a redact callback.

Where to go next

If you want to…Start here
Install and run your first agentGetting Started → Installation
Understand the building blocksGetting Started → Core Concepts
Wire a real tool-using agentGuides → Building Your First Agent
Persist a conversation across restartsGuides → SQLite Checkpointing
Ship traces to Jaeger / Tempo / HoneycombGuides → Tracing
Look up a specific symbolAPI Reference
See full working examplesRecipes
Port an existing langgraph agentMigration → From langgraph

Status

You are reading the Next 🚧 channel — unreleased docs that track the main branch. APIs documented here can still change before they ship in a tagged release.

The latest released version is v<PackageVersion/> (switch to it from the version picker, top-right). The native OpenTelemetry tracing module (guide →) — Tracer, Meter, content recording, MCP CLIENT spans, per-run tracing_context tags — landed in 0.4.

Source, issues, and discussion live on GitHub.