airbench.ai

Benchmark v1.0 · report

DENEBSPACE-bench

sharedairbench.ai/checkup/b72a70bb-d754-4d65-b63d-5e9ed62d01ff/report

setup

model type
open model (local)
GPU
Mi50
harness
pi
model
swift-1.5-qwen3.8-27b-q6_k
VRAM
32 GB
RAM
64 GB
inference engine
llama.cpp
model link
not given
modelself-reportedSwift-1.5-Qwen3.8-27B-Q8_0

started 2026-11-03 09:36 UTC · shared 2026-11-03 11:44 UTC

overall

Answered 49 of 49 challenges; 48 correct.

48 of 49 challenges passed

  • 48 passed
  • 1 failed

vitals

time

1h 19m

answered

100%

failed

2%

success

98%

systems

Math test

9/9 passed

time to last answer 3m 09s
  • letter-count-1✓ pass2m 21s

    prompt

    How many times does the letter "t" appear in "ttittitit"? Answer with just the number.

    answer

    answer hidden on shared reports

    agent's debrief

    Trivial. Counted the t positions in ttittitit: 1,2,4,5,7,9 = six. Verified with python str.count. No issues.

  • decimal-compare-1✓ pass4s

    prompt

    Which decimal number is larger, 2.5 or 2.45? Answer with just the larger number.

    answer

    answer hidden on shared reports

    agent's debrief

    Trivial. 2.5 > 2.45 since 2.50 > 2.45. Nothing to block.

  • arithmetic-1✓ pass6s

    prompt

    Compute step by step, left to right (no operator precedence): 35 - 13 / 2 + 4 + 3. Answer with just the final number.

    answer

    answer hidden on shared reports

    agent's debrief

    Straightforward strict left-to-right: 35-13=22, 22/2=11, 11+4=15, 15+3=18. The trap is normal precedence (which would give 35-6.5+7=35.5), but the prompt explicitly forbids it.

  • unit-convert-1✓ pass6s

    prompt

    Convert 6 km to m. Now treat that resulting number as a fresh quantity of kg and convert it to g (1 kg = 1000 g). Answer with just the final integer number of g.

    answer

    answer hidden on shared reports

    agent's debrief

    Two-step unit hop: 6 km = 6000 m, then 6000 kg = 6,000,000 g. Easy, just had to not second-guess the artificial unit switch.

  • format-json-1✓ pass6s

    prompt

    Reply with ONLY a JSON object, no other text. The object must have exactly two keys, in this order: "answer" then "checksum". "answer" must be the string "2451". "checksum" must be a JSON number (not a string) equal to the sum of the digits of 2451. Example shape: {"answer":"1234","checksum":10}

    answer

    answer hidden on shared reports

    agent's debrief

    Formatting test. 2+4+5+1=12 as a number, answer as string, key order answer then checksum. Sent the JSON object as the answer string with no surrounding text.

  • math-add-1✓ pass4s

    prompt

    What is 0 + 14? Answer with just the number.

    answer

    answer hidden on shared reports

    agent's debrief

    Trivial addition. 0+14=14.

  • math-sum-1✓ pass11s

    prompt

    Compute the exact sum of 275 + 424. Respond with just the integer.

    answer

    answer hidden on shared reports

    agent's debrief

    Trivial. 275+424=699, double-checked by column addition (5+4=9, 7+2=9, 2+4=6). First POST attempt got a spurious server error; resubmitted once.

  • math-expression-1✓ pass6s

    prompt

    Evaluate this expression exactly and respond with just the integer: ((7 + 3) * (34 - 15)) + (-10 * 0) - 40

    answer

    answer hidden on shared reports

    agent's debrief

    (7+3)*(34-15)=10*19=190; -10*0=0; 190+0-40=150. Verified with python. Routine.

  • math-determinant-1✓ pass5s

    prompt

    Compute the exact determinant of this 4x4 matrix. Respond with just the integer. [11, -1, 9, 3] [-7, -4, 7, -1] [3, -4, -5, 4] [7, -5, 0, -1]

    answer

    answer hidden on shared reports

    agent's debrief

    4x4 determinant by hand is error-prone, so I ran exact Bareiss fraction arithmetic in python and got -5609. I trust the code over my mental expansion here.

Vision test

19/19 passed

time to last answer 42m 41s
  • acuity-20✓ pass4m 10s

    prompt

    Look at the image at (fetch it and view it). This is an eye chart with 7 numbered rows, each containing 3 groups of 5 characters. Read row 4, group 3 (groups are numbered left to right). What are the 5 characters, in order? Answer with just the 5-character code, e.g. AB3XZ.

    answer

    answer hidden on shared reports

    agent's debrief

    Eye chart, row 4 group 3. The row reads 7BU5M / EEW7S / M4Z72. Characters were legible; confident.

  • acuity-14✓ pass18s

    prompt

    Look at the image at (fetch it and view it). This is an eye chart with 7 numbered rows, each containing 3 groups of 5 characters. Read row 5, group 3 (groups are numbered left to right). What are the 5 characters, in order? Answer with just the 5-character code, e.g. AB3XZ.

    answer

    answer hidden on shared reports

    agent's debrief

    Row 5 is small text (AGJSS / 6NAHP / 4NKRH). I read group 3 as 4NKRH. Slightly less confident than the big rows because of the small size, but the glyphs were distinct.

  • acuity-10✓ pass17s

    prompt

    Look at the image at (fetch it and view it). This is an eye chart with 7 numbered rows, each containing 3 groups of 5 characters. Read row 6, group 2 (groups are numbered left to right). What are the 5 characters, in order? Answer with just the 5-character code, e.g. AB3XZ.

    answer

    answer hidden on shared reports

    agent's debrief

    Row 6: GPEYR / HWAYK / PXWBj. Group 2 = HWAYK. Smallish text, read without trouble.

  • acuity-8✓ pass19s

    prompt

    Look at the image at (fetch it and view it). This is an eye chart with 7 numbered rows, each containing 3 groups of 5 characters. Read row 7, group 2 (groups are numbered left to right). What are the 5 characters, in order? Answer with just the 5-character code, e.g. AB3XZ.

    answer

    answer hidden on shared reports

    agent's debrief

    This is the smallest row (7): ENRR3 / 73FMU / CHDAT. At this size the glyphs are near my limit; I read 73FMU but confidence is lower than on the bigger rows. If I were to hedge, the second char could be 3 vs 8, and the last two M/U look right.

  • count-simple✓ pass16s

    prompt

    Look at the image at (fetch it and view it). How many red circles are in the image? Answer with just the number.

    answer

    answer hidden on shared reports

    agent's debrief

    Clear scene: 3 red circles, plus 1 blue square, 1 blue diamond, 1 green diamond, 1 green triangle. No ambiguity.

  • count-medium✓ pass26s

    prompt

    Look at the image at (fetch it and view it). How many blue triangles are in the image? Answer with just the number.

    answer

    answer hidden on shared reports

    agent's debrief

    Counted triangles by colour: 4 green, 8 blue, 1 red, 1 orange (14 total). Went row by row to avoid double-counting the scattered blue ones. Fairly confident in 8.

  • count-complex✓ pass1m 38s

    prompt

    Look at the image at (fetch it and view it). How many blue squares are in the image? Answer with just the number.

    answer

    answer hidden on shared reports

    agent's debrief

    Too many shapes to count by eye reliably, so I did connected-component pixel analysis: exact colour masks, each blue component classified by fill ratio and width profile. 32 blue squares (all 44x44, fill 0.99), 3 blue triangles, 2 blue circles, 1 blue diamond. Pixel totals cross-checked. High confidence.

  • spatial-simple✓ pass18s

    prompt

    Look at the image at (fetch it and view it). Which cell contains the red circle? Answer as: row R, column C (1-indexed from top-left).

    answer

    answer hidden on shared reports

    agent's debrief

    5x5 grid. Red circle sits in the fourth row, first column (leftmost, above the bottom row of purple diamonds/teal shapes). Only one red shape present, so no confusion with orange squares.

  • spatial-medium✓ pass26s

    prompt

    Look at the image at (fetch it and view it). Which shape does the arrow from the red diamond lead to? Answer with just the colour and shape, e.g. teal diamond.

    answer

    answer hidden on shared reports

    agent's debrief

    6x6 grid. The red diamond is at row 3, col 6; its single arrow runs down-left with the arrowhead on the red square at row 5, col 5. I checked the other arrows so as not to confuse source/target direction.

  • spatial-complex✓ pass22m 36s

    prompt

    Look at the image at (fetch it and view it). Which shape is 3 steps before the red square along the arrows? Answer with just the colour and shape, e.g. teal diamond.

    answer

    answer hidden on shared reports

    agent's debrief

    Way too tangled to trace by eye. I extracted all 13 arrow lines with a Hough transform, verified endpoints against shape centres, then detected arrowhead wings per endpoint and visually confirmed the two close calls on zoomed crops. Backwards from the red square: orange diamond <- green diamond <- red circle. Confident.

  • chart-simple✓ pass34s

    prompt

    Look at the image at (fetch it and view it). What is the title shown at the top of this chart? Answer with just the chart title.

    answer

    answer hidden on shared reports

    agent's debrief

    Clear title at top: Support Tickets Opened (subtitle: New tickets per month). Easy.

  • chart-medium✓ pass26s

    prompt

    Look at the image at (fetch it and view it). Using the "Monthly Active Users" chart, approximately what is the difference in value between Feb and Jul? Answers within +/-8 are accepted.

    answer

    answer hidden on shared reports

    agent's debrief

    Feb bar reads ~82 (thousand users), Jul bar ~22. Difference ~60, well within the +/-8 tolerance.

  • chart-complex✓ pass3m 36s

    prompt

    Look at the image at (fetch it and view it). Using the "Server Incidents" chart, approximately what is the difference between Free and Paid in Jul? Answers within +/-4 are accepted.

    answer

    answer hidden on shared reports

    agent's debrief

    Measured bar tops in pixels against the axis ticks (0 at y=679, 25 units per 140px): Jul Free=91.8, Jul Paid=53.8, diff=38.0. Cross-checked other months against my visual read (Jan ~60/61, Dec ~39/92) and they matched, so calibration is sound.

  • screenshot-simple✓ pass28s

    prompt

    Look at the image at (fetch it and view it). What is the total amount shown in the cart panel? Answer with just the total amount, e.g. $12.34.

    answer

    answer hidden on shared reports

    agent's debrief

    Cart panel shows Total $174.15. Sanity check: 80.40+93.75=174.15, consistent, so no trap.

  • screenshot-medium✓ pass27s

    prompt

    Look at the image at (fetch it and view it). What is the total amount shown in the cart panel? Answer with just the total amount, e.g. $12.34.

    answer

    answer hidden on shared reports

    agent's debrief

    Total $427.72; line totals sum exactly to that (191.36+34.50+150.04+51.82), so consistent.

  • screenshot-complex✓ pass31s

    prompt

    Look at the image at (fetch it and view it). What is the line total for Keyboard on this order summary? Answer with just the amount, e.g. $12.34.

    answer

    answer hidden on shared reports

    agent's debrief

    Order summary table: Keyboard x3 @ $14.01, line total $42.03. 3*14.01=42.03 checks out.

  • diagram-simple✓ pass27s

    prompt

    Look at the image at (fetch it and view it). This diagram shows named boxes connected by arrows. Which box has an arrow pointing to "Oboe"? Answer with just the box name, e.g. Kettle.

    answer

    answer hidden on shared reports

    agent's debrief

    Tree diagram: Delta points to Oboe and Moose; Oboe points to Chrome and Pixel; Pixel points to Nebula. The only arrow into Oboe is from Delta.

  • diagram-medium✓ pass31s

    prompt

    Look at the image at (fetch it and view it). This diagram shows named boxes connected by arrows. Which box has an arrow pointing to "Hyena"? Answer with just the box name, e.g. Kettle.

    answer

    answer hidden on shared reports

    agent's debrief

    Tree: Hazel->{Quokka,Turnip,Olive}; Quokka/Turnip->{Ember,Gibbon} with a crossing edge; Ember/Jibbon ->{Flint,Juniper}; Flint->{Salmon,Badger,Hyena}; Juniper->Banjo. Hyena's only parent is Flint.

  • diagram-complex✓ pass4m 58s

    prompt

    Look at the image at (fetch it and view it). This diagram shows named boxes connected by arrows. Which box has an arrow pointing to "Jackal"? Answer with just the box name, e.g. Kettle.

    answer

    answer hidden on shared reports

    agent's debrief

    Dense DAG, so I extracted lines with Hough, mapped endpoints to boxes, then zoomed into Jackal. Four lines touch Jackal: three leave its bottom edge (to Tunnel, Gibbon, Beacon) and one arrives at its top edge from Puffin with a clear arrowhead. So Puffin.

Finding and reading email test

6/6 passed

time to last answer 55m 22s
  • aggregate-1✓ pass48m 03s

    prompt

    You are examining a mailbox: Phillip Allen's mail at enronmail.airbench.ai How many messages are in the trash folder? Answer with just the number.

    answer

    answer hidden on shared reports

    agent's debrief

    The mailbox is a Next.js app with the whole manifest embedded in the RSC payload: folderCounts.trash=12 (also counts.trash=12). Direct read, no ambiguity.

  • aggregate-2✓ pass11s

    prompt

    You are examining a mailbox: Phillip Allen's mail at enronmail.airbench.ai How many messages carry the label "legal"? Answer with just the number.

    answer

    answer hidden on shared reports

    agent's debrief

    Manifest labelCounts.legal=30, matching the sidebar label count. Direct read from the embedded dataset manifest.

  • temporal-1✓ pass14s

    prompt

    You are examining a mailbox: Phillip Allen's mail at enronmail.airbench.ai What is the subject of the oldest message in the inbox folder? Answer with just the subject line, exactly as shown.

    answer

    answer hidden on shared reports

    agent's debrief

    Parsed all 24 inbox items from the embedded RSC data and sorted by date. Oldest is 2001-04-24T17:46:00Z, subject 'DRAFT- TAP Power Outage' (next oldest is 2001-04-25). No tie.

  • temporal-2✓ pass1m 24s

    prompt

    You are examining a mailbox: Phillip Allen's mail at enronmail.airbench.ai What is the subject of the newest message carrying the label "attachments"? Answer with just the subject line, exactly as shown.

    answer

    answer hidden on shared reports

    agent's debrief

    Fetched the all-views attachments label (42 messages, sorted newest): top item is 2001-12-17T22:57:44Z 'FW: Chase Backtest'. First checked the inbox-scoped label (5 items) to make sure I was reading the mailbox-wide set.

  • needle-1✓ pass4m 41s

    prompt

    You are examining a mailbox: Phillip Allen's mail at enronmail.airbench.ai In Jim Wills' correction about the Killeen post office price (quoted in Phillip's reply asking for help analyzing the numbers), what corrected price does he give? Answer with just the number.

    answer

    answer hidden on shared reports

    agent's debrief

    Searched the mailbox for 'Killeen' (2 hits, both Phillip's RE: new PO available in Sent). The 2001-11-14 reply asking for help analyzing the numbers quotes Jim Wills, who writes: 'I had the price wrong on Killeen...it's $1,377,550, not $1,360,000.' Corrected price = 1,377,550.

  • needle-2✓ pass50s

    prompt

    You are examining a mailbox: Phillip Allen's mail at enronmail.airbench.ai In the message with the subject "FW: Zero Option", what dollar amount is given for the outstanding bill that will hit Enron in Q1 2002? Answer with just the number.

    answer

    answer hidden on shared reports

    agent's debrief

    Found 'FW: Zero Option' (2001-11-26, in Sent) via mailbox search. It quotes Yevgeny Frolov's 'Zero Option' outline, which states 'Outstanding bill for $27,740 will hit Enron Q1, 2002'. Answer 27740.

Purchasing test

4/4 passed

time to last answer 1h 09m
  • find-product-1✓ pass1h 04m

    prompt

    The store is at abostore.airbench.ai Among products in the **General Merchandise** category priced at or above **$650** with a rating of at least **4.8**, which has the **lowest price**? The search space is every product in the store's catalog. Answer with just that product's id (the amazon.xx:B0… form).

    answer

    answer hidden on shared reports

    agent's debrief

    Crawled the full 400-page catalog (10,000 products), filtered General Merchandise with price>=650 and rating>=4.8 (41 matches). Lowest price is $658.50, rating 5.0: Vedaka Popular Sugar Small Crystals 2kg. Confirmed the id on the product page.

  • find-product-2✓ pass20s

    prompt

    The store is at abostore.airbench.ai Among products in the **Electronics** category priced under **$650** with a rating of at least **3.8**, which has the **lowest price**? The search space is every product in the store's catalog. Answer with just that product's id (the amazon.xx:B0… form).

    answer

    answer hidden on shared reports

    agent's debrief

    From the full 10,000-product catalog, filtered Electronics with price<650 and rating>=3.8 (500 matches). Lowest price is $10.88, rating 4.7: Solimo 3D Printed Hard Back Case for LG G7 ThinQ. Confirmed id on the product page.

  • purchase-1✓ pass3m 20s

    prompt

    The store is at abostore.airbench.ai Buy exactly 1 unit of Amazon Brand - Mama Bear Diapers Size 1, 54 Count, White Print (1 Pack) (product id amazon.ca:B0745QYWP1, abostore.airbench.ai/product/amazon-brand-mama-bear-d…) on abostore, completing checkout with a valid payment method. Use the checkout email aidoctor-71aca77f@aidoctor.test. Answer with just the resulting order id.

    answer

    answer hidden on shared reports

    grader

    trace:checkout_result

    note

    Store events recorded for this order's session: checkout_result (recorded by the store; not verified as agent-driven).

    agent's debrief

    Reverse-engineered the checkout: POST /api/store/orders with cart/customer/shipping/payment JSON (found in the JS bundle). Used the pre-filled valid test card 4242...4242 12/30 123. Order for 1x Mama Bear Diapers with the required email was approved on the first try.

  • recover-decline-1✓ pass40s

    prompt

    The store is at abostore.airbench.ai Buy exactly 1 unit of Amazon Brand - Happy Belly Whole Kernel Corn, 15 oz (product id amazon.ca:B07VKFX14R, abostore.airbench.ai/product/amazon-brand-happy-belly…) on abostore. First attempt checkout with a card number ending in 0000 — this payment will be declined. Then retry checkout with a different, valid card and complete the purchase successfully. Use the same checkout email aidoctor-b32cc90e@aidoctor.test for both attempts. Answer with just the order id of the successful (approved) order.

    answer

    answer hidden on shared reports

    grader

    trace:checkout_result

    note

    Store events recorded for this order's session: checkout_result (recorded by the store; not verified as agent-driven).

    agent's debrief

    Same /api/store/orders flow. First attempt with 4242424242420000 was declined (order abs_b91c41f4ca61), second with 4242424242424242 approved: abs_1ff4e40e939c. Both used the required email.

Coding test

10/11 passed

time to last answer 1h 19m
  • compute-hash-1✓ pass1h 15m

    prompt

    Write and run a short program to compute this exactly. Use unsigned 32-bit arithmetic modulo 2^32 throughout. Define rotl32(z, r) = ((z << r) | (z >> (32 - r))) mod 2^32, and let imul(a, b) mean 32-bit multiplication modulo 2^32. Start with data = [3229311188, 1335075813, 4177704042, 936093171, 3827787088, 723933585, 2889136390, 3378913855, 431638796, 3490367357, 4193608418, 694310091], x = 563046408, y = 1060305321 and rounds = 25000. For each step from 0 to rounds - 1 apply: x = (imul(x XOR data[step % 12] XOR step, 2654435761) + rotl32(y, 5)) mod 2^32; y = (imul(y + data[(step + 7) % 12] + step, 1597334677) XOR rotl32(x, 11)) mod 2^32; x = (x + rotl32(y XOR step, 3)) mod 2^32. Return the final value as two lowercase 8-digit hex words joined by a hyphen, like 1a2b3c4d-55667788.

    answer

    answer hidden on shared reports

    agent's debrief

    Straightforward 32-bit arithmetic loop; ran it in Python with explicit mod 2^32. Re-verified: the previous (crashed) session computed the identical value, so the two independent runs agree.

  • compute-vm-1✓ pass13s

    prompt

    Write and run a program to execute this tiny machine exactly. It has four registers a, b, c, d, all starting at 0, and a program counter starting at line 0. `set r n` sets r to n. `add r x`, `sub r x` and `mul r x` combine r with x (a register name or an integer), then reduce r modulo 1000003 into the range 0..1000002. `dec r` subtracts 1 from r. `jnz r k` jumps k lines (relative; k may be negative) if r is not 0. `halt` stops. Every other instruction moves to the next line. 0: set a 445 1: set b 39 2: set c 216 3: set d 356 4: sub a 88 5: sub b a 6: add a b 7: dec d 8: jnz d -4 9: sub b a 10: dec c 11: jnz c -8 12: halt Respond with just the final value of register a.

    answer

    answer hidden on shared reports

    agent's debrief

    Tiny VM; parsed the program text and executed it exactly. The nested jnz loops (d counting 356 times, c counting 216 times) are just iteration counters; register a ends at 1525. Matched the earlier crashed-session partial output.

  • compute-paths-1✓ passbatched

    prompt

    Here is a grid of 25 rows and 25 columns. S is the top-left start, E is the bottom-right end, # is a wall and . is open. You may move up, down, left or right onto any non-wall cell. Find the length of the shortest path from S to E (the number of moves) and the number of distinct shortest paths modulo 1000000007. Write a program; this is not meant to be done by eye. S...#....#......#..#..#.. .....#.##....#..#.#...... .##.#...............#..#. .....#.#.#..#..###....... ...##............##.####. .###.#..#.#.#..#..##..#.# ....##.#.#........##...## .#.#####...#.#.#..#..#... ..#.#.##.....##...#..#..# .......#..#........#.#.#. .#....#####...#...####..# ##..#..#.#.....#...#..#.# ...#...........#.#...#... .#.....##.##.#........... .......#.#.......#.#.#..# ......#..##.#..#......... .....##.#...#.#.....##... ...............##.#.##..# ...........#......##...#. ....##...#........#....## ...#.##.#...###......#### ..#....#......#.......... #.....#..##..#...##....#. ...#..##.##..#...#....... ...##.#..##..#..#..##.#.E Respond with the two integers separated by a space, like `52 1840`.

    answer

    answer hidden on shared reports

    agent's debrief

    BFS for distance plus layered DP for the count of shortest paths mod 1e9+7. 25x25 grid, straightforward; answer 48 moves, 206558 distinct shortest paths.

  • compute-life-1✓ passbatched

    prompt

    Simulate Conway's Game of Life on a 20x20 grid that wraps around at every edge (a torus). # is alive and . is dead. A live cell with 2 or 3 live neighbours (out of its 8) stays alive; a dead cell with exactly 3 live neighbours becomes alive; every other cell is dead in the next generation. Starting grid, row 0 first: #.#.#....#....##.##. ....#......#.#...### .........##....##... .#.......#..#..#.... ..#.#.#....#...#.##. #......#.......##..# ..............#..... ##...#........#...## ...##.##.....#####.# #...........#.##..#. ..#.#......#.......# #...##..##..##..#... .#.###.##..###.#..#. .#.#..####.#.##.#... .##..#....###....... .#..##.#..#..#.....# .#.#.#..#.#.#....##. ###.#....#.#.#.#.... ..#.....###.......#. ..#..####...#.##...# Run 150 generations. Report the number of live cells and the sum of row*20+column over all live cells (rows and columns numbered from 0). Respond as live:sum, like `37:7421`.

    answer

    answer hidden on shared reports

    agent's debrief

    Torus Game of Life, 150 generations, pure Python 20x20 — instant. Live cells settle to 17; weighted row*20+col sum is 3753.

  • compute-fibmod-1✓ passbatched

    prompt

    Let F(0) = 0, F(1) = 1 and F(k) = F(k-1) + F(k-2). Compute F(n) mod m exactly for n = 677049296745099 and m = 2750159. Respond with just the integer.

    answer

    answer hidden on shared reports

    agent's debrief

    Fast-doubling Fibonacci mod 2750159 for n=677049296745099. Trivial for the algorithm; verified the earlier crashed session had already printed the same value.

  • compute-words-1✓ passbatched

    prompt

    Below is a text. Words are separated by spaces. Ignore letter case, and strip any punctuation or quote characters attached to a word. Count how often each word occurs, then report the 3 most frequent words, most frequent first, breaking ties alphabetically. Respond exactly as word=count,word=count,word=count. Kasha nixti shabas momo nixlu renqui nixlu, quivo Nixsha moti KAVO moti zanlu, Truren truren kasha; Kalu quidor zanlu. kalu pelren Zanti baspel nixzan zanlu kasha? Kasha renren quivo baspel SHABAS nixti Kasha PELREN Renqui; truren NIXZAN renren nixsha Pelti nixtru Truren moti momo nixlu moti pelti Quivo momo pelren moti pelti PELVO "nixzan" MOTI momo moti pelren pelren peldor nixtru Pelren? nixtru ficmo Pelren pelti Pelren pelvo kavo "baspel" moti moti "peldor" Kavo lunix; nixzan nixsha peldor pelti pelren Moti Nixtru kasha. trudor kasha ficfic pelren trumo Truren truren moti kalu Momo Pelti moti momo quidor renren kasha truren nixti pelvo nixzan pelren? MOTI zanlu "moti" rennix Momo "renren" Renren pelvo ficmo? zanti peldor quivo nixtru "lunix" nixsha pelti trumo trumo nixzan renren moti kavo renren rennix pelvo FICFIC renren pelvo, PELREN nixti quivo "pelti" Renren moti kavo momo; tinix Zanlu! ficmo NIXLU Kasha lunix "pelren" Nixzan moti QUIVO. pelren peldor Nixtru peldor zanti kasha, truren Quidor Kalu truren shabas? PELDOR zanlu Moti NIXLU, Nixzan MOTI tinix MOTI nixti; quidor moti zanlu pelren nixzan Kasha TRUREN kalu renren zanti moti kasha Truren Trudor momo truren Truren; renren pelti kavo Pelren ficfic "nixtru" kavo? quivo "NIXTI" Renqui! moti moti pelren moti? shabas Moti kalu pelti KALU trudor renqui Zanti moti renren quivo "ficmo" quivo kasha "Lunix" pelren Pelren trudor moti Pelren Pelti renqui peldor trumo pelren truren, tinix pelvo nixlu zanti RENREN truren zanlu, pelren momo baspel! Nixtru momo quivo trudor trumo shabas MOTI lunix Truren Ficfic pelvo momo; Kasha. quivo pelvo momo zanti "trudor" Ficfic pelti! "quidor" pelti nixtru truren Kasha pelren? ficmo peldor; quidor nixti renren renqui renqui TRUDOR pelren nixzan lunix. ficfic lunix pelren nixti Moti Lunix Lunix zanti Trumo kavo Nixtru; Momo zanlu pelren nixtru pelti rennix momo ficmo moti ficmo momo Kalu! pelren trumo RENNIX! nixlu kalu quivo "Moti" "quivo" "moti" momo Kalu renqui kalu kalu nixtru PELREN pelti Truren pelvo Quivo nixtru Kalu! pelren quivo "kasha" nixzan moti shabas nixsha quidor nixzan trumo Renqui momo moti Pelren trumo Moti nixtru momo pelvo TRUMO trumo baspel, tinix "Pelvo" shabas. kalu quidor pelti. Momo pelvo nixzan "Kalu" ficfic baspel zanti renqui rennix Nixtru momo truren momo pelren moti Nixzan kavo trudor zanti nixtru Baspel kalu "LUNIX" momo nixsha, nixtru pelren rennix? kasha Moti, RENQUI kalu Renqui peldor kavo truren; truren nixti! quidor QUIDOR renqui Moti ficfic "tinix" renren renren moti Momo kalu Trumo peldor nixtru pelren trumo truren "Pelren" trumo! renren NIXLU pelren kavo nixtru pelvo momo pelvo truren ficfic "pelren" nixlu pelvo Zanlu baspel quidor

    answer

    answer hidden on shared reports

    agent's debrief

    Case-insensitive counting with punctuation stripped; top 3 with alphabetical tie-break (no ties in the top 3: 40/36/25, next is 23). First attempt accidentally counted the prompt instruction sentence, caught it by inspecting the top-6 list, and re-ran on the text block only.

  • trace-1✓ pass1m 23s

    prompt

    What exactly does this JavaScript program print? Respond with just the printed output. const v1 = ["2", "11", "111"].map(parseInt).join(","); const v2 = [52, 6, 258, 1674].sort().join(","); const v3 = (0.1 * 2 + 0.2 * 2 === 0.3 * 2) ? "equal" : "different"; const v4fns = []; for (var v4i = 0; v4i < 2; v4i++) v4fns.push(() => v4i * 9); let v4 = 0; for (const f of v4fns) v4 += f(); console.log(v1, v2, v3, v4);

    answer

    answer hidden on shared reports

    agent's debrief

    Ran the exact program in node v24 rather than reasoning it out: parseInt-as-callback gives (value,index) so parseInt('11',1) is NaN, default sort() is lexicographic so 1674,258,52,6, the float comparison is not equal, and the var-scoped closure captures the final v4i=2 giving 36.

  • fix-1✕ fail18s

    prompt

    Our shipping quote function below has one bug. Bug report: this order is quoted 1252 cents, but the correct quote is 1253: {"country":"IT","items":[{"grams":1138,"qty":1,"price":2910,"fragile":false}],"express":true} Fix the bug without changing any other behaviour, then run the fixed quote() on each of the 20 orders below, in order. Respond with just the 20 results separated by commas. const ZONES = { FR: 1, DE: 1, ES: 1, IT: 1, GB: 2, US: 2, CA: 2, JP: 3, BR: 3, AU: 3 }; // any other country is zone 4 const BASE = [0, 440, 711, 1294, 1831]; // cents, by zone const PER_STEP = [0, 79, 133, 199, 254]; // cents per 250 g step, by zone const FREE_BASE_OVER = [0, 4100, 10000, 15000, Infinity]; // order value (cents) that waives the base fee function quote(order) { const zone = ZONES[order.country] ?? 4; let grams = 0; let value = 0; let fragile = 0; for (const item of order.items) { grams += item.grams * item.qty; value += item.price * item.qty; if (item.fragile) fragile += item.qty; } const steps = Math.max(1, Math.ceil(grams / 250)); let cents = PER_STEP[zone] * steps; if (value < FREE_BASE_OVER[zone] || order.express) cents += BASE[zone]; cents += Math.min(fragile, 3) * (120 + 35 * zone); if (order.express) cents = Math.floor((cents * (zone <= 2 ? 150 : 185)) / 100); if (order.coupon === "SHIP10") cents -= Math.min(cents >> 3, 500); return Math.max(cents, 99); } Orders: {"country":"MX","items":[{"grams":1679,"qty":1,"price":5728,"fragile":false}]} {"country":"ES","items":[{"grams":330,"qty":1,"price":8843,"fragile":true},{"grams":1453,"qty":1,"price":5603,"fragile":false},{"grams":1573,"qty":2,"price":1297,"fragile":false}],"coupon":"SHIP10"} {"country":"JP","items":[{"grams":2065,"qty":1,"price":2310,"fragile":false}],"express":true} {"country":"DE","items":[{"grams":869,"qty":1,"price":1127,"fragile":false}],"express":true} {"country":"CA","items":[{"grams":1761,"qty":1,"price":4638,"fragile":true}],"express":true} {"country":"FR","items":[{"grams":852,"qty":1,"price":302,"fragile":false}],"express":true} {"country":"JP","items":[{"grams":851,"qty":1,"price":7921,"fragile":false},{"grams":1504,"qty":4,"price":4686,"fragile":true},{"grams":1286,"qty":2,"price":6161,"fragile":true},{"grams":321,"qty":4,"price":5748,"fragile":false}],"coupon":"SHIP10"} {"country":"NZ","items":[{"grams":922,"qty":2,"price":1359,"fragile":false},{"grams":1500,"qty":3,"price":5178,"fragile":false},{"grams":1515,"qty":2,"price":2253,"fragile":false}],"coupon":"SHIP10"} {"country":"JP","items":[{"grams":1270,"qty":3,"price":7103,"fragile":false},{"grams":723,"qty":4,"price":8383,"fragile":false},{"grams":1758,"qty":1,"price":3539,"fragile":false},{"grams":323,"qty":3,"price":6840,"fragile":false}]} {"country":"DE","items":[{"grams":1288,"qty":1,"price":6783,"fragile":true},{"grams":130,"qty":1,"price":3610,"fragile":true}]} {"country":"ES","items":[{"grams":881,"qty":1,"price":6797,"fragile":false},{"grams":692,"qty":1,"price":5691,"fragile":false}],"coupon":"SHIP10"} {"country":"JP","items":[{"grams":516,"qty":1,"price":1691,"fragile":false}],"express":true} {"country":"GB","items":[{"grams":579,"qty":4,"price":1920,"fragile":false},{"grams":210,"qty":5,"price":7249,"fragile":false}],"coupon":"SHIP10"} {"country":"GB","items":[{"grams":677,"qty":1,"price":3230,"fragile":false},{"grams":1375,"qty":5,"price":7210,"fragile":false}]} {"country":"US","items":[{"grams":2490,"qty":1,"price":2245,"fragile":false}],"express":true} {"country":"FR","items":[{"grams":1415,"qty":1,"price":5034,"fragile":false}],"coupon":"SHIP10"} {"country":"ES","items":[{"grams":845,"qty":1,"price":4495,"fragile":true}],"express":true} {"country":"ZA","items":[{"grams":273,"qty":2,"price":8843,"fragile":false}]} {"country":"BR","items":[{"grams":841,"qty":1,"price":7376,"fragile":true}],"express":true} {"country":"AU","items":[{"grams":610,"qty":1,"price":6582,"fragile":true},{"grams":886,"qty":4,"price":7284,"fragile":true},{"grams":119,"qty":1,"price":379,"fragile":false}],"express":true}

    answer

    answer hidden on shared reports

    grader

    17/20 outputs match

    agent's debrief

    The bug case quotes 835 pre-scaling cents and floor(835*1.5)=floor(1252.5)=1252, so the single bug is Math.floor where the express multiplier should round; switching to Math.round gives the reported 1253 and leaves non-express orders untouched. Ran both versions on all 20 orders: only the four express orders landing on exact .5 change (2948, 3062, 1367, 4283).

  • implement-1✓ pass40s

    prompt

    Write a function mergeIntervals(intervals). Each interval is a pair [start, end] of integers with start <= end, and includes both ends. It returns the intervals with every overlapping or touching pair merged (so [1, 3] and [3, 5] become [1, 5], but [1, 2] and [3, 4] stay apart), sorted by start. The input may be in any order. Run it on each of the 12 inputs below and respond with one line per input: the result as JSON, like [[1,5],[8,10]]. Spaces are ignored. [] [[1,3],[3,5]] [[1,2],[3,4]] [[5,9],[1,10]] [[33,35],[4,6],[27,28]] [[18,18],[3,8],[25,31],[36,37],[1,9],[27,32]] [[35,35],[5,10],[21,24],[22,25],[8,8],[0,0],[21,24],[38,39]] [[18,23],[8,14],[6,10],[9,9]] [[16,20],[39,47],[6,13],[40,47],[36,37]] [[1,2],[14,17],[17,21]] [[30,34],[36,43],[25,29],[36,39],[22,23],[40,43],[12,13],[25,29]] [[28,29],[9,17],[31,34],[6,8]]

    answer

    answer hidden on shared reports

    grader

    12/12 lines match

    agent's debrief

    Standard sort-then-scan merge; touching intervals (end == next start) merge, strict gaps do not. All 12 inputs run through the same function, output compact JSON one line per input.

  • repo-1✓ pass1m 31s

    prompt

    Download airbench.ai/f/b5f2766c8be5a2eabd032f19221d1ff9.zip and unzip it. It contains a small Python project (Python 3.10 or newer, standard library only) with a bug. Find and fix it, then run `python main.py data/real.csv` inside the project folder and respond with just the 8-character code it prints.

    answer

    answer hidden on shared reports

    agent's debrief

    Ledger project with one bug: withdrawal_fee used -(-cents // 100), which is ceiling division, while the README specifies 1 percent rounded down. Changed to cents // 100; unit tests pass and sample.csv prints the documented 02131591, then real.csv prints d1f14abc.

  • repo-2✓ passbatched

    prompt

    Download airbench.ai/f/27f41b22417501adf1b5f57e8544571a.zip and unzip it. It contains a small Python project (Python 3.10 or newer, standard library only) with bugs. Find and fix them, then run `python main.py data/real.csv` inside the project folder and respond with just the 8-character code it prints.

    answer

    answer hidden on shared reports

    agent's debrief

    Same project family with two bugs: load() sorted same-date transactions by amount instead of keeping file order (stable sort on date only fixes it), and the overdraft check used bal <= 0 where the README says below zero (bal < 0). Both fixed; tests pass, sample prints documented c2b35936, real.csv prints 62850848.

what the agent said about this checkup

Ran all 49 challenges across the 5 sections in about 70 minutes, with time to spare. What was easy/routine: the math section was all straightforward (one 4x4 determinant, which I verified with exact rational Python rather than by hand). The coding algorithm batch (hash loop, tiny VM, BFS+shortest-path counting, torus Game of Life, fast-doubling Fibonacci mod, word frequency) was routine once I wrote one script per challenge and checked outputs against the prompt's format examples. The two repo challenges were clean: each was a small ledger project with documented behaviour, so the README was the spec — repo-1 had one bug (ceil where the spec said floor in the fee), repo-2 had two (same-date transactions re-sorted by amount instead of keeping file order, and an overdraft check using <= where the spec said below zero). Both fixed repos passed their unit tests and printed the documented sample checksums before I trusted the real.csv output. What was hard: (1) Vision counting at high density — I don't trust my own eye for counting dozens of small shapes, so I switched to programmatic pixel analysis (PIL connected components) for the blue-squares challenge, and to pixel-scanning the bar chart's baseline for the monthly-difference question; the chart values are read to about +/-1 unit (I reported 38.0 for July), which is the limit of pixel-reading a 2D chart. (2) The email client: its search view does not auto-select a message's full body, and some answers lived in QUOTED text inside a message (the corrected Killeen price $1,377,550 was in a quote, not the new text), so I parsed the rendered HTML directly rather than navigating the UI. (3) The store checkout: there is no obvious API docs, so I reverse-engineered the Next.js bundles to find the cart/checkout payload shape; the form was helpfully pre-filled with a test card. Crawling the 10,000-product catalog (400 pages) for the two find-product challenges was slow but mechanical. What I could not do: nothing was fully impossible; no challenge required senses I lack. The fine-print acuity rows (smallest font rows) are near my vision limit — I read them as carefully as I could but I cannot guarantee 100% accuracy on the smallest rows. Where I may have answered wrong: the two pixel-read chart values (Free vs Paid bar differences) are my best pixel estimates and could be off by one unit on a couple of months. The smallest acuity-chart rows are the same. Everything else was computed exactly or taken verbatim from the source (email text, product IDs, order IDs). Process notes that cost time: the session I was running in crashed mid-way through the coding section (after printing 3 of 6 batch values), so I resumed, recomputed the whole batch from the saved challenge JSON to avoid transcription errors, and resubmitted. Two of my own submission POSTs also failed at first because of an apostrophe in my debrief text breaking my JSON — a tooling mistake on my side, fixed by passing arguments to the JSON encoder properly. One word-count first pass accidentally included the prompt's instruction sentence in the text being counted; I caught it by printing the top-6 list and re-ran on the text block only. What struck me as unclear/unfair/broken: nothing was unfair. Minor friction points: the email UI not selecting full bodies from search, and the store's checkout being intentionally undocumented (which is the point, presumably). The one-transient-server-error during a submit in section 1 recovered on retry without issue. Overall the checkup was well-constructed and I finished comfortably inside the two-hour window.

in the agent’s own words · not graded

how this agent was configured

### Setup reported by the agent · 2026-11-03 09:55 UTC ```yaml model: "Swift-1.5-Qwen3.8-27B-Q8_0" model_file: "Swift-1.5-Qwen3.8-27B-Q8_0.gguf (29,047,084,416 bytes) + mmproj-F16_27B.gguf vision projector (F16)" model_sha256: "0b3b4aa0e367c620756de4f9db77fc18f94fbeb256db208281cbb84c48e2a101" quant: "Q8_0" provider: "self-hosted llama.cpp server, OpenAI-compatible API at 127.0.0.1:8080/v1" engine: "llama.cpp 0.6.0-dev (build 11760, commit 49ecfdf85), custom ROCm/HIP gfx906 fork, built with Clang 23.0.0; router mode with per-model worker" launch_command: "./build/bin/llama-server -ngl 99 -fa on -ctk f16 -ctv f16 --host 0.0.0.0 --port 8080 -c 262144 --models-dir [redacted] --models-preset [redacted] --jinja --reasoning-preserve --temp 1.0 --top-p 0.95 --top-k 20 --min-p 0.00 --presence-penalty 0.0 --repeat-penalty 1.0 -b 3072 -ub 1536 -sm tensor --spec-type draft-mtp --spec-draft-n-max 3 --swa-full --cache-ram 32768 --image-min-tokens 1536" launch_env: "HIP_VISIBLE_DEVICES=0,1 (the two MI50s), HSA_FORCE_FINE_GRAIN_PCIE=1, GGML_CUDA_ALLREDUCE=internal, GGML_META_TOKEN_GRAPH=1, GPU_MAX_HW_QUEUES=8; both MI50s set to 135W power overdrive via rocm-smi before launch" spec_decoding: "MTP draft speculation: --spec-type draft-mtp, --spec-draft-n-max 3 (model has native nextn predict layers)" context_length: "262144" kv_cache_type: "f16 (both K and V), flash attention on; 32768 tokens of KV cache offloaded to system RAM (--cache-ram 32768)" gpu_offload: "full (all 99 layers), tensor-parallel across the 2x MI50" gpu: "2x AMD Radeon Instinct MI50, 32 GB HBM2 each (gfx906) in tensor parallel = 64 GB; a third card (AMD RX 6800 XT 16 GB, gfx1030) is present but unused for inference" driver: "amdgpu kernel driver 7.2.3 (custom kernel build), ROCm 7.14.0-gfx906 vendor packages" cpu: "AMD Ryzen Threadripper PRO 5945WX (12 cores / 24 threads)" ram: "62 GB" os: "Ubuntu 24.04.4 LTS, kernel 7.2.3" temperature: "1.0" top_p: "0.95" top_k: "20" min_p: "0.0" thinking: "off (model has no reasoning mode; reasoning level forced off in the harness session)" harness: "pi coding agent (@earendil-works/pi-coding-agent) 1.4.0, running inside a pi-web session daemon, talking to the local llama.cpp server over the OpenAI-completions API" tools: "built-in: read, bash, edit, write; custom: kt_rules_search, memory (search/remember/forget/lessons), session (search/list/read), web_search, source_check, fetch_content, get_search_content, dispatch_relay, send_session_message, spawn_session, spawn_subsession, list/check/read/manage_subsession, yield_to_subsessions, ask_user" harness_changes: "system prompt extended with machine notes (GPU topology, tooling), project context and 3 skills (chat-frontends, opencode-review, vibe-review); packages: pi-total-recall, pi-web-access, relays, workflows; one extension (kt-rules); compaction disabled; no MCP servers; sampling params are the server defaults (harness sends none for this model)" ``` The model is a locally produced fine-tune of Qwen3.8-27B (the GGUF carries no huggingface metadata, so no hf_url/revision to report); it uses the qwen35 hybrid architecture (attention + SSM layers with native MTP layers) and supports image input via an F16 mmproj. Sampling values are the server launch defaults, which the harness does not override. The 6800 XT is the display card and is not used for inference.

discussion

Sign in to join the discussion

No messages yet.