Agents that accumulate.

A chat session forgets everything the moment the tab closes, and every new one starts from zero. A Uai agent doesn't — it remembers, reads its own history, and reaches for the tools and models you gave it. Design it once, and it gets better at your work over time.

A chat session A Uai agent
Memory Forgets at the close of the tab Writes durable facts under its own handle, recalls them next task
Skills Whatever the vendor shipped Installed per task, invoked by name
Model Whatever the vendor picked You pick the engine, model, and effort — per agent
History This conversation only Searches the full text of its own past tasks
Tools Text out A permissioned CLI — it files drafts, claims work, exposes previews

The Store

You don't start from a blank persona.

Designing an agent from scratch is the hardest way to start, so it isn't the only way in. The Store is a catalog of ready-made roles, grouped into five categories — Engineering, Data & AI, Product & Design, Content & Marketing, Business & Ops. Click a role to read its brief; Add opens the editor pre-filled, and the persona is only created when you save — so browsing costs nothing. Add one, or design your own from nothing; the Store is a starting point, not the only door in.

Browse a role, read its brief, Add — the persona is only created when you save.

Memory

What it remembers, on purpose.

A context window is whatever's in the current conversation — it's gone the moment the task closes. Memory is different: a persona writes durable facts under its own @handle, and reads them back on its next task. Nothing is remembered by accident — an agent chooses to save something, and can search what it's already saved before deciding to write more.

There's no edit verb. To change a saved fact, an agent deletes the old one and writes a new one — a revision, not a silent overwrite, so there's always one current story rather than a history of edits nobody can audit. The surface is memory save, memory search, memory delete, each attributed to the persona's own @handle.

In the agent editor, Memory sits in its own tab next to Skills — you open it and read the actual facts that agent saved, not a summary of them or a promise that something is in there.

Skills

A skill is a document you can read before you attach it.

Beyond ready-made roles, the Store holds a catalogue of 56 first-party playbooks — written by Uai, searchable from inside the agent editor. Click one to read it before attaching; the full text copies into the agent, not a reference to it, so what you get is yours to edit afterward. A starting point, not a dependency.

Read a couple and you can tell who wrote them. Debugging method: "Reproduce first, one hypothesis at a time, bisect, verify against the repro." Database migration safety: "Expand/contract migrations: lock-safe, backfilled, reversible, never destructive." Code review checklist: "A reviewer's pass order: correctness first, style last." That's what it reads like when the person who wrote the playbook has actually done the job.

One of them closes a loop with a feature you already met: the UI verification playbook — "Verify UI work end-to-end with the in-container browser" — is the first-party skill that teaches an agent to use the agents' browser well. We ship the capability and the playbook for using it.

Once attached, a persona lists which skills it has, and an agent invokes one by name when the moment calls for it — only from the set it was actually given. In the editor, Skills is its own tab with a count on it, so you can check exactly what's installed before you hand a persona a task, not just trust that something is.

Model choice

Pick the engine, the model, and the effort — per persona.

Every persona has a default engine, model, and effort level — not one global setting for the whole crew. A changelog-sweep persona can default to something fast and cheap; an architecture-review persona to something slower and more careful.

You set that dial twice: once as the persona's default, and again when you start a task — pick the model for the job in front of you, so a routine sweep can run on the cheap model and a hard problem can get the expensive one, without touching what the persona defaults to everywhere else. Most tools make model choice a global setting, or hide it entirely; here it's per-agent and per-job. Compatibility with a runner is checked when you build a task — the runner advertises which engines and models it supports, so the picker only ever offers what's real.

One agent, mid-configuration: engine, model and effort are per-agent, and skills and memory travel with it onto every task.

Task history

It can go back and check its own work.

Memory is what an agent chose to write down. History is the raw record underneath it — every past task that agent worked on, searchable in full, not just the parts it decided were worth saving. Before reinventing something, an agent can search its own history instead of guessing; before you trust a summary, you can go read the actual task it came from. You want both — one is curated, the other is the receipts.

The search is scoped to that agent's own past tasks, not the whole workspace's — so two agents don't get to read each other's history by default.

CLI & permissions

Why an agent needs permissions at all.

Roles & permissions is one catalog for what a person may do and what an agent may do — same permission ids, so the two can't drift apart. Safe capabilities are granted by default; destructive ones need an explicit grant. Give a contractor's persona tasks.create and not todo.write, and the command isn't there to run.

Here's what an agent actually reaches for — a real command surface, not just a chat window:

uai projects list · people list
uai task list | create | close | search | history | read
uai memory search | save | delete
uai todo list | add | edit | remove | claim | done | reopen | unclaim
uai preview add <name> <containerPort>
uai project create --name <n> --repo <git-url>
uai react heart|check|x [--msg #id]
uai whoami
  • Work is claimed, not grabbed. A shared punchlist — todo list / add / claim / done — lets agents and people split up a backlog: claim an item before starting it, so two agents don't collide on the same work, and the human watches the same list.
  • It can expose its own dev server mid-task. uai preview add <name> <port> — a live preview, without asking someone to set one up.
  • It can acknowledge without spending a turn. uai react heart|check|x is a lightweight ack that wakes nobody — a small detail, and a true one, about not burning a whole reply to say "got it."

Connections

What it can reach is decided by where it runs.

The CLI above is what an agent runs. Connections are what it can reach — Linear, Slack, Notion and the rest, over MCP, each one switched on or off by service and revocable on its own. Those vendors bill you directly under their own terms; we don't sit in the middle of that.

They belong to the runner, not to the persona. The same agent has different reach on your own machine than it does on Uai Cloud, because a connection is authorized where the work actually happens — which is the same reason custody of your keys follows the runner too.

What an agent can reach through MCP is scoped per runner — connect a service once, and any crew running there can act through it.

Common questions

What does an agent actually remember between tasks?

A context window is whatever's in the current conversation — it's gone the moment the task closes. Memory is different: a persona writes durable facts under its own @handle, and reads them back on its next task. Nothing is remembered by accident — an agent chooses to save something, and can search what it's already saved before deciding to write more.

Can you choose which model an agent uses?

Yes. Every persona has a default engine, model, and effort level — not one global setting for the whole crew. You set that dial twice: once as the persona's default, and again when you start a task — pick the model for the job in front of you, without touching what the persona defaults to everywhere else.

Is a skill something I install, or does it come with the model?

Installed into a task, not baked into a model. Skills are packaged instructions and tools that install into a task; a persona lists which skills it has, and an agent invokes one by name from the set it was actually given.

Design the agent, not just the prompt.

Memory, skills, model, history, and a permissioned CLI — set once, reused on every task.