The system
How the system worksThe DirectoryDispatchThe LedgerAI modelsAI agentsYour installationThe appThe research libraryWhat changes for your businessUse it from your softwareEverything it can do
Messaging
iMessageWhatsApp
Ads and leads
AdsCreativeLeads
Devices
Devices
Industries
RealtorsRestaurantsHome services
Explore
How it worksPermissions and limitsCompareSet upQuestionsText me

AI agents · separate AI programs that take tasks

Separate AI programs that take a task and report back.

AI agents are separate programs, each running an AI model. You give one a task by typing it into a row of a shared spreadsheet; it does the work and writes its answer in the next column. A task is closed only when there is a real answer.

  • A task is a spreadsheet rowtyped into the agent’s own tab
  • The answer appears next to itin the next cell of the same row
  • Closed only by a real answernot by the agent saying it is done
  • A failure becomes a new tasknaming what allowed it

Live, read from this site just now · 11:06:31 AM

7AI agents connected to this system
This systemits Directory · its Ledger · its task list
Agent 1
Agent 2
Agent 3
Agent 4
Agent 5
Code Mode workbook
Kernel

The names are read from this system just now. Each agent is a separate program with its own Directory, Ledger and access keys. The drawing shows how they connect, not what each one is doing right now.

AI agents, explained three ways

Each AI agent is a separate program running on Cloudflare’s servers.

AI agents are separate programs, each running an AI model. You give one a task by typing it into a row of a shared spreadsheet; it does the work and writes its answer in the next column. A task is closed only when there is a real answer.

Each agent has its own Directory and its own Ledger, and each of its settings is a spreadsheet cell: type in the cell to change it. When a task fails, a new task is created that says what went wrong.

Each agent is its own Cloudflare Worker with its own storage and keys, connected through a shared workbook. Agents have changed and deployed their own code and added their own tests; work is accepted when its tests pass against the live system.

The AI agents

The AI agents connected to this system right now.

7 AI agents are connected to this system as this page loads. Each has its own Directory, its own Ledger and its own access keys, and waits for a new row in its own spreadsheet tab.

Agent 1

  • its own Directory
  • its own Ledger
  • its own access keys
YOU SAID
Waits for a new row in its tab

Agent 2

  • its own Directory
  • its own Ledger
  • its own access keys
YOU SAID
Waits for a new row in its tab

Agent 3

  • its own Directory
  • its own Ledger
  • its own access keys
YOU SAID
Waits for a new row in its tab

Agent 4

  • its own Directory
  • its own Ledger
  • its own access keys
YOU SAID
Waits for a new row in its tab

Agent 5

  • its own Directory
  • its own Ledger
  • its own access keys
YOU SAID
Waits for a new row in its tab

Code Mode workbook

  • its own Directory
  • its own Ledger
  • its own access keys
YOU SAID
Waits for a new row in its tab

Kernel

  • its own Directory
  • its own Ledger
  • its own access keys
YOU SAID
Waits for a new row in its tab

A new agent is a copy

A new AI agent is made by copying one of these. The copy is a separate program with its own Directory, Ledger and access keys, its own tab and its own spreadsheet.

Giving an agent a task

You give an AI agent a task by typing it into a spreadsheet row.

Each AI agent has its own tab in a shared spreadsheet. You type the task in a new row; the agent’s answer appears in the next cell of the same row.

Shared spreadsheetone tab per AI agent
B2Type what you want in YOU SAID.
A
B
C
D
E
F
1
TIME (Pacific)
YOU SAID
REPLY
STATUS
THREAD
TASK
2
3
4
BuildsManualAgent 1Agent 2Agent 3Agent 4Agent 5Code Mode workbookKernel

An illustration. The rows are made up; the column names are the real ones, and the tab names are this system’s AI agents, read just now.

  • YOU SAIDType what you want, in plain words, in a new row of its tab.
  • REPLYThe agent’s answer appears in the next cell of the same row. There is nothing to open or refresh.
  • THREADLeave it empty to carry on the same conversation. Type new to start a fresh one, or a number to go back to an earlier one.
  • TASKPut a task number here instead, and the agent works on that task from the task list.
  • STATUSIt says working while it works and done when it has answered. Type stop to stop it.
Its settings are cells too. Every setting of the agent’s AI model is a cell in the Builds tab; typing a new value changes the setting.

Each agent keeps a live connection to the spreadsheet. A change in YOU SAID, TASK or STATUS starts it; it writes REPLY, STATUS, THREAD and TASK back into the same row, and every step of its work into its own Ledger.

When a task closes

A task closes only when it has a real answer.

An AI agent cannot close a task by saying it has finished. The task closes only when there is a real answer in the row.

Each agent has a maximum number of steps per task. Running out of steps is not an answer, and neither is an empty reply: both leave the task open and say so in the row, so no task disappears without a trace.

Only a real answer closes the row as done, and its task with it. A step-limit stop, an empty reply or a failure leaves the task open. Work is accepted when its tests pass against the live system, not when the agent reports success.

STATUSdone

A real answer

The answer is in the row. The row says done, and the task it was working closes with it.

Task closed

STATUSstopped at its step limit

It ran out of steps

Not an answer. The task stays open; type continue in the next row and it carries on.

Task stays open

STATUSfailed

The AI model returned an error

The error is written into the row word for word, and into its Ledger. The task stays open.

Task stays open

STATUSworking (picked up again)

It restarted partway through

It picks the row up again and is told what it had already done, up to three times.

Task stays open until answered

When something goes wrong

A failure becomes a new task that names what went wrong and what allowed it.

When something goes wrong, it is not explained away in a report. It becomes a new task that names what failed and what allowed it, and that task is worked on like any other, in a row, until it has a real answer.

The new task names the kind of failure, the part of the system that allowed it, and the check that should have stopped it. It closes only when that check works.

A failure becomes a child task naming the failure class, the layer that permitted it and the invariant that should have prevented it, never a sentence in a report. The fix ships with a test built from the exact failure, run against the live system.

T-0141Send the day-2 follow-upsfailed

A follow-up went to a customer who had already answered.

becomes a new task
T-0142The follow-up that ignored an answernew task
What failed
A follow-up was sent after the customer answered.
What allowed it
The follow-up schedule did not read the thread before sending.
The check that should have stopped it
Follow-ups are sent only until the customer answers.
worked in a row, like any task
T-0142Closed with a real answerdone

The follow-up now stops the moment the customer answers. A test built from the exact failure passes on the live system.

An illustration. The task numbers and the business are made up.

For your developer

Separate programs, connected through one spreadsheet.

Each AI agent runs on its own, with its own storage and access keys. What connects them is a shared spreadsheet and the task list, not a shared database.

Each AI agent is a separate program you can add, copy or switch off without affecting the others. Your developer can see exactly how they are built and how each one updates its own code.

This system

The Directory, the Ledger and the task list. It keeps a list of every AI agent and gives each one actions of its own in the Directory.

  • the Directory
  • the Ledger
  • the task list

The shared spreadsheet

One tab per agent, where you type and it answers; a Builds tab with every setting of every agent’s AI model as a cell.

  • Builds
  • Manual
  • one tab per agent

The AI agents

Each one is its own Cloudflare Worker (a program running on Cloudflare’s servers), with its own storage and its own keys.

Agent 1Worker · storage · keys · Directory · Ledger
Agent 2Worker · storage · keys · Directory · Ledger
Agent 3Worker · storage · keys · Directory · Ledger
Agent 4Worker · storage · keys · Directory · Ledger
Agent 5Worker · storage · keys · Directory · Ledger
Code Mode workbookWorker · storage · keys · Directory · Ledger
KernelWorker · storage · keys · Directory · Ledger
  • Each agent is its own Cloudflare Worker with its own storage and keys, connected through a shared workbook.
  • AI agents have edited their own code, published their own updates and added their own tests to this system.
  • Work is accepted when its tests pass against the live system, not when an agent says it is done.
  • A copy is a new, independent program: its own Worker, storage and keys, its own tab and its own spreadsheet.
  • If an agent restarts partway through an answer, for instance because it published an update to itself, it picks the row up again and is told what it had already done.
  • Everything an agent sends or receives is stored in its own Ledger, and in this system’s Ledger.

Text me.

Tell me the first task you would give an AI agent. I’ll tell you what its row would say when the task closes.