Agent Kit | Tigris Object Storage Documentation

Agent Kit Overview

Agent Kit is a TypeScript library that packages storage workflows for AI agents on Tigris.

Agents need more than object storage. They need isolated storage workspaces they can write into without stepping on each other, snapshots they can roll back to when a run goes sideways, scoped credentials so a single compromised key doesn't expose the whole dataset, and events that fire when another agent finishes its work. Each of those is a handful of API calls against @tigrisdata/storage and @tigrisdata/iam. Agent Kit bundles them into four primitives — forks, workspaces, checkpoints, and coordination — that match how agent systems are built.

Primitives

Agent Kit composes @tigrisdata/storage for the object storage layer and @tigrisdata/iam for scoped access keys — nothing more.

Installation

To install Agent Kit, use one of the following commands:

npm install @tigrisdata/agent-kit
pnpm add @tigrisdata/agent-kit
yarn add @tigrisdata/agent-kit

Configuration

Every function takes an optional config parameter. Omit it and the underlying SDKs read credentials from the environment. Storage and IAM share the same access-key env vars:

# Required
TIGRIS_STORAGE_ACCESS_KEY_ID=tid_...
TIGRIS_STORAGE_SECRET_ACCESS_KEY=tsec_...

# Optional override
TIGRIS_STORAGE_ENDPOINT=https://t3.storage.dev

Or pass a config object inline:

import { createWorkspace } from "@tigrisdata/agent-kit";

const { data, error } = await createWorkspace("agent-run-42", {
  config: {
    accessKeyId: "tid_...",
    secretAccessKey: "tsec_...",
  },
});

Every function returns a TigrisResponse<T> — a discriminated union of { data: T } on success or { error: Error } on failure. No exceptions are thrown; check result.error before reading result.data.

Forks API

Create Forks

createForks snapshots the source bucket once, then provisions N forks from that snapshot. Each fork is a new bucket, optionally paired with a scoped access key.

import { createForks } from "@tigrisdata/agent-kit";

const { data: forkSet, error } = await createForks("training-data", 5, {
  prefix: "eval-run-42", // optional
  credentials: { role: "Editor" }, // optional
});

Without a prefix, fork bucket names default to ${sourceBucket}-fork-${timestamp}-${i}.

Workspaces API

Create a Workspace

import { createWorkspace } from "@tigrisdata/agent-kit";

const { data: workspace, error } = await createWorkspace("agent-run-abc", {
  ttl: { days: 1 }, // auto-expire objects after 1 day
  enableSnapshots: true, // opt in to snapshots
  credentials: { role: "Editor" }, // scoped access key
  access: "private", // default is private
});

Checkpoints API

Take a Checkpoint

import { checkpoint } from "@tigrisdata/agent-kit";

const { data: ckpt, error } = await checkpoint("training-data", {
  name: "epoch-50", // optional label
});

Coordination API

Configure Notifications

import { setupCoordination } from "@tigrisdata/agent-kit";

const { error } = await setupCoordination("pipeline-bucket", {
  webhookUrl: "https://my-service.com/webhook",
  filter: 'WHERE `key` REGEXP "^results/"', // optional
  auth: { token: process.env.WEBHOOK_SECRET }, // optional
});

Troubleshooting

"Snapshots are not enabled on bucket …" from createForks or checkpoint. Enable via tigris buckets create <name> --enable-snapshots, or the Tigris Console.

createForks returns fewer forks than requested. Bucket creation stopped partway through — common issues include a naming collision or a project-level bucket quota.

Resources