An agent that runs on its own
An agent that runs on its own, and tells you what it found
Build an agent, give it a job and a schedule, and let it go. When it wakes on its own and does the work, you can ask Quox what it did and get the answer from the agent's own record, not a fresh guess.
What you get: an agent that wakes on a cron with nobody pressing run, does its job, posts its result to its own slot, and a chat answer about what it reported that is read back from the agent’s own run and post, with the real numbers attributed to the run that produced them.
Ask Quox
Section titled “Ask Quox”You built the agent and scheduled it. A few minutes later it has fired on its own. Now just ask:
My assay-76863b agent ran on its schedule a few minutes ago. What did it report? Give me its strict score exactly as '<pass> of <total>'.
▤ AOCL │ L1 identity complete · allowed · 1ms
▤ AOCL │ L3 policy gate complete · proceed · 4ms
◐ AGENT │ agent_directory agent_id=assay-76863b ✔ AGENT │ agent_directory agent_id=assay-76863b │ ok · 2.8s
⛓ AEE │ envelope opened · stream_success
Its strict score was 333 of 421, with 32 failing. That comes from the run that finished at 20:45 UTC (run 01M5AY…). • Release-proven jobs: 3 of 41 for v4.2.4. • Freshness: the board is fresh. Its newest run was at 20:35 UTC, 9 minutes before the reading. • Regressions: the board lists 10 since its previous run. Three of them are approvals/waiting-on-me, security/engagement-policy-refusal and fleet/quoxagent-not-healthy. • No comparison: the agent found no earlier reading in memory, so it posted this one as the baseline. That's odd for a job that runs every five minutes. Either earlier runs saved their readings somewhere its search doesn't reach, or they never saved them. The next run should show which. The agent also posted this reading to its own slot at 20:45 UTC.
19.9s · 1 tool · 0 approvals
quox.✔ Machine verified against the CLI on 19 Oct 2026 · test report mvfq2c
Quox answered with the agent’s strict score, 333 of 421, and named the run that produced it. It did not re-read the board to answer; it read the agent’s own run and the post the agent made to its slot. When it found no earlier reading of the agent’s in memory, it said so plainly and treated this as the baseline rather than inventing a change.
The result
Section titled “The result”The agent ran by itself and reported a real reading, and Quox relayed it from the agent’s own trail:
- The run fired from the schedule as a system actor, not a person (nobody pressed run)
- The agent posted its reading to its own slot: 333 of 421 strict, 32 failing
- Asked what it reported, Quox answered 333 of 421 and cited the agent’s run id
- Quox read the agent’s own run and post to answer, not the live board
- With no earlier reading to compare against, Quox called this the baseline instead of fabricating a change
Every number here is the one the agent actually posted, tied to the run that produced it.
Do it yourself
Section titled “Do it yourself”The build is five plain steps, each a CLI command you can run yourself: create the agent and give it its job, assign it exactly the three tools the job needs (read the board, save a reading, post to a slot), bind it to its own slot so that is the only place it can post, create a workflow that wakes it every five minutes, and activate the schedule. From then on it runs with no one in the loop.
quox agent create --agent-id assay-76863b --name "ASSAY 76863b" --description "Reads the proof board and posts the change" --prompt "...read the board with proof_status, compare with memory, save this reading, post a short delta to the assay-76863b slot..."quox agent tool assign assay-76863b --tool proof.statusquox agent tool assign assay-76863b --tool memory.savequox agent tool assign assay-76863b --tool slot.sayquox slot create assay-76863bquox agent bind-slot assay-76863b assay-76863bquox workflow create --name "ASSAY 76863b journey" --steps '{trigger:schedule */5, agent:invoke assay-76863b}'quox trigger workflow-activate wf-... How it is checked
Section titled “How it is checked”The proof engine builds the agent through the CLI, waits for the first scheduled fire to finish on its own, and then checks the real end state: the run was started by the schedule as a system actor, the agent’s post carries the board’s numbers at that moment, and the chat answer matches by reading the agent’s own runs or posts rather than re-reading the board. The run is refused if the answer uses the board-read tool, runs a shell, or claims it could not find the agent’s report. A run that guessed, or that re-read the board to manufacture a match, cannot pass.
Why it matters
Section titled “Why it matters”The hard part of a background agent is not making it run. It is being able to trust what it tells you afterwards. This one answers “what did my agent do?” from the agent’s own record, attributes the numbers to the run that made them, and is honest when it has nothing to compare against. That is an agent you can check, not one you have to take on faith.
Quox-verified, not independently audited: the result above was checked by Quox’s own proof engine against the running system, and the evidence id is published so you can recompute it. It is not a third-party audit.