Skip to main content

Environment manifest

.silo/environments/<name>/silo.environment.json

Task

.silo/environments/<name>/tasks/<id>.json

Environment contract

The module at entrypoint must export three things:
Tasks are not exported — they are discovered from tasks/*.json.

Tool

inputSchema is JSON Schema. Silo validates every call against it before run executes. Return values are cloned before reaching the agent.

Verifier

At least one required check is mandatory — a verifier returning none throws.

Agent

This shape is not currently exported as a type, so agents declare it locally. See Bring Your Own Agent.

Run artifacts

result.json

state-diff.json

result.json and state-diff.json contain no timestamps and no run ids, deliberately. That is what makes them an exact regression oracle — any difference between two runs is a real behavioural change. Do not add either.

run.json

The task is embedded in full, so a run stays interpretable even if the task file is later edited.

trace.jsonl

One JSON object per line, in order, each with seq, type and at. callId pairs a call with its result.

Termination reasons

Validation report

Each finding carries a level, a code and a message.