Task delegation
“Summarise these five companies’ pricing pages.”
- Prompt
- Answer
- Done
02 · Agent orchestration experiment · August 2026
What if one person could delegate work to an entire AI organization?
Not a prompt, an objective. I gave an AI manager a real business question about a public marketplace, gave it an AI researcher, an accountant made of deterministic code and a memory made of PostgreSQL, and let the company run for 24 hours while I watched from a control room. This page is what actually happened, with the numbers from the run record.

01 · The experiment
Chat AI is good at tasks: answer this, rewrite that. An organization works differently. You hand someone an outcome and they decide what to research, what to do next, when to ask for help and when the work is done. The experiment tested whether that shape could be built from agents, with one human at the top.
The objective was deliberately real and measurable: a public pay-to-rank marketplace where companies bid for attention. The mission text stored in the run record asks the company to measure what every participant received relative to what they paid, identify who benefited most and least, explain why, and estimate the value captured by the platform itself.
“Summarise these five companies’ pricing pages.”
“Measure the value every participant received relative to what they paid, and tell me what explains it.”
The interesting question was never whether the model could think. It was whether the organization around it could be trusted with the result.
02 · The company
“Company” is the metaphor; the architecture is smaller and stricter than the word suggests. One orchestrator decides. One researcher executes. Deterministic code owns the numbers. PostgreSQL is the only truth. The control room is a window onto it, never a source. The governing rule from the repository README: agents decide, the backend executes and records.
task inbox · claims + evidence
snapshots · metrics · episodes · anomalies
deterministic checks · optional judge
The agent registry in the database holds six actors: founder (HUMAN), openclaw, grok-bot, deterministic-verifier, outbid-collector and backend (SYSTEM). There is no finance agent, no product-builder agent and no personal-assistant agent in this repository; the brief for a wider “AI company” was scoped down to what I could actually verify.
03 · The orchestrator
The orchestrator is a plain TypeScript worker, no agent framework and no queue. It polls PostgreSQL, works out whether a decision point has arrived, and only then spends tokens. The model sees the dataset through read-only tools and can change the world through exactly one function.
8 consult triggers
RUN_STARTED · NEW_OBSERVATION · TASK_COMPLETED · TASK_FAILED · VERIFICATION_FAILED · IDLE_WITH_OPEN_QUESTIONS · HEARTBEAT · SYNTHESIS_DUE
6 decision types
CREATE_TASK · RETRY_TASK · ABANDON_TASK · REQUEST_HUMAN · DECLARE_RESEARCH_SUFFICIENT · REQUEST_SYNTHESIS
10 task states
CREATED · QUEUED · DISPATCHED · RUNNING · VERIFYING · COMPLETED · RETRY_SCHEDULED · FAILED · BLOCKED_ON_HUMAN · CANCELLED
Invariants the backend enforces
04 · Agent ownership
05 · Persistence
Every run has its own monotonic event sequence. Fifty event types cover the whole life of the company: run lifecycle, consultations and tool calls, decisions made, applied or refused, task transitions, research activity, claims, verifications, snapshots, anomalies, process restarts, skipped heartbeats, missed checkpoints, human interventions and generated reports.

06 · OpenClaw
OpenClaw is reached through an OpenResponses-compatible gateway on the local machine. The backend sends the system instructions, the tool schemas and the previous response id; the gateway keeps the conversation and routes to its configured model (Claude Sonnet 5 with low thinking, per the run notes). The backend keeps nothing of the conversation itself.

07 · Models
Provider string openclaw-gateway, model string openclaw. All 111 model calls in the official run went here. The gateway’s configured default, per the runbook, is Claude Sonnet 5.
Runs as an external worker with its own public web and public X search. This codebase contains no xAI key and no Grok model id; it exposes an inbox, and Grok calls in.
Implemented as a second verification level behind an environment flag, defaulting to Claude Sonnet 5. Not enabled in the official run: zero semantic verifications in the record.
No OpenAI or Gemini integration exists in the repository. “OpenAI-compatible” in the code describes the wire format of the gateway, not a provider.
08 · Tools
Read-only tools for the manager
get_platform_summary · list_companies · get_company · get_company_history · get_category_stats · list_rank_change_episodes · list_current_anomalies · list_existing_tasks · get_task_result · list_unresolved_questions · get_observation_metadata
The only write
submit_orchestration_decision
The manager can page through 1,140 companies, read a company’s bid, rank and click history, inspect rank-change episodes labelled CLEAN, CONFOUNDED or INSUFFICIENT_DATA, see its own tasks and their verdicts, and check how stale the observation is. It cannot write a row.
Rules injected into every research task
There is no Telegram, git, file, email or browser-automation tool in this repository. Market observation is done by a human with a browser and a capture snippet, by policy: no scraping, no challenge bypass, human-scale volume.
09 · Human in the loop
The approval architecture exists in the data model (APPROVAL, CORRECTION, UNBLOCK and MANUAL_WORK interventions; task and run states for BLOCKED_ON_HUMAN). No approval-queue screen shipped: interventions in this run were recorded through code paths, not through a button. OpenClaw never used REQUEST_HUMAN.
10 · Command center
Live company, results, evidence, replay. The control room has six binding honesty rules in its design document; the shortest version is that it can only show what has been persisted, and it must label MOCK, ESTIMATED, AGENT_REPORTED and REPLAY wherever they apply.





11 · Routines and schedule
| Routine | Cadence | Note |
|---|---|---|
| Orchestrator poll | 15 s | ORCHESTRATOR_POLL_SEC |
| Consult debounce | 60 s | IMMEDIATE triggers bypass it |
| Heartbeat | 30 min | consult only if a material change occurred, otherwise a $0 heartbeat_skipped event |
| Task timeout | 45 min | stale RUNNING tasks move to RETRY_SCHEDULED |
| Observation checkpoints | T+6 / 12 / 18 / 24 h | due 15 min before, missed 30 min after; local macOS notification |
| Live stream poll | 1.5 s | SSE, resumable |
| Researcher routine | every 1 min | documented on the Grok side; documented pickup latency 10 m 40 s in calibration |
How it stayed up for 24 hours
12 · A day in the company
Run cmt60vdjp…, 23 August 16:29 to 24 August 16:29 (UTC). Green marks agent activity, amber a human intervention, red a recorded failure.
Run startedOFFICIAL run created from commit 390820c: 24 hours, 40 tasks, $50 cap. Three pre-run snapshots already in the record; the last real observation at 16:26.
Plan and first three tasksOpenClaw reads the platform summary and companies, then creates DOWNSTREAM_EVIDENCE, COMMERCIAL_INVESTIGATION and ANOMALY_EXPLANATION tasks.
Grok claims its first taskgrok-main claims the downstream-evidence task 1 min 47 s after it was queued and starts streaming research events.
Intervention 1 (CORRECTION)The orchestrator LaunchAgent had failed on a macOS permission error while sourcing .env. Fixed with node --env-file. During recovery, synthetic seed data (SynthCo) was found leaking into the anomaly tools: provenance guards added, the contaminated task cancelled.
First result verifiedEight claims and nine sources come back; the deterministic verifier grades each one. Second task completes at 16:52.
Follow-up questionOpenClaw opens an OPEN_QUESTION task on the two companies with the largest spend; Grok completes it at 17:01.
Interim report, 33 minutes inResearch declared sufficient; a 9,491-character report is generated and preserved verbatim in the event log.
Intervention 2 (CORRECTION)A design gap: sufficiency permanently suppressed new observations and the interim report suppressed the final synthesis. The next 23 hours would have been dead time. Fix: observation-relative sufficiency and one guaranteed final synthesis.
Two rewrites overnightHeartbeat consultations rewrite the report to 7,338 then 6,714 characters without any new evidence. Every heartbeat costs real tokens.
Checkpoints T+6 and T+12 pass unobservedNo human-attended market capture happened at either target. The gaps were only recorded as errors at 11:02 the next morning, once intervention 3 added checkpoint observability; T+18 and T+24 were missed too. The system treats the market as UNKNOWN rather than unchanged.
Intervention 3 (CORRECTION)Idle-cost gate: heartbeats now skip at $0 unless something material changed. Decision idempotency and checkpoint observability added. Before the patch: 39 consultations, 0 skips. After: 2 consultations, 165 skips.
Final synthesis70 seconds after the planned end, the guaranteed final report (9,556 characters) is generated. Task creation and claims are refused after the deadline. The run record itself was never finalised and is still marked ACTIVE.


13 · Watch the company operate
The showcase animates the persisted data of the official run: the roles, the timeline, the numbers and the verdict. It is built from the record, not screen-recorded live, so it is labelled real data with illustrative motion.
Real data · illustrative motion · no audio.
The explainer
A 55-second narrated explainer of the idea and the result. With audio.
14 · Behind the experiment
The working title of the article is “I Tried to Build a One-Person AI Company With Grok Bot + OpenClaw. Here’s What Actually Happened.” It is a local draft; there is no public link yet, so none is offered here.





15 · What actually happened
The company produced a usable interim report 33 minutes after launch and a final synthesis 70 seconds after the deadline. In between, it ran overnight without me. It also needed three emergency corrections, missed every observation checkpoint, spent tokens rewriting a report with no new evidence, and never had its run record formally closed.
Failures, in order
The hard part
Building agents that act was the easy half. The hard part was building the thing that decides whether to believe them: a verifier that grades every claim, an event log that cannot be edited by hand, a UI that refuses to display anything it cannot trace, and a rule that UNKNOWN is a legitimate answer. Most of the mid-run fixes were about that layer, not about the model.
Agent contract
The agent proposes structured decisions. The backend validates against invariants and applies them, or refuses and records why.
Anything an agent says about the world enters as AGENT_REPORTED with a claim class. A verifier decides what it is worth.
No event exists until it is in PostgreSQL with a per-run sequence number. The control room renders the log; it never invents state.
Caps on spend, tasks, attempts and wall-clock time; deadline refusals; one guaranteed final synthesis; UNKNOWN is a valid answer.
16 · Architecture

17 · Under the hood
Configuration is entirely by environment variable; 33 names are read by the code (database URL, gateway URL and token, worker token, control token, caps, timers, cost estimates). Values are not published anywhere, including here.
18 · Metrics
| Role | What it did in the official run | Class |
|---|---|---|
| OpenClaw | 41 consultations (18 decided, 23 truncated), 71 tool queries, 21 decisions: 15 REQUEST_SYNTHESIS, 4 CREATE_TASK, 2 DECLARE_RESEARCH_SUFFICIENT. Zero refusals, zero REQUEST_HUMAN. | Agent-executed |
| Grok Bot | 3 tasks claimed and completed by grok-main, all succeeded, all between 16:36 and 17:01. 32 claims, 29 sources. Attribution UNKNOWN for every investigated company. | Agent-executed |
| Deterministic verifier | 31 verifications, all deterministic: 11 SUPPORTED (UNKNOWN-class claims), 20 PARTIAL. No UNSUPPORTED, no CONTRADICTED. Semantic judge not enabled. | Agent-executed |
| Collector + analysis | 4 real browser-assisted snapshots before the run (last: 1,201 listings, gross bids $182,076 against a $182,070 counter). Zero snapshots during the run. | Human-assisted |
| Founder | 3 CORRECTION interventions, 1 audit cancellation, 0 approvals requested, all 4 checkpoints missed, run never formally finished. | Human-assisted |
Cost is an estimate: the gateway reported tokens but priced none of the 111 calls, so the ledger applies conservative Claude Sonnet 5 rates with a safety factor. Counts come from the run’s PostgreSQL record, queried on 28 August 2026.
19 · Classification and truth table
| Built | Orchestration loop, decision contract, task inbox, verification, event log, four-view control room, LaunchAgent deployment, tests |
|---|---|
| Demonstrated | One official 24-hour run with a persisted log, replay and final report; calibration and dry runs before it |
| Agent-executed | Task planning, research, per-claim verification, sufficiency decisions, interim and final synthesis |
| Human-assisted | Market observation capture, run start and stop, the three mid-run corrections, the synthetic-data audit |
| Experimental | Idle-cost gate and observation-relative sufficiency (written during the run); documented one-minute researcher cadence (pickup proven, cadence not) |
| Not implemented | Approval-queue UI, Telegram or any chat channel, cloud-hosted researcher, semantic judge in the run, automated market capture, multi-tenancy, auth beyond tokens |
| Layer | Status | Evidence |
|---|---|---|
| Orchestrator and decision contract | Demonstrated | 41 consultations and 21 applied decisions in the official run; invariants refused nothing because the prompt-level contract held. |
| Grok researcher | Demonstrated | Real research through the inbox by worker grok-main. Payloads relayed through a token-safe local bridge; the planned cloud worker was never used. |
| Verification | Demonstrated / Built | Deterministic verification ran on all 31 claims. The Claude semantic judge is implemented behind an environment flag and did not run. |
| Control room | Demonstrated | All screenshots on this page are the real views rendered from the official run record, captured locally on 28 August. |
| Persistence and replay | Demonstrated | 465 events, 111 model calls, 4 reports; replay uses the same render path as live. |
| 24-hour autonomy | Partial | The reasoning loop ran unattended overnight. It needed two emergency corrections to do so, and observation stayed human-attended, so the market went unobserved for the whole window. |
| Cost accounting | Estimated | The gateway priced none of the 111 calls; ≈ $0.79 is a conservative estimate from reported tokens, against a $50 cap. |
| Business conclusion | Partial | Attention value measured ($182K gross, top 1 percent ≈ 61 percent of spend). Commercial ROI: UNKNOWN, published as such. |
| Scheduled routines | Built | Interval timers in the orchestrator and LaunchAgents with KeepAlive. No cron, no daily briefings, no messaging channel. |
| Video | Real data · illustrative motion | The 45-second showcase animates the official run’s persisted data; the explainer is narrated. Neither is a screen recording of the live run. |
| Deployment | Local only | Ran on one Mac under LaunchAgents with the gateway on loopback. Not a product, not deployed, no users. |
This page does not claim full autonomous operation. It claims one bounded run in which the reasoning loop ran without me for most of 24 hours, under caps, with every step recorded, and with a human required three times.
20 · The idea
The model in this experiment was not special. What changed the outcome was the organization around it: roles with narrow tools, a single write path, a verifier that never takes an agent’s word, a database that remembers everything, and a human whose job was to set the objective and correct the system rather than to answer it questions. That is a design problem, and it is the part I want to keep working on.
21 · My role
I defined the mission hierarchy and the epistemic classes, designed the decision contract and the invariants, wrote the orchestrator loop, the OpenClaw adapter, the task inbox, the verifier, the event schema and the four-view control room, ran the calibration and dry runs, launched and supervised the official run, wrote the three corrections while it was live, and wrote the article afterwards. The research itself was done by the agents; the market observations were captured by me.
Next