跳到主要内容
cubepi · v0.13.0

CubePi一个 Pythonic 原生异步 Agent 框架。

CubePi 是一个 Pythonic 原生异步 Agent 框架,专为高性能、高可读性和生产级持久化而设计。 它以线性 while 循环建模 agent 逻辑,提供比图结构 agent 运行时更轻量的替代方案, 开发者可以轻松追踪和调试。

快速开始 →G Q

为什么选择 CubePi — langgraph 和 pi-agent-core 的替代方案

langgraphCubePi
抽象模型图节点 + 边 + 通道普通 async 函数 — run_agent_loop 就是一个 while 循环
流式输出基于回调,多种 handler 类型async for event in stream — 统一模式
检查点每步全量快照,序列化整个消息列表追加式 — 无论对话多长,每轮 O(1) DB I/O
依赖项langchain-core、langgraph-sdk 及传递依赖3 个核心依赖:pydantic、anthropic、openai
工具执行工具是需要手动连线的图节点声明为函数;框架自动路由并并行执行
多 Provider通过 langchain chat model 适配器原生 Provider 协议 — 内置 Anthropic、OpenAI
Middleware图级中间件,在节点进出时触发8 种类型化 hook,声明式组合规则
可观测性LangSmith / Langfuse 集成原生 OpenTelemetry — Tracer、Meter、GenAI semconv,开箱即用 OTLP / JSONL

完整对比:CubePi vs LangGraph → · CubePi vs pi-agent-core →

你好,agent。

一个 async 函数循环。一个 Provider,一个 AgentTool,即可开始流式输出。

完整快速开始 →
import asyncio
from cubepi import Agent, tool
from cubepi.providers.anthropic import AnthropicProvider

provider = AnthropicProvider(api_key="sk-...")

@tool
async def get_weather(city: str) -> str:
"Get current weather for a city."
return f"72°F and sunny in {city}"

agent = Agent(
model=provider.model("claude-sonnet-4-6"),
tools=[get_weather],
system_prompt="You are a helpful weather assistant.",
)

def on_event(event, signal=None):
if event.type == "text_delta":
print(event.delta, end="", flush=True)

agent.subscribe(on_event)
asyncio.run(agent.prompt("What's the weather in Tokyo?"))

安装

pippip install cubepi
uvuv add cubepi
poetrypoetry add cubepi
extraspip install cubepi[sqlite,postgres,mcp,tracing,tracing-otlp]
v0.13.0·py 3.11+·MIT·build 94d0ca7·● ci passing·pypi · weekly downloads via shields badge