Sage2 is an API product from Levanto Labs that turns live human language into structured data and decisions your software can act on. It is built for developers who need their applications to understand what a customer has said, extract the specific details that matter, and keep a running decision about what should happen next. The launch announcement describes it as extraction and streaming decisions for software that needs to act on human language, delivered as two separate API operations that work together inside an application. Rather than asking a language model to both answer and supply machine-readable facts, Sage2 supplies the fields and the decisions while the language model responds and your own code validates and executes the next step.
The problem Sage2 addresses is a familiar one for anyone building conversational software. A customer tells your agent what they want, and the application then needs three things at once: the details required to find an offer, a decision about what to do next, and a way to keep both current when the customer changes their mind. Language models are good at responding in prose, but an application needs machine-usable facts and a stable answer to a business question before it can call a tool or prepare a quote. Sage2 is positioned as the set of building blocks that fills that gap, so developers do not have to infer structure from free text or rebuild the picture of the conversation each time something changes.
The first building block is extraction, described in the announcement as the words-to-data half of the product. A developer defines the fields the application needs, giving each field a type and a definition, and posts the raw text to the extraction endpoint at sage.levanto.ai/v1/extract with an API key. In the published example, a customer says "I want a midsize SUV for up to $450 a month," and the request asks for three fields: a vehicle of type text, a monthly_limit of type money, and a term of type duration. Sage2 returns the vehicle as "midsize SUV" and the monthly limit as $450 USD, while the loan term comes back as null because the customer has not specified one. When the customer later adds "over 60 months," the term becomes P60M, an ISO 8601 duration that code can use directly. Supported types include text, numbers, money, dates, times, and durations, and a request can ask for one value or for every matching mention.
Each extracted value is linked to its position in the input, and each result carries the text it came from plus a probability. That traceability lets an application inspect the source, check the result, and ask for anything still missing before it calls a tool — the null loan term in the example is exactly the signal a workflow would use to prompt the customer for a duration. The announcement also notes that extraction returns typed values rather than loose strings, which means downstream code can compare, format, and validate them without additional parsing.
The second building block is streaming decisions. An answer can change while a conversation is still happening, so Sage2 lets a server connect to wss://sage.levanto.ai/v1/stream, authenticate with the same bearer key, and send a start frame that declares the questions to be answered. In the example, a single yes/no question asks whether the customer has explicitly accepted the current offer and asked for a quote. The client then appends new text as it arrives, and Sage keeps the accumulated context so only the new text needs to be sent. In the documented scenario, an offer alone is not acceptance, an objection keeps the answer at "no", and when the customer accepts the revised offer the answer flips to "yes". Sessions support up to 32 questions and 16,384 tokens of context and questions.
The two operations are designed to be composed. The announcement lays out a three-step pattern: extract the customer's requirements such as vehicle, budget, and term; decide whether the customer has agreed; and act, with your own code preparing the quote. Extraction and streaming decisions are separate API operations that work together in the application: you extract the requirements, search eligible offers, and keep checking whether the customer wants to proceed; when the answer changes, your code can prepare the quote. Responsibility is split deliberately — your language model responds, Sage supplies the fields and the decisions, and your application validates the offer and executes the next step. Sage2 also supports reasoning, web grounding, and vision in beta.
The methodology is configuration over prompting. Instead of engineering a prompt that asks a model to both converse and emit structured output, a developer declares the schema — field names, types, and definitions for extraction, and question identifiers, kinds, and instructions for decisions. Because questions are declared up front and carried inside a session, the decision stays a stable, inspectable object rather than a fresh interpretation of the whole transcript on each turn. The client only appends new text, which keeps the integration small and the context consistent. The announcement recommends starting with one workflow, defining its fields and questions, and evaluating the results on representative inputs before connecting them to automated actions.
For users, the payoff is software that knows what to do next. Typed values with source positions and probabilities make results auditable and let an application detect missing information instead of guessing. Streaming answers let a workflow react the moment intent changes rather than after the conversation ends, so an application can hold an offer, respond to an objection, or prepare a quote at the right moment. Keeping the decision logic in the API means the response text and the business decision stay in sync even as the customer negotiates. And because extracted values arrive in standard forms such as ISO 8601 durations, they can flow directly into existing code paths.
The announcement describes several concrete settings. In auto financing, a customer states a vehicle and a monthly budget, the application extracts those figures, searches eligible offers, and watches for acceptance before preparing a quote; the term can be requested when it is missing. The same pattern is said to work for support requests, document processing, and agent tool selection, where an agent must choose the next tool based on what a user has said. Developers can try their own inputs in the playground at playground.levanto.ai and copy the cURL or WebSocket examples into an integration.
Sage2 is aimed at developers building applications that must act on human language — the announcement speaks directly to teams integrating APIs rather than to end users. Both operations are available today with an existing Sage API key, and the documentation for extraction and streaming is linked from the launch post. A free start is offered through the Levanto platform sign-in, where you can continue with Google or with an emailed six-digit code; the post itself does not publish plan or pricing tiers.
Sage2's value proposition is narrow and practical: two APIs, one for turning words into typed data and one for keeping a decision current as a conversation streams in, composed by your own code into a workflow that can act. For teams that need reliable structure and an up-to-date answer rather than more prose, that split between extraction, decision, and action is the whole point.