Skip to main content

CASE STUDIES / OWN SYSTEM / MULTI-STEP AGENT OR WORKFLOW

A multi-agent automation system with staged changes and guardrails

Production

  • Try it
  • Understand it
  • Verify it
  • Hire async

432 work items closed Measured out of 587 tracked Measured, run by agents under 129 guardrail scripts Measured, with every change to shared knowledge staged first and promoted only after a check.

The problem

A single person cannot babysit many agent sessions at once. The work needs to move on its own, but an agent that can edit anything can also break anything, and it will not tell you when it does.

So the system is built around staging. An agent proposes a change, a separate promoter checks it, and only then does it land. Anything risky stops at a guardrail and waits for a person.

Constraints

  • An agent never writes to the shared knowledge store directly. It stages a proposal.
  • A promoter on the laptop is the only thing that can accept or reject a proposal.
  • Guardrail scripts run before tool calls and block the ones that are unsafe, such as touching money, deleting data or sending messages.
  • Every work item has an owner, a lease and a state, so nothing is lost or done twice.
  • A task can start from a phone, but it only runs on the laptop under the same guardrails.

Who did what

As the operator

  • Sets the rules: what an agent may do alone and what needs a person.
  • Approves anything that spends money, publishes or deletes.

I built

  • The work queue: items, owners, leases and states
  • Staged proposals and the promoter that checks them
  • The guardrail scripts and their tests
  • The bridge that carries a task from a phone chat to the laptop
  • Reports that say what was done and what is blocked

My own system, so I was the client. No partner was involved in this build.

Step through a run

Sample run of a task, no real data

A task arrives

It starts in a phone chat or at the laptop and becomes a work item with an owner and a lease.

  • Work item OK:created with an owner
  • Lease Note:held by a single agent

Guardrails check each action

Before a tool runs, a script decides if it is allowed. Unsafe actions are blocked and the reason is logged.

  • Read a file OK:allowed
  • Send a message Fails:blocked, needs a person

The agent stages a change

It writes a proposal, not the change itself. The proposal sits in a queue.

  • Proposal Note:staged
  • Shared knowledge OK:untouched

The promoter decides

It checks the proposal against the rules. A good proposal is promoted. A bad proposal is rejected with a reason.

  • Rules check OK:passed
  • Result OK:promoted

The report

The item closes with what was delivered. If something is blocked, it says what and who can clear it.

  • Delivered OK:listed
  • Blocked Note:named, with the person who can clear it

Timeline

Work items tracked
587 items, 432 closed, as of November 8, 2026 Measured
Guardrail scripts in place
129 scripts Measured
Reusable skills the agents can call
156 skills Measured
Effect on the business
No revenue figure kept Unmeasured

Scope receipt

Build record

Milestone tier
Multi-step agent or workflow
Stack
Python, TypeScript, shell guardrail scripts, a graph-backed knowledge store, Claude Code
Evidence basis
Counted from the files and the work queue on the laptop.

Done-checklist

  • An agent can only stage a change, never apply it.
  • A separate promoter accepts or rejects each proposal.
  • Unsafe tool calls are blocked before they run.
  • Every work item has an owner, a lease and a state.
  • A task from a phone runs on the laptop under the same guardrails.
  • Every closed item names what was delivered, and every blocked item names who can clear it.

What I would do differently

A rule that pointed at a guardrail script that was missing blocked every command on the laptop, not just the command it guarded. A guardrail that breaks should stop a single action, not the whole machine. The rule now is to change the guardrail directory only on the branch the laptop runs, and to merge before switching branches.

I counted finished work by what agents said they did. I now count it by what the queue shows closed, with the evidence attached.

Have a client who needs this?

I build work like this for agencies and consultants, under your brand, at a fixed partner price per milestone. Everything runs in writing.

Send a project brief Or email a written brief