# Storage for the things agents make.

Code, documents, designs, memory, datasets and checkpoints, versioned on every write and traceable to the agent, model and session that produced them. Reachable over native Git, an S3-compatible API, or the SDK.

[Get an API key](https://console.constal.ai/sign-up) · [Read the docs](https://constal.ai/docs/resources)

## An example artifact ledger

| Artifact | Version | Produced by | Derived from | Tier | Written |
| --- | --- | --- | --- | --- | --- |
| reports/q3-summary.md | v12 | analyst-v4 ses_8f2a | sales/q3.parquet, analyst-v4/memory.md | hot | 4s ago |
| analyst-v4/memory.md | v148 | analyst-v4 ses_8f2a | analyst-v4/memory.md v147 | hot | 4s ago |
| app/src/routes.ts | v31 | swe-7 ses_c01d | app/src/routes.ts v30 | hot | 12s ago |
| design/onboarding.fig | v6 | designer-2 ses_b77e | design/onboarding.fig v5 | hot | 1m ago |
| adapters/sft-run-19.safetensors | v1 | trainer job_19 | sales/q3.parquet, evals/suite-4.jsonl | cold | 2h ago |
| sales/q3.parquet | v3 | ingest ses_2210 | none | cold | 3d ago |

Illustrative data. Every row is an immutable version; every version knows who wrote it and from what.

## Stores

Code was the first thing agents made. It is no longer most of it.

### Generated code

Whole repos or single files. Clone and push over Git, or stream files through the API with no checkout.

### Documents

Markdown, PDFs, spreadsheets, drafts. Line diffs for text, structural diffs for JSON and tables.

### Designs and media

Images, video, renders and design files. Large objects are chunked and deduplicated across versions.

### Agent memory

Memory files, scratchpads and tool logs, versioned per agent and per session, so a mind can be replayed or rolled back.

### Datasets and evals

Fork a dataset, run a job, keep the lineage between the input and the score.

### Model checkpoints

Adapters and full weights from post-training runs, tied to the data and config that produced them.

## Writes

Every write is a commit. Every commit knows where it came from.

1. **Write through any door.** An SDK call, a `git push`, or an S3 `PutObject`. The result is reachable through all three afterwards.
2. **Versioned by content.** Each write is hashed, deduplicated and committed with a quorum across replicas. Branch, fork and diff any artifact, including binaries.
3. **Traceable later.** Attach the agent, model, session and parents on write. Ask the lineage graph: what made this, and what did it go on to make?

```typescript
import { ArtifactStorage } from '@constal/artifact-storage'

const store = new ArtifactStorage({ org: 'acme', key })

const report = await store.put('reports/q3-summary.md', body, {
  producedBy: { agent: 'analyst-v4', session: 'ses_8f2a' },
  derivedFrom: ['sales/q3.parquet@v3', 'analyst-v4/memory.md@v148'],
})

report.version   // 12
report.sha256    // 9e1f…c3a0
```

## Limits and pricing

Thousands of agents writing at once is the normal case. You pay for bytes and bandwidth.

| Detail | Value |
| --- | --- |
| Total storage | Unlimited |
| Artifacts per org | Unlimited |
| API and Git rate limits | None |
| Concurrent writes per artifact | [Contact us](mailto:sales@constal.ai) |
| Max artifact size | [Contact us](mailto:sales@constal.ai) |
| Version history | Unlimited |
| Sync with GitHub, S3, GCS | Yes |

| Detail | Value |
| --- | --- |
| Hot storage (touched in 7 days) | [Contact us](mailto:sales@constal.ai) |
| Cold storage | [Contact us](mailto:sales@constal.ai) |
| Inbound (put, push) | [Contact us](mailto:sales@constal.ai) |
| Outbound (get, clone, fetch) | [Contact us](mailto:sales@constal.ai) |
| Lineage queries, diffs, webhooks | Free |
| Seats, requests | Not billed |
| Bring your own cloud | [Contact us](mailto:sales@constal.ai) |

Storage is deduplicated across versions, so you pay for unique bytes. Metered hourly, invoiced monthly. Commitment discounts and dedicated tenancy on enterprise plans.

## Durability

Your users expect their work to still be there.

Writes commit with a quorum across replicas before they are acknowledged. Failover is transparent, migrations have no downtime, and nothing in the write path is shared between tenants.

| Detail | Value |
| --- | --- |
| Uptime SLA | [Contact us](mailto:sales@constal.ai) |
| Replicas per write | [Contact us](mailto:sales@constal.ai) |
| Per-tenant encryption keys | Yes |
| Audit log on every read and write | Yes |
| SOC 2 Type II | [Contact us](mailto:sales@constal.ai) |
| Data residency | [Contact us](mailto:sales@constal.ai) |

## Give your agents somewhere to keep their work.

Create an org, mint a key, make a versioned write. [Contact us](mailto:sales@constal.ai) for preview storage allowances.

```sh
npm i @constal/artifact-storage
pip install constal-artifact-storage
go get constal.ai/sdk/artifact-storage
```

[Get an API key](https://console.constal.ai/sign-up)
