Skip to Content
How-To GuidesTypeScriptConfiguring Agent Durability (TypeScript)

Configuring Agent Durability (TypeScript)

Durable Agents (Default)

By default, all Golem agents are durable:

  • State persists across invocations, failures, and restarts
  • Every side effect is recorded in an oplog (operation log)
  • On failure, the agent is transparently recovered by replaying the oplog
  • No special code needed — durability is automatic

A standard durable agent:

import { BaseAgent, agent } from '@golemcloud/golem-ts-sdk'; @agent() class CounterAgent extends BaseAgent { private readonly name: string; private value: number = 0; constructor(name: string) { super(); this.name = name; } async increment(): Promise<number> { this.value += 1; return this.value; } async getCount(): Promise<number> { return this.value; } }

Ephemeral Agents

Use ephemeral mode for stateless, per-invocation agents where persistence is not needed:

  • State is discarded after each invocation completes
  • No oplog is maintained — lower overhead
  • Useful for pure functions, request handlers, or adapters
@agent({ mode: "ephemeral" }) class StatelessHandler extends BaseAgent { async handle(input: string): Promise<string> { return `processed: ${input}`; } }

When to Choose Which

Use CaseMode
Counter, shopping cart, workflow orchestratorDurable (default)
Stateless request processor, transformerEphemeral
Long-running saga or multi-step pipelineDurable (default)
Pure computation, no side effects worth persistingEphemeral
Agent that calls external APIs with at-least-once semanticsDurable (default)

When in doubt, use the default (durable). Ephemeral mode is an optimization for agents that genuinely don’t need persistence.

Last updated on