Sessions
Durable execution — configure turn limits, memory, and human approval for your agent's sessions.
Every run of a Zett agent happens inside a Cencori session. A session is the durable unit of execution: it holds the conversation, survives across turns, and is where memory and human-in-the-loop approvals live. Zett creates and drives sessions through the Cencori Sessions API on your behalf.
Configuring sessions
Add agent/sessions/config.ts with a default-exported SessionConfig:
// agent/sessions/config.ts
export default {
maxTurns: 50,
idleTimeoutMs: 300_000,
requireApproval: false,
memory: {
strategy: "lastN",
limit: 20,
},
};Fields
interface SessionConfig {
maxTurns?: number; // cap turns in a single session
idleTimeoutMs?: number; // auto-close after inactivity
requireApproval?: boolean; // pause for human approval before tool calls
memory?: {
strategy: "lastN" | "summary" | "keyFacts";
limit?: number;
};
}| Field | Purpose |
|---|---|
maxTurns | Hard limit on turns per session. |
idleTimeoutMs | Close a session after this much inactivity. |
memory.strategy | How prior turns are carried forward: keep the lastN, a rolling summary, or extracted keyFacts. |
memory.limit | Bound for the chosen strategy (e.g. how many recent turns). |
requireApproval | When true, tool calls pause the session for human approval. |
Durable execution
Because the session lives on Cencori, work isn't lost between turns. A session can
pause — waiting for the next user message, or for an approval — and resume later
with its full context intact. The runtime surfaces these transitions as
protocol events: session.waiting when it's idle awaiting
input, session.completed when it ends.
Human-in-the-loop
Setting requireApproval: true routes tool calls through Cencori's approval flow:
the session pauses and emits an approval-required state, and a human approves or
rejects the action before it runs. This is the same Sessions approval mechanism
Cencori exposes to its gateway customers.
Session creation, turn submission, and streaming are wired today through the
Cencori Sessions API (POST /v1/sessions, POST /v1/sessions/:id/turns). Approval
gating and memory strategies are enforced by Cencori at run time. See
Running agents.