AgentSquares / README.md
DHDRL's picture
Upload 107 files
6cb442b verified
|
Raw History Blame Contribute Delete
4.53 kB
metadata
license: apache-2.0
tags:
  - agent
  - evaluation
  - monitoring

Squares Progress Agent

A small, offline-first agent that monitors public claims about packing n unit squares into the smallest square. It extracts claimed container sides from pages, validates geometry when coordinates are given, compares claims to a local bound table, and reports improvements, candidates, conflicts and errors.

This repository contains code only. There are no model weights.

The point of the project is the evaluation: which parts of the pipeline cause or prevent false "improvement" reports.

Read first

  • The synthetic scenarios were written by the same author as the agent. They test the design on its own fixtures and are not an independent test.
  • Real-page results (below) come from private local runs on private captures. The raw pages, source URLs and quote-bearing labels are withheld, so those tables cannot be reproduced from this repository.
  • LLM extractor numbers (below) also come from private local runs. They are not produced by make test, were not re-run after a later code-hash change, and cannot be reproduced from this repository without a live model endpoint.
  • The held-out sets are small, so the confidence intervals are wide.
  • The agent has not discovered or improved any packing record.

Reproducible result (synthetic, make test)

Numbers below are from results/synthetic_publish_check.txt and results/eval.json, and are reproduced by make test.

system pass (23 scenarios) false improvements
agent (rule extractor) 22/23 0
regex + same guards 12/23 0
plain regex baseline 4/23 8
agent without retry 20/23 0

The one agent miss is a LaTeX-table scenario, which is a deliberate distribution-shift case.

results/budget_curve.csv is produced by a script that forces the same max_steps on every scenario. s09_budget_tight expects exhaustion at its native budget of 2, so the agent score of 21/23 (91%) at budget 8 is expected.

Local results (not reproducible from this repo)

Real-page and LLM numbers come from private local runs. They are recorded in this repository but cannot be reproduced from the publishable tree alone.

Real batch 1 is taken from results/real_publish_check.txt (scenarios real01–real15). Real batch 2 is taken from results/batch2_eval.txt. The LLM sample is taken from results/llm_sample7_arms.txt (and the narrative in results/llm_summary.md). results/heldout_scored.json and results/batch2_eval.txt record code hash eac25bad096c9a9c; the published code differs because scrubbing, and a later change that made the model id required, changed the hashed files.

set agent regex + guards plain regex
real batch 1 (15 pages) 15/15 14/15 9/15 (6 false improvements)
real batch 2 (12 pages, one source type) 12/12 12/12 10/12 (2 false improvements)

Batch 2 cannot tell the rule extractor and regex+guards apart. An optional LLM extractor — a free-tier hosted model (arm name flint); endpoint settings are not published — was tried on 7 scenarios and passed 6, with no fallback to the rules. The rule extractor passed all 7, so there is no evidence the LLM helps.

What it does

search → fetch → extract → drop rejected or stale claims → validate coordinates → compare to bounds → report

  • An improvement needs coordinates that validate. A lower number without coordinates is only a candidate.
  • Exact rational packings are proofs. Float validation is not a proof, and near-bound float claims stay candidates.
  • Hedged or retracted lines are skipped, which costs some recall.
  • The LLM extractor proposes only (n, quote). The side value is parsed from a verbatim quote and goes through the same guards.

Run

make test        # synthetic scenarios only, no network, no API key

The real-page evaluation skips with a message when the private fixtures are missing. Live LLM calls need SQ_LLM_API_KEY, SQ_LLM_BASE_URL and SQ_LLM_MODEL in the environment.

Known limits

  • Lists like 5,6 are ambiguous with comma decimals.
  • No Kaggle CSV adapter; the column and angle conventions are unconfirmed.
  • bounds.json covers n = 1..29, 68, 102, 299 from a published catalogue. For n = 102 and 299, community claims may be lower than the catalogue.

Next steps

Real search through official APIs, interval-arithmetic certification for near-bound float claims, and a fresh held-out batch.

License

Apache-2.0