← All projects

02 · Agent orchestration experiment · August 2026

One-Person AI Company

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.

Official run
24 h
Roles
2 AI + code + 1 human
Events persisted
465
Human corrections
3
one-person-ai-company/control/live · LIVE COMPANY
The live control room: run clock and budget, live topology graph, agent cards and the event stream for the official run
The real control room, rendered from the official run record: clock and budget, live topology, agent cards, event stream.

01 · The experiment

Delegating objectives, not tasks.

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.

Task delegation

“Summarise these five companies’ pricing pages.”
  1. Prompt
  2. Answer
  3. Done

Objective delegation

“Measure the value every participant received relative to what they paid, and tell me what explains it.”
  1. Plan
  2. Research
  3. Verify
  4. Decide
  5. Ask
  6. Report

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

Five roles. Two of them are language models.

“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.

Founderhuman · objective, start / stop, corrections
OpenClawmanager · plans, decides, synthesises
Grok Botresearcher · public web + public X

task inbox · claims + evidence

Deterministic enginecollector · analysis · accountant

snapshots · metrics · episodes · anomalies

Verifierskeptic · grades every claim

deterministic checks · optional judge

PostgreSQLmemory · append-only event log
Control roomlive · results · evidence · replay
Reportsinterim, preserved verbatim · one final

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

A loop that lets the model decide and never lets it execute.

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.

  1. PollEvery 15 s, read ACTIVE runs from PostgreSQL
  2. GuardEnforce budget, deadline and observation checkpoints
  3. TriggerCompute the pending consult, or skip it if nothing material changed
  4. ConsultOpenClaw reads through 11 tools, up to 16 turns
  5. DecideOne structured decision through the single write tool
  6. ValidateBackend checks invariants; refusals are recorded, nothing is cancelled silently
  7. JournalDecision applied, events appended, control room updates

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

  • Research cannot be declared sufficient while any task is open, or before at least one outcome-discovery task has actually finished. Nothing is cancelled silently.
  • Sufficiency is observation-relative: a newer real snapshot reopens research.
  • Synthesis needs a clear board and a material change since the last report, except for the one guaranteed final synthesis after the deadline.
  • After the planned end, task creation and worker claims are refused.
  • Heartbeats without a material change are skipped at $0 and logged as such (added mid-run, see the failures).
  • Consultations end as decided, no_decision, truncated or turns_exhausted; only the first one changes anything.

04 · Agent ownership

Each role owns a mission, a tool set, a routine, an output and a checkpoint.

OpenClaw

Manager · orchestrator
Mission
Turn the mission into research tasks, decide what to do after each result, declare research sufficient and request the synthesis.
Tools
11 read-only tools over the PostgreSQL dataset and exactly one write tool: submit_orchestration_decision.
Routine
Consulted at computed decision points: run start, task completed or failed, verification failed, idle with open questions, a 30-minute heartbeat and synthesis due.
Output
Structured decisions (6 types), validated by the backend before anything changes, plus the interim and final reports.
Checkpoint
Every consultation, tool call, decision and refusal is written to the event log. Session memory on the gateway is context, not truth.

Grok Bot

Researcher · executor
Mission
Investigate the public web for what happened to specific companies after they paid for attention, and return claims with evidence.
Tools
Its own native public web and public X search. This codebase never calls Grok; Grok calls in through a five-endpoint task inbox.
Routine
Polls the inbox (documented cadence: every minute), claims a task atomically, streams eight kinds of activity events, posts a structured result or a failure.
Output
Claims labelled by epistemic class (OBSERVED, REPORTED, UNKNOWN), evidence URLs with excerpts, limitations and unknowns.
Checkpoint
Every claim is verified deterministically before it can appear in a report. Agent-reported events are stored as AGENT_REPORTED, never as fact.

Deterministic engine

Collector · analysis · verifier
Mission
Own everything that can be measured: gross bidding volume, reconciliation against the revenue counter, per-company efficiency, rank-change episodes, anomalies.
Tools
TypeScript, SQL and Prisma. No model calls. Human-attended browser capture for market snapshots; no scraping, no challenge bypass.
Routine
Ingest a snapshot when a human captures one; recompute metrics; verify every claim the researcher returns against the record.
Output
Numbers with provenance, CLEAN / CONFOUNDED / INSUFFICIENT_DATA episode labels, verdicts SUPPORTED, PARTIAL, UNKNOWN, UNSUPPORTED, CONTRADICTED.
Checkpoint
Observation checkpoints at T+6, T+12, T+18 and T+24 hours: due 15 minutes before, missed 30 minutes after. Missed checkpoints are recorded as errors, not hidden.

Founder (me)

Human · the only write access
Mission
Set the objective, start and stop runs, capture market observations, unblock, correct, and stay out of the reasoning loop.
Tools
Start / stop / finish run behind a control token; intervention records; a browser and a notebook.
Routine
Watch the control room. Answer REQUEST_HUMAN and budget-cap blocks. During the run, three emergency code changes, each recorded as a CORRECTION intervention.
Output
Interventions in the same event log as everything else, so the replay shows exactly where a human touched the run.
Checkpoint
Out-of-band database editing is forbidden by the experiment protocol. If I change the code mid-run, the run record moves to the new commit.

05 · Persistence

The memory is a database, not a chat history.

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.

  • 16 Prisma models: Run, Agent, Task, TaskAttempt, Event, Claim, Evidence, ClaimEvidence, Verification, HumanIntervention, ModelCall, Company, OutbidSnapshot, OutbidListing, RankChangeEpisode, BreakEvenScenario.
  • Each event records who reported it and at what reporting level, so an agent’s account of its own work is never confused with a verified fact.
  • Interim reports are preserved verbatim inside report_generated events; the run row holds the final one.
  • Model calls store provider, model id, tokens and whether the cost was actually known. In this run it never was.
  • Replay reads the same events through the same renderer as live, at up to 300x.
one-person-ai-companyevent log · official run
Timeline of the 465 events in the official run, from run start through tasks, reports and interventions to the final synthesis
The event log of the official run as a timeline, from the article’s figures.

06 · OpenClaw

What the manager actually is.

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.

  • Used for: planning, tool-driven inspection of the dataset, structured decisions, interim and final synthesis.
  • Not used: OpenClaw workspaces, files, browsers or its own routines. In this experiment it is a decision service, not a desktop agent.
  • The single decision tool has a flat, object-rooted schema because the gateway’s tool bridge degraded a discriminated union into opaque strings during calibration. The backend still validates the strict union.
  • Transport retries only on network errors and 502 / 503 / 504; never on a client timeout, because the gateway may be mid-turn spending real tokens.
  • A mock gateway with MOCK labels exists for dry runs; nothing it produces can be mistaken for the real thing in the control room.
one-person-ai-company/control/live · agents
Agent cards for OpenClaw, Grok Bot, verifier and collector with their last activity
Agent cards in the live view.

07 · Models

Two models with different jobs. Only what was verified.

OpenClaw gateway

manager

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.

Grok Bot

researcher

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.

Claude semantic judge

optional

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

Eleven ways to look. One way to act.

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

  • Never click the marketplace’s outbound links: that would contaminate the click data being measured.
  • No contacting founders, no purchases or sign-ups, no posting or commenting, no form submissions, no account changes.
  • Public web only; public X posts only; never a human’s account, session or cookies.
  • Attribution ladder with five levels, from a company-credited outcome down to UNKNOWN. UNKNOWN is a legitimate result.

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

What ran on its own, and where a person had to be.

Agent-executed, no approval

  • Task planning and creation, up to the run’s cap
  • Research, claims and evidence
  • Per-claim deterministic verification
  • Declaring research sufficient
  • Interim reports and the final synthesis
  • Skipping idle heartbeats

Human required

  • Starting, stopping and finishing a run (control token)
  • Capturing market snapshots at the checkpoints
  • Answering REQUEST_HUMAN or a budget-cap block (BLOCKED_ON_HUMAN)
  • Auditing data provenance and cancelling a contaminated task
  • Three emergency code changes, recorded as CORRECTION interventions

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

Four views over one event log.

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.

one-person-ai-company/control/live · activity stream
Activity stream strip with run clock, budget and recent events
Run clockPlanned end, elapsed time and the code version the run is currently executing.
BudgetTasks used against the cap, spend as ESTIMATED when the provider did not price the call.
Agent cardsOpenClaw, Grok Bot, verifier and collector with their last activity and health.
Activity streamServer-sent events with resume by sequence number; the feed is the log, not a summary of it.
Honesty labelsMOCK, ESTIMATED, AGENT_REPORTED and REPLAY are rendered as labels the UI cannot drop.
Human nodeInterventions appear on the graph and in the stream like any other actor.
one-person-ai-company/control/results
Results view: executive verdict on the Outbid market, scoreboard, insight cards and the final report
RESULTS. Conclusion first: the verdict, the big finding, the scoreboard and the final report rendered from the run record.
one-person-ai-company/control/evidence
Evidence view: claims with verdicts and linked sources
EVIDENCE. Every claim with its class, verdict and sources. PARTIAL and UNKNOWN can never be mistaken for full support.
one-person-ai-company/control/replay
Replay view of the official run with the permanent REPLAY watermark
REPLAY. The same render path as live, driven by persisted events at 1x to 300x, under a permanent watermark.
one-person-ai-company/control/live · topology
Live topology graph of the company: source, collector, snapshot store, analysis, OpenClaw, task state, Grok, evidence store, verifiers, human, report
TOPOLOGY. Thirteen nodes whose states are derived on the server from the event log; client pulses are an overlay, never the source of truth.

11 · Routines and schedule

Interval timers and three LaunchAgents. No cron, no chat channel.

RoutineCadenceNote
Orchestrator poll15 sORCHESTRATOR_POLL_SEC
Consult debounce60 sIMMEDIATE triggers bypass it
Heartbeat30 minconsult only if a material change occurred, otherwise a $0 heartbeat_skipped event
Task timeout45 minstale RUNNING tasks move to RETRY_SCHEDULED
Observation checkpointsT+6 / 12 / 18 / 24 hdue 15 min before, missed 30 min after; local macOS notification
Live stream poll1.5 sSSE, resumable
Researcher routineevery 1 mindocumented on the Grok side; documented pickup latency 10 m 40 s in calibration

How it stayed up for 24 hours

  • Three macOS LaunchAgents with KeepAlive: the web app, the orchestrator worker and caffeinate to keep the machine awake.
  • Five process_restarted events in the run: every restart is in the log, alongside everything else.
  • The orchestrator’s launch command is itself the first emergency fix: node --env-file instead of a shell sourcing .env.
  • Checkpoint alerts are local macOS notifications. There is no Telegram bot, no email, no daily briefing; a run summary is available on demand from the API.
  • systemd units and a Caddyfile for a single VPS were written and never used; the gateway and the database are never proxied by design.

12 · A day in the company

The official run, from the event log.

Run cmt60vdjp…, 23 August 16:29 to 24 August 16:29 (UTC). Green marks agent activity, amber a human intervention, red a recorded failure.

  1. 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.

  2. Plan and first three tasksOpenClaw reads the platform summary and companies, then creates DOWNSTREAM_EVIDENCE, COMMERCIAL_INVESTIGATION and ANOMALY_EXPLANATION tasks.

  3. Grok claims its first taskgrok-main claims the downstream-evidence task 1 min 47 s after it was queued and starts streaming research events.

  4. 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.

  5. First result verifiedEight claims and nine sources come back; the deterministic verifier grades each one. Second task completes at 16:52.

  6. Follow-up questionOpenClaw opens an OPEN_QUESTION task on the two companies with the largest spend; Grok completes it at 17:01.

  7. Interim report, 33 minutes inResearch declared sufficient; a 9,491-character report is generated and preserved verbatim in the event log.

  8. 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.

  9. Two rewrites overnightHeartbeat consultations rewrite the report to 7,338 then 6,714 characters without any new evidence. Every heartbeat costs real tokens.

  10. 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.

  11. 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.

  12. 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.

one-person-ai-companyfigure · failures against the clock
Timeline placing the three emergency corrections and the missed checkpoints across the 24-hour run
The three corrections against the 24-hour clock.
one-person-ai-companyfigure · consultations before and after the idle gate
Chart comparing consultations and skipped heartbeats before and after the third correction
Before the idle-cost gate: 39 consultations, 0 skips. After: 2 consultations, 165 skips at $0.

13 · Watch the company operate

Forty-five seconds of the official run.

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 write-up: what I gave the company, and what it gave back.

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.

  • The business question: on a public pay-to-rank marketplace, is attention worth what companies pay for it? The measurable half (gross volume, distribution, cost per click) went to deterministic code. The unmeasurable half (what happened after the click) went to the researcher.
  • Findings the company returned: about $182K in gross bids across 1,140 companies; the top 1 percent of spenders accounted for roughly 61 percent of spend; a 200x spread in cost per click across categories; visible audience mismatch; and commercial ROI marked UNKNOWN, because no company-credited outcome could be found publicly.
  • The honest line the article turns on: I automated the brain, but not the eyes. The company reasoned overnight without me; it never once looked at the market on its own.
one-person-ai-companyGrok Bot · Outbid Researcher
Grok Bot conversation as the Outbid Researcher, reporting on public companies with no private data
The researcher at work in Grok Bot. Public companies only; nothing private in the frame.
one-person-ai-companyfigure · the business finding
Figure summarising the business finding: attention measured, commercial ROI unknown
Attention measured, ROI unproven.
one-person-ai-companyfigure · two research directions
Figure showing the split between the deterministic measurable half and the agent-researched unmeasurable half
Code for what can be measured, agents for what cannot.
one-person-ai-companyfigure · report rewrites
Chart of report length across the four generated reports
9,491 to 7,338 to 6,714 to 9,556 characters: the rewrites problem.
one-person-ai-companyevent · task_cancelled
The task cancellation event caused by synthetic seed data leaking into the read tools
The audit cancellation, in the log.

15 · What actually happened

It worked, it broke, and it kept the receipts.

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 environment, not the model. Minutes after launch, the orchestrator was down because macOS refused a shell sourcing .env under launchd. The intelligence was fine; the plumbing was not.
  • Synthetic data in a real run. Development seed data leaked into two read tools. OpenClaw did the rational thing with what it saw and opened a task about a company that does not exist. A human audit caught it; the cancellation is in the log.
  • Autonomy stalled. Once research was declared sufficient, the design silently turned the remaining 23 hours into idle time. The fix had to be written during the run.
  • Reports that got shorter. Each heartbeat consultation rewrote the report with no new evidence: 9,491 to 7,338 to 6,714 characters. The system was productive-looking and useless, at a cost.
  • The eyes were never automated. All four observation checkpoints were missed because fresh market capture stays human-attended by policy. The company had a brain and hands, but I was still the eyes.
  • Cut-off thinking. 23 of 41 consultations hit the 6,144-token output cap and ended as truncated. They were logged as such and never treated as decisions.

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

Decide, never execute

The agent proposes structured decisions. The backend validates against invariants and applies them, or refuses and records why.

Report, never assert

Anything an agent says about the world enters as AGENT_REPORTED with a claim class. A verifier decides what it is worth.

Persist before display

No event exists until it is in PostgreSQL with a per-run sequence number. The control room renders the log; it never invents state.

Bounded by construction

Caps on spend, tasks, attempts and wall-clock time; deadline refusals; one guaranteed final synthesis; UNKNOWN is a valid answer.

16 · Architecture

Objective to report, through seven layers.

  1. Objective
    One mission with a hierarchy: business result first, experiment second, proof of work third.
  2. Orchestrator loop
    A TypeScript worker (no framework, no queue): poll, guard, trigger, consult, validate, journal.
  3. OpenClaw gateway
    OpenResponses-compatible /v1/responses endpoint on loopback, bearer token, transport-only retries, response-id continuity.
  4. Task inbox
    Five narrow HTTP endpoints behind a worker token: peek, claim, events, result, fail. Claims are atomic and exclusive.
  5. Verification
    Deterministic checks per claim; an optional Claude semantic judge behind an environment flag, not enabled in the run.
  6. PostgreSQL
    16 models, 3 migrations: runs, tasks, attempts, events, claims, evidence, verifications, interventions, model calls, market data.
  7. Control room
    Four views over one API: live (SSE), results, evidence, replay. Server-derived topology state.
one-person-ai-companyfigure · architecture
Architecture figure: founder, OpenClaw manager, Grok researcher, deterministic engine, verifier, PostgreSQL and the control room
The company as a diagram.

17 · Under the hood

Stack, by purpose.

Runtime
Next.js 16.3 · React 19.2 · TypeScript 5 · tsx workers · Tailwind CSS 4 · shadcn / Radix
Data
PostgreSQL 15 · Prisma 6.19 · 16 models · 19 enums · 3 migrations · per-run BigInt event sequence
Orchestration
Custom loop in scripts/orchestrator-worker.ts · triggers, consult, decisions, material-events, tools modules · zod 4 contracts
Models
OpenClaw gateway (routed to Claude Sonnet 5, thinking low, per the run notes) · Grok Bot as an external worker · optional Claude judge
Operations
macOS LaunchAgents for web, orchestrator and caffeinate · systemd units and Caddyfile written for a VPS but not used
Testing
Vitest 3.2 · 6 files · 105 tests against a dedicated PostgreSQL test database (104 pass; 1 stale hard-coded-date test)
Interfaces
18 API routes · SSE stream with Last-Event-ID resume · replay at 1x / 10x / 60x / 300x · mock OpenClaw gateway and mock worker for dry runs

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

The run, in verified numbers.

24 h
official run
465
events persisted
41
OpenClaw consultations
21 / 0
decisions applied / refused
4
tasks (3 completed, 1 cancelled)
32
claims returned
31
claims verified
29
evidence sources
4
reports generated
3
human interventions
165
$0 heartbeats skipped
≈ $0.79
estimated model cost
1,140
companies observed
12
tools (11 read + 1 write)
50
event types
105
tests
RoleWhat it did in the official runClass
OpenClaw41 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 Bot3 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 verifier31 verifications, all deterministic: 11 SUPPORTED (UNKNOWN-class claims), 20 PARTIAL. No UNSUPPORTED, no CONTRADICTED. Semantic judge not enabled.Agent-executed
Collector + analysis4 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
Founder3 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

What is built, demonstrated, agent-executed, human-assisted, experimental or absent.

BuiltOrchestration loop, decision contract, task inbox, verification, event log, four-view control room, LaunchAgent deployment, tests
DemonstratedOne official 24-hour run with a persisted log, replay and final report; calibration and dry runs before it
Agent-executedTask planning, research, per-claim verification, sufficiency decisions, interim and final synthesis
Human-assistedMarket observation capture, run start and stop, the three mid-run corrections, the synthetic-data audit
ExperimentalIdle-cost gate and observation-relative sufficiency (written during the run); documented one-minute researcher cadence (pickup proven, cadence not)
Not implementedApproval-queue UI, Telegram or any chat channel, cloud-hosted researcher, semantic judge in the run, automated market capture, multi-tenancy, auth beyond tokens
LayerStatusEvidence
Orchestrator and decision contractDemonstrated41 consultations and 21 applied decisions in the official run; invariants refused nothing because the prompt-level contract held.
Grok researcherDemonstratedReal research through the inbox by worker grok-main. Payloads relayed through a token-safe local bridge; the planned cloud worker was never used.
VerificationDemonstrated / BuiltDeterministic verification ran on all 31 claims. The Claude semantic judge is implemented behind an environment flag and did not run.
Control roomDemonstratedAll screenshots on this page are the real views rendered from the official run record, captured locally on 28 August.
Persistence and replayDemonstrated465 events, 111 model calls, 4 reports; replay uses the same render path as live.
24-hour autonomyPartialThe 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 accountingEstimatedThe gateway priced none of the 111 calls; ≈ $0.79 is a conservative estimate from reported tokens, against a $50 cap.
Business conclusionPartialAttention value measured ($182K gross, top 1 percent ≈ 61 percent of spend). Commercial ROI: UNKNOWN, published as such.
Scheduled routinesBuiltInterval timers in the orchestrator and LaunchAgents with KeepAlive. No cron, no daily briefings, no messaging channel.
VideoReal data · illustrative motionThe 45-second showcase animates the official run’s persisted data; the explainer is narrated. Neither is a screen recording of the live run.
DeploymentLocal onlyRan 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

AI changes more when you redesign the work than when you improve the prompt.

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

Concept, architecture, orchestration, experiment design, evaluation.

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

  • Milestone 2: verify what happens after the click with founder-provided, attributable evidence, so ROI can move from UNKNOWN to a graded claim.
  • Automate the eyes: scheduled, policy-compliant observation so checkpoints stop depending on me.
  • Enable the semantic judge and report deterministic and semantic verdicts side by side.
  • Close the run properly: the record still says ACTIVE.

Next

Five projects, one practice.