Provider-agnostic
Anthropic, OpenAI, or local endpoints — one message model. Swap the model, keep the agent.
Batteries included, yet fully decomposable — run an agent in three lines with query(), or assemble your own from the kernel primitives. One kernel, every model.
Anthropic, OpenAI, or local endpoints — one message model. Swap the model, keep the agent.
From ModelProvider to Sandbox — one implementation per role, hot-swappable.
Retry, permission, compaction — layered around every call.
One run, one AgentEvent stream — for logging, UI, and metrics.
Event-sourced sessions you can resume and rewind — restarts lose nothing, mistakes roll back.
Isolated subagent sessions work subtasks in parallel; the parent context stays clean.
One Zod schema turns the final answer into typed, validated data.
A permission gate before execution, an OS sandbox around it.
Pluggable codecs give local small models real tool calls.