Skip to main content
The Quickstart ran an agent inside a world someone else built. This page opens that world up. You will change a fact and watch the grading follow, then add a task of your own. Both take a few minutes, and between them they explain most of how Silo works. Everything below continues from the demo environment created in the Quickstart.

Look inside

None of this is library code. It was copied into your project and it is yours to edit.

Change a fact, and watch grading follow

Run TASK-004 and note what the verifier expected:
Now open data/opportunities.json and make one opportunity bigger:
data/opportunities.json
Run exactly the same command again:
Nothing but a number in a JSON file changed. No code was edited. The tool reported a new figure, the verifier expected the new figure, and the run still passed. OPP-003 sits in STG-004, which carries a 75% probability, so adding $100,000 of deal value adds $75,000 of weighted value. Both sides computed that independently from the same data.
This is what “deterministic verification” buys you. The verifier does not know 507500 — it derives the answer from the seeded world using the same helpers the tools use. Had the number been hardcoded, your edit would have made the verifier confidently wrong.
Change it back before continuing.

Add a task of your own

A task is a JSON file. Adding one is adding a file.
The instruction names who and what, and stops there. It does not say which tool to use or what the answer is.

Write the verifier that grades it

The generated check fails on purpose, so an unimplemented verifier can never report a pass. Replace it:
verifiers/VER-007.ts
openPipelineFor is a domain helper that already exists in state.ts — the same one the pipeline_summary tool uses. That is the pattern: write the rule once, and let both the tool and the grader read it.

Check your work before running

Seven tasks and seven verifiers, so the new pair is wired up. Validation compiles the whole environment, not just the parts this task touches.

Run it

pipeline.agent.js

Prove the verifier can fail

A check that passes on no work is not a check. Point an agent that does not answer at the same task and confirm it fails. Do this once for every verifier you write. It is the cheapest insurance in the whole workflow, and it is the step most often skipped.

Where to go next

Environments

How data, state, tools, tasks and verifiers fit together.

Build From Scratch

A complete environment from an empty template.

Bring Your Own Agent

Wire up a real model loop.

Scoring

What pass, fail and reward actually mean.