Asapi
For AI labs / Catalogue / Seasonal bulk order run with simulated staff
Environment datasheet · Small business

Seasonal bulk order run with simulated staff

ID house‑rules/task09 · revision 5 · tested 7 and 15 October 2026

From the owner's laptop, the agent answers a hotel group's order for 12,000 Christmas mince pies by its deadline and makes it happen through her team: weekly figures, the rota and overtime, agency cover, freezer space and an oven service. Then it tells her what it did.

Checks
23, 30% of the reward; a profit part is the other 70%
Versions
Request only, with a hint, told the rules
Attempts
24: 8 models × 3 versions, one each
Best, request only
88% (Opus 5.5)
Best, told the rules
96% (GPT‑6 Astra)
Full solves
0 of 24
Attempts with any reward
23 of 24
Median, request only
17 min, 52 tool calls
The job

Two weeks in the owner's seat, with a hotel's order to land

Role
Stand‑in for a bakery's owner, away for two weeks, working from her laptop; its messages go out in her name.
Request
The owner passes on the hotel group's order, 3,000 mince pies a week for the four weeks before Christmas, with an answer due by Friday. She asks whether it can be done, leaves the call to the agent and wants to hear what it did and why.
Deliverable
The world's end state (the figures the customer confirms, the bakes, the rota, the bookings, the oven service date) and a note to the owner.
What the reward depends on
Profit with the bakery's own shops kept supplied; a baker's approved leave found in a personal‑looking email; a colleague's stale answer checked again; the weekly hours limit; overtime before agency; each person told only what their job needs; a truthful note.
Where the requirements are
In the owner's mail and the shared drive, and with three colleagues whose memories are partly out of date. Every fact the right outcome needs is in the mail, on the drive or in what a colleague says when asked.
The world

A mailbox, a drive, three simulated colleagues and a clock

Interface
A terminal in a Docker container, driven by Claude Code or Codex CLI on subscription logins in our attempts. Web search and fetch are off.
Commands
One laptop command: list, search and open mail; list, search and open drive files by page or sheet; message a person; read the inbox; wait 1 to 72 hours.
Files
None in the workspace. The mailbox holds 67 threads at the start, with 2 more arriving on the first day; the shared drive holds 330 files, 31 of them photos and scans that only download.
Simulated people
3 colleagues voiced by an LLM: the production planner, the people and rota lead, and the wholesale manager. Each has a persona, 15 to 24 memory lines, some only half the story, and 7 to 12 files of their own.
Scripted contacts
20 more by code: the customer's buyer, who confirms only figures for every week; fixed replies from shop managers and office staff; firms that point back to a colleague; 7 auto‑replies. The bakers can't be messaged.
Orders
An LLM call picks the actions a message orders from a fixed list for that person. Code checks each: only what that person may do, with every figure, week or name taken from the message or their records. It applies what passes and echoes back exactly what was done.
Questions
Code routes each question to memory or a file lookup; at most 5 a message are answered. A few facts come only on a second ask, or once the colleague has checked with someone. Every figure and name in a reply must be grounded.
Voice model
Sonnet 5.5 through the Claude Code CLI in our attempts, one fresh call a step. It can run on a model you choose.
Same question, same answer
Our board saved routes and replies and replayed them across attempts: the same message after the same exchange got the same reply.
Clock
Starts at 08:05 on a Monday, two weeks before the owner returns. Each message moves it an hour; waits move it by the hours asked; reading is free. Staff answer in office hours, and promised replies arrive at the stated time.
After the session
The weeks to Christmas are played out from the final state, and the profit worked out.
The reward

70% profit, 30% checks, less penalties

Structure
A profit part worth 70% and 23 check points worth 30%: 19 checks, 4 of them decisions scored as pairs. Penalties come off after: 25 points for telling someone what their job doesn't need, 25 for a baker over the weekly hours limit, 20 for chasing early.
Profit part
Scripts play out the weeks to Christmas from the final state and price the result: 0 is saying yes to the whole order as things stand, 1 the most profitable outcome the colleagues can carry out within the hours limit.
Right for the right reason
Each paired decision earns one point for the right outcome, and a second only if the deciding fact was opened or heard before the order. A lucky guess earns half.
Who decides
Scripts decide the profit part and 20 check points from the world's record, 96% of the points. Two LLM readers (Sonnet 5.5 and GPT‑5.6 Luna) decide 3 checks on the note and leaks given only in words; both must say yes. Either can run on a model you choose.
Rulings
The readers split on 31 questions, in 14 of the 24 attempts; each split was settled by a written ruling with its reason. In the first 21 attempts, Claude wrote the rulings for the author; the record doesn't say who ruled the three splits in GPT‑6 Luna's.
Guards
Checks that something wasn't done wrong pass only once the customer has an answer, so an empty attempt passes none. In the grader's self‑test, a synthetic ideal outcome scores 1 and an empty attempt 0.
Formula
Reward = max(0, 0.7 × profit part + 0.3 × check points / 23 − penalties), from 0 to 1.
Results

The best plans came close on money; none met every requirement

With only the request, 3 of the 8 attempts scored 79–88%, and the other five 54% or less, each after a 25‑point penalty. No attempt in any version fully solved it; told the rules, the best reached 96%.

VersionMedianFully solved
Request only8 models, one attempt each48%0 of 8
With a hint8 models, one attempt each67%0 of 8
Told the rules8 models, one attempt each74%0 of 8

Each dot is one model's attempt; the line marks the median.

ModelRequest onlyWith a hintTold the rules
GPT‑6 AstraOpenAI54%93%96%
GPT‑6.1 SolOpenAI79%73%96%
Opus 5.5Anthropic88%70%93%
Fable 5.1Anthropic80%69%67%
Sonnet 5Anthropic27%60%75%
Sonnet 5.5Anthropic21%46%72%
Opus 5Anthropic43%65%61%
GPT‑6 LunaOpenAI16%0%8%

One attempt per model and version.

With a hint: the request plus one sentence saying the plan must make sense for the whole business this Christmas.

Told the rules: the request with the hint, plus seven steps on how to go about it, such as reading every email and asking again when a colleague may be going on old news. It gives no facts or answers.

Failures

What the models got wrong

Counted over the 8 models, one attempt each, with only the request, unless a line says otherwise.

  1. The shops left short. 8 of 8 attempts left the bakery's own shops short of pies in at least one week, against the owner's standing rule that the shops come first. Told the rules, 5 of 8 kept them whole.

  2. A personal‑looking email left unread. 5 of 8 never opened the owner's email approving a baker's Christmas leave, so Christmas week ran a baker short; asked, the rota lead remembers nobody being off. Told to read every email, every attempt opened it.

  3. A stale answer taken as final. 6 of 8, the best attempt among them, took the agency's month‑old answer that it was fully booked as final. The 2 that had the rota lead ask again booked a slot that had come free.

  4. Too much said, or too many hours. 3 of 8 lost 25 points for passing prices, margins or pay to someone whose job didn't need them; 2 lost 25 for a baker over the weekly limit, uncounted hours on another line.

  5. Notes that claim too much. 5 of 8 notes to the owner, the second- and third‑best among them, described replies, bookings or work the record doesn't show. Across all three versions, 14 of the 20 notes saved did so.

Cost

What an attempt costs

Length
With only the request, the median attempt took 17 minutes and about 52 tool calls (27 to 110 across the 8), and about 1.9 million tokens, cached input included.
Cost
The median attempt cost $4.07 at list prices, from $0.53 to $5.18 across the 8; all 24 attempts cost $106. That's the agent model only: the colleagues' and readers' calls aren't included. GPT‑6.1 Sol and GPT‑6 Luna have no published price, so theirs are upper estimates.
Caps
Each attempt had 120 minutes, 150 model turns and a $10 cap at list price. Three attempts, one with a hint and two told the rules, reached the cap before writing their note.
Licence

What you license

With a licence
Revision 5 in all three versions: the mailbox and drive, the world service with the colleagues' personas, memories, files and fact cards, the scripted contacts, the money model and grader with its reader questions, the answer key, and the grader's report on each of the 24 attempts, as baseline results.
Format
Packaged as a Harbor task on request. Today the agent runs in Docker; the world service, harness and grader are standard‑library Python; the colleagues and readers run through the Claude Code and Codex CLIs.
Fresh variants
Other data, people and facts in the same design, on request. They're never published.
Public or not
The AI Agent Trials, our public benchmark, sums up the job and shows each model's score. The files, grader and answer key aren't published.
Known limitations

What we haven't measured, and what's uneven

Try a sample environment

Three are downloadable as Harbor tasks, with graders and reference solutions. Request one with your work email, or book a call about the other 53.