Tutorials
The module pages explain what each part of the platform is. These tutorials
show you how to use it — end to end, in the order you'd actually do it, with
every call given for the CLI, the
TypeScript SDK and curl.
Every step is a real API call against the single public contract — there is nothing here that only the app can do.
Before you start
You need two things for any tutorial on this page:
-
A credential. A
nat_sk_…API key, or a session JWT from Auth. -
A shell that knows about it. Every example below reads
NATURALI_TOKEN:export NATURALI_TOKEN=nat_sk_...
Pick your client once and the tabs throughout the tutorials stay on it.
Each tutorial is atomic: it delivers one complete, working value on its own, and anything it needs from earlier is a linked prerequisite rather than a repeated walkthrough.
Available tutorials
They are listed in the order a newcomer should read them — each one's Prerequisites section names what it expects you to arrive with, and links to the tutorial that produces it.
Enable naturali models
Create a project, enable the naturali model offering with one call, and prove every managed model is ready to generate.
Create a provider
Create a project, store your model credential as a secret, register the AI provider that uses it, and prove it works.
Your first agent generation
Create an agent on your provider, run one generation, and read back what it did.
Answer from your documents
Upload a document, index it, and give an agent retrieval so it answers from what you wrote rather than what the model remembers.
Answer from images and audio
Upload a photo and a voice recording, let naturali convert them to text, and give an agent retrieval so it answers from what they contain.
Give an agent long-term memory
Let an agent learn a fact from one conversation and use it in a later one, with nothing carried over but what it remembered.
Connect a Discord channel
Connect a Discord bot to an agent and prove it answers real users in direct messages.
Structured output
Constrain an agent to a JSON Schema so its generations return a validated object instead of prose.
Roll out an agent version
Change an agent as a new version, serve it to half the traffic beside the current one, see which version answered each run, and promote it in one call.
Run tools in your own code
Give an agent a tool your own code executes — the run pauses at requires_action, your code supplies the result, and the agent finishes with it.
Limit what an agent may do
Put a boundary policy on an agent so it can still read its memory but can no longer write to it, and prove the write is refused.
Run an agent on a schedule
Put an agent on a cron schedule, prove the schedule works with one fire by hand, and trace the generation it produced back to the trigger.
Orchestrate several agents
Chain three agents — one finds the facts, one drafts the reply, one checks it — into one orchestration, run it, and read what each step produced.
Branch an orchestration
Let an orchestration choose its own path — classify each message, then send it down only the branch that matches — and prove it with two runs that took different branches.
Model a process as a workflow
Turn a review process into a workflow — an agent drafts, a person sends the draft back or approves it — and read every move, including the backward one, from the task's history.
Deploy a system from a template
Declare a managed provider, a tool and the agent that calls it in one formation template, deploy it with one call, and change it in place.
Gate a tool with guardrails
Put a guardrail on a risky tool so small calls run on their own and large ones wait for a person — then approve one and watch the agent finish.
Pause a run for a human decision
Add an approval step to an orchestration so every reply waits for a person — then approve one and watch the run send it.
Run a zero-retention agent
Create an agent whose prompts and replies are never stored, and prove its runs keep tokens and cost but no content.
Debug a failed run
Take a run whose tool call failed and name its root cause — down to the single call that broke it — then prove the fix with a run that succeeds.
Replay a bad answer
Take one bad answer from a real conversation, read the turn back, branch the session at the customer's question, and re-run that exact history against a fixed agent.
Score an agent change
Build a dataset, score your agent against it, and get a pass/fail verdict plus a per-scorer delta before you ship a change.
Score open-ended answers
Grade answers that have no single right wording with a rubric judge, run the suite in the background, and read the judge's reasoning per item.
Gate a rollout on an eval
Start a staged rollout that cannot be promoted until an eval run against the new version passes — then produce that run and promote.
Cap a project's spend
Put a token budget on a project, watch it in monitor mode, then enforce it — and prove it actually refuses work before the model is called.
Cap spend per end user
Attribute agent spend to each of your end users with actors, then give every one of them their own budget with a single quota.
Invite a colleague
Give someone on your team access to a project — including someone who has never used naturali — and see them go from pending to active.