Frequently asked questions.
What ONTO is, how it differs from the alternatives, and how memory, consent, and on-prem deployment work in practice.
About ONTO
What is ONTO?
ONTO is an open-source agent SDK for Python, TypeScript, and Rust. It puts humans in explicit control of agent memory, consent, and tool execution. Where most agent SDKs let the model decide what to do and do it, ONTO splits those: the agent reads state and proposes actions; the human writes state and approves. It is MIT or Apache-2.0 licensed.
How is ONTO different from Claude Agent SDK, OpenAI Agents SDK, or LangChain?
ONTO defaults to open-weight models (Ollama Cloud), ships typed UPO+SMO memory rather than only conversation buffers or vector embeddings, treats Plan Mode as a first-class runtime mode, and enforces per-call consent scopes through Policy Guard. It also ships three native SDKs — Python, TypeScript, and Rust — from a single Rust core.
Can I run ONTO on-premise without sending data to any third-party API?
Yes. ONTO ships with sled (local) or Postgres + pgvector storage, fastembed for local embeddings, and Helm recipes for Kubernetes. Use a local Ollama server or any OpenAI-compatible endpoint and no data leaves your network.
Is ONTO ready for production?
ONTO is pre-1.0 (current version 0.1.0) with 238 tests across the Rust core, Python, and TypeScript SDKs. Phases 0 through 20 have shipped — the runtime primitives are stable. Until 1.0 we will make breaking changes when they improve the SDK, tracked transparently in the roadmap.
Which language SDK should I use?
Pick the one your team already writes in. All three (Python via PyO3, TypeScript via napi-rs, Rust native) share the same Rust core, so semantics are identical. There is also an HTTP server (onto-cli serve) if you want to call ONTO from a language we don't bind to natively.
How much does ONTO cost?
The framework is free and open-source. Inference cost depends on the model provider you choose — Ollama Cloud has a generous free tier, OpenAI and Anthropic bill at their published rates. ONTO ships a cost meter that gives you per-user and per-tenant rollups for SaaS billing.
Choosing ONTO vs alternatives
Why pick ONTO over the Claude Agent SDK?
The Claude Agent SDK is excellent for code-editing agents and has the deepest MCP ecosystem. ONTO wins where you need durable typed memory across sessions, multi-tenant scoping, Plan Mode as a first-class primitive, and the ability to run on open-weight models on-premise.
Why pick ONTO over the OpenAI Agents SDK?
The OpenAI Agents SDK is the right choice for voice and realtime use cases. ONTO is the right choice when you need a polyglot SDK (Python, TypeScript, and Rust from one core), durable typed memory, an honest cost meter for multi-tenant billing, and the freedom to swap providers without code changes.
Why pick ONTO over Google ADK?
Google ADK is GCP-native with declarative workflow graphs and Go/Java SDKs. ONTO is for teams that want a conversational agent loop with durable memory, open-weight defaults, and on-premise deployment freedom. Pick ADK if your team is committed to GCP and Go/Java; pick ONTO otherwise.
Why pick ONTO over LangChain or LlamaIndex?
LangChain is a chain orchestrator and LlamaIndex is a RAG framework. ONTO is an agent runtime with a typed memory model and explicit approval gates. If your problem is "retrieve documents and answer questions," LlamaIndex is the right tool. If your problem is "let an AI act on behalf of a user, with state and audit," ONTO is the right tool.
Memory, consent & Plan Mode
What is the difference between UPO and SMO?
UPO (User Personalization Ontology) is durable, typed memory: who a user is, what they prefer, what they own. SMO (Session Memory Ontology) is transient working context for the current session that auto-summarizes and promotes durable facts up into UPO. UPO answers "is this true right now?"; SMO keeps the current prompt small.
How do consent scopes actually stop a tool from running?
Every tool declares the scopes it requires. Every run carries the scopes you grant. Policy Guard checks the two before a tool executes and refuses any call whose scopes were not granted, returning a structured error you can audit. Enforcement is in the runtime, so a prompt injection cannot grant itself a scope.
Is Plan Mode just a system-prompt trick?
No. Plan Mode is a runtime mode. In plan_only mode the run halts after the agent proposes tasks — no side-effectful tool fires and no memory is written. A separate run with execute scopes, initiated after a human approves, does the work. It is an invariant of the runtime, not a prompting convention the model can ignore.
Deployment & operations
Can I run ONTO fully on-premise?
Yes. Use Sled or Postgres + pgvector for storage, fastembed for local embeddings, and a local Ollama server or any OpenAI-compatible endpoint for inference. With that configuration no data leaves your network. Helm recipes are provided for Kubernetes rollouts.
How does ONTO help with multi-tenant billing?
ONTO ships a cost meter that attributes model spend per user and per tenant, so SaaS builders can bill inference accurately without adding a separate metering layer. Domain-scoped memory keeps each tenant's facts isolated.
Which SDK should my team use?
Use the language you already write in. Python (via PyO3), TypeScript (via napi-rs), and native Rust all bind to the same Rust core, so behavior is identical. If you need a language ONTO does not bind to natively, run the HTTP server (onto-cli serve) and call it over REST.
Read the honest comparison — including where ONTO loses.
The comparison page lays out ONTO against Claude Agent SDK, OpenAI Agents SDK, Google ADK, and LangChain, and calls out the jobs where another tool is the better pick.