Welcome

Tardigrade is a TypeScript framework for building modular agents around an immutable event log.

Why Tardigrade?

Composability

Add tools, code execution, budgets, compaction, and replies as independent components.

Strongly typed, built on Effect

Typed services and Layers make each component's dependencies explicit. A missing service fails at compile time.

Let it crash

A durable host derives unfinished work from the stored log. After a crash, the agent resumes the work it still owes.

Scalable

Every agent can run as a durable object. Scale from a single agent to swarms of agents.

Inspect and improve every run

The log at the core supports native debugging, replay, and experiments with state forked from any checkpoint.

Infinite memory

The event log can serve directly as an agent's memory. It keeps model context bounded while giving the agent programmatic access to its complete history.

Philosophy

Simplicity scales

A good primitive is one that is simple enough but allows for complex behavior through composition. Tardigrade's core primitive is a component, which could be defined as a function of the event log.

{view, transitions}=f(event log)\{\text{view},\ \text{transitions}\} = f(\text{event log})

Mathematically rigorous

Everything built in Tardigrade will be mathematically rigorous. We use TLA+ for temporal modelling and fast-check for property testing of components. We're also experimenting with a more TS-native version of TLA+. Eventually we want to make it possible for you to easily build formally verifiable agent harnesses.

Maximally bitter lesson pilled

Interfaces are inherently restrictive. We asked ourselves what the most uncompressed interface is, and we arrived at the event log. This sets a great floor for every generation of models, allowing for a ceiling that scales with a model's capability.

Don't reinvent the wheel

We're big fans of Effect TS, as you might tell just from the way the docs are structured. We also took a few leaves from their own ethos (including this and the next). We want to take lessons from the past, including automata theory, pi calculus, state machines, and Erlang/OTP, and build something practical for the community.

Enjoy building!

New models may come and go, but we keep pushing new frontiers by questioning the status quo. We want Tardigrade to be a tool for you to continue pushing frontiers in your domain, alongside each new generation of models.

Where next

  1. Read Why Tardigrade? for a deeper understanding of the framework's design.
  2. Follow the Quickstart to start building your first durable agent.
  3. Read Concepts to use Tardigrade effectively.