Skip to content
← All articles

Introducing Sage2

Put reactive intelligence in your application at runtime with streaming decisions and extraction.

Sage2 lets application developers create dynamic decision trees based off of natural language input.

Today we’re launching Sage2: extraction and streaming decisions for software that needs to act on human language.

A customer tells your agent what they want. Your application needs the details to find an offer, a decision about what to do next, and a way to keep both current when the customer changes their mind. Sage2 gives developers those building blocks.

Words → Data

01 / Extraction
Customer message

“I want a midsize SUV for up to $450 a month.”

Structured values
Vehicletextmidsize SUV
Monthly limitmoney$450 USD
Loan termdurationNot provided
Recorded Sage API responseView data ↗
Use the extraction API
curl https://sage.levanto.ai/v1/extract \
  -H "Authorization: Bearer $SAGE_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
  "content": "I want a midsize SUV for up to $450 a month.",
  "extract": {
    "vehicle": {
      "type": "text",
      "definition": "the vehicle the customer wants"
    },
    "monthly_limit": {
      "type": "money",
      "definition": "the most the customer will pay per month"
    },
    "term": {
      "type": "duration",
      "definition": "the loan term the customer asks for"
    }
  }
}'

In this example, the customer wants a midsize SUV for up to $450 a month. Extraction supplies the vehicle and budget. The loan term returns null because the customer has not specified one. Add “over 60 months” and the term becomes P60M, an ISO 8601 duration your code can use.

Define the fields your application needs. Sage2 returns typed values, the text they came from, and a probability for each result. It supports text, numbers, money, dates, times, and durations. Ask for one value or every matching mention.

Each extracted value is linked to its position in the input. Your application can inspect the source, check the result, and ask for anything still missing before calling a tool. Explore the extraction API.

Streaming decisions are faster

02 / Streaming decisions
Customer

I want a midsize SUV for up to $450 a month.

Agent

I can offer $445 per month over 72 months.

Sage decides

Has the customer accepted the offer and asked for a quote?

No
Next step: keep the conversation going
Recorded API responses · replay timing is illustrative
Use the streaming API
// Connect from your server to wss://sage.levanto.ai/v1/stream
// Authenticate with Authorization: Bearer $SAGE_API_KEY
// Then send this JSON frame:
{
  "type": "start",
  "questions": [
    {
      "id": "agreed",
      "kind": "yesno",
      "instructions": "Has the customer explicitly accepted the current offer and asked for a quote?"
    }
  ],
  "emit": "all"
}

An answer can change while a conversation is still happening. Open a streaming session, define your questions, and append new text as it arrives. Sage keeps the accumulated context, so your client only sends what is new.

Here, the question is whether the customer has accepted the current offer and asked for a quote. An offer alone is not acceptance. An objection keeps the answer at “no.” When the customer accepts the revised offer, the answer becomes “yes.”

Sessions support up to 32 questions and 16,384 tokens of context and questions. Read the streaming reference.

Building with new bricks

01Extract

Vehicle, budget, term

02Decide

Has the customer agreed?

03Act

Your code prepares the quote

Extraction and streaming decisions are separate API operations that work together in your application. Extract the customer’s requirements, search eligible offers, and keep checking whether they want to proceed. When the answer changes, your code can prepare the quote.

Your language model responds. Sage supplies the fields and the decisions. Your application validates the offer and executes the next step. The same pattern works for support requests, document processing, and agent tool selection.

Sage2 also supports reasoning, web grounding, and vision in beta.

Start building

Extraction and streaming decisions are available today with your existing Sage API key. Try your own inputs in the playground, or copy the examples above into your integration.

Start with one workflow. Define its fields and questions, then evaluate the results on representative inputs before connecting them to automated actions.

  • Sage2
  • Runtime models
  • Extraction
  • Streaming decisions

Available today

Build with Sage2.