Skip to main content

How to Safely Give AI Agents New Tools at Runtime

CJ Cummings
Co-founder & CEO, Limitr

Most systems treat "let an agent gain new tools at runtime" and "stop an agent from doing damage" as two separate problems, solved by two separate systems — a tool registry plus an approval workflow, a plugin marketplace plus a permission system bolted on afterward. In Stof, they're the same mechanism. A document can only touch what it's explicitly been handed, so a tool arriving at runtime is automatically constrained the same way everything else in the document already is — not because a permission check ran, but because there's nothing else there to reach.

The Problem With JSON Schema (And What We Did Differently)

CJ Cummings
Co-founder & CEO, Limitr

JSON Schema's core limitation isn't its syntax — it's that a schema is always a second, separate document describing the shape of a first one, and nothing forces the two to stay in agreement. Add a field to your data and forget the schema, and nothing tells you. Stof takes a different approach: #[schema(...)] attaches a validation rule directly to the field it protects, in the same document, so there's no second file that can quietly fall out of sync.

What Is a Data Runtime?

CJ Cummings
Co-founder & CEO, Limitr

A data runtime is a system that executes data directly, the same way a JavaScript runtime executes JavaScript. Instead of treating data as an inert value that some separate program has to load and interpret, a data runtime runs documents that carry their own logic — fields, types, and functions together, in one place, sandboxed and portable across whatever host embeds it. Stof is a data runtime: a superset of JSON where the data validates itself, transforms itself, and acts.

We Deserve Better Than JSON as a DSL

CJ Cummings
Co-founder & CEO, Limitr

It always starts innocently. You're creating a new config or endpoint with some dynamic behavior, thinking "keep it stupidly simple." What's simpler than JSON or TOML? Some key-value pairs, maybe some nesting — we'll actually keep it clean this time.

Any experienced programmer knows what comes next.