VisHarness logo VisHarness Aug 31, 2026 · release snapshot 0.1.0a2
Capability record Grok 4.6-high · ARC-AGI-3 · 25/25 games · score 100.0 Official replays: 25 linked

VisHarness: A Lightweight Visual Agent Harness for VLMs to Reason, Act, and Think with Visual Tools

Typed contracts, provenance-preserving artifacts, fail-closed readiness, and matched evaluation make that loop inspectable. Grok 4.6-high w/ VisHarness · ARC-AGI-3 · 25/25 games · score 100.0 · 7,340 official actions (far fewer than human 17,135)

01 / visual reasoningFrom pixels to actionRepresentation, state, memory, and feedback are part of the reasoning surface.
02 / methodReason, act, and thinkTyped visual tools turn inspection and action into one addressable VLM loop.
03 / tool packsComposable visual skillsEight manifest-backed packs expose one typed surface across hosts.
04 / resultsAuditable leaderboardsScores, denominators, tool usage, and evidence boundaries stay visible.
Schematic trace · not a recorded replay OBSERVE INSPECT REASON VERIFY INPUT FRAME → TOOL CONTRACT → EVIDENCE → TRACE
ARC-AGI-3 / GROK 4.6-HIGH

A model sees, calls, and verifies

The moving path is a deliberately labelled schematic of the evidence loop. Official ARC replay pages are indexed in Results; raw VisHarness trace fields and elapsed-time metadata remain separate from this verified scorecard record.

7,340official actions
397frame reads
96.27%trace success
Animated schematic for orientation; it is not a recorded replay or a claim about per-game timing. The dedicated Results module links the official ARC replay pages.

Visual reasoning is becoming an agent interface, not only an answer format.

Static image understanding established the importance of spatial relations, object structure, and visual priors. The next step is active visual reasoning: a model chooses what to inspect, changes the view, remembers what it learned, and acts again after the world responds. In this setting, the useful unit is a loop of evidence and action rather than a single image-to-text prediction.

That loop adds new failure surfaces. A correct visual hypothesis can be lost in the wrong coordinate space; a crop can hide its source; a tool can appear installed while its weights are unavailable; a long-horizon agent can act on stale state; and a final score can conceal all of these distinctions. The current visual-agent era therefore needs a harness that makes perception, tools, memory, state, and recovery inspectable together.

VisHarness is a lightweight visual agent harness for VLMs to reason, act, and think with visual tools. A stable typed surface lets different hosts expose the same capabilities, while provenance, readiness, traces, and matched evaluation preserve the boundary between a model capability result and a causal claim about the harness.

01
PROBLEM / VISUAL REASONING

Visual reasoning in the visual-agent era

As models move from passive perception to long-horizon visual action, the harness becomes part of the reasoning system. The central design question is how to preserve the evidence that connects a visual observation to the next decision.

01 / representation

Keep the visual world legible

Raw pixels, crops, grids, masks, and derived views expose spatial structure while retaining the mapping back to the source observation.

02 / interaction

Reason across state changes

Observe → inspect → act → verify is a recurrent loop. State tracking and recovery matter as much as a one-shot visual answer.

03 / evidence

Make claims inspectable

A score is one endpoint. Tool readiness, returned artifacts, action boundaries, and matched controls explain how that endpoint was reached.

Model capabilityWhat can the model infer?

Visual priors, language reasoning, memory, and action selection remain properties of the complete agent configuration.

Harness behaviorWhat did the system expose?

Typed tools, coordinate semantics, lineage, readiness, and recovery paths make the intervention explicit and portable.

Field transition. Static VQA asks “what is visible?”; visual reasoning asks “which relation or transformation explains it?”; visual agents add “what should I inspect or do next?”. VisHarness supplies the evidence surface needed to measure that last transition without collapsing it into a single answer string.
Design consequence. A visual harness should reduce ambiguity at the observation–action boundary while preserving enough evidence to distinguish a model mistake, a tool failure, a stale state, and an unavailable dependency.

This framing leads directly to VisHarness: a lightweight visual agent harness whose Tool packs let VLMs reason over evidence, act through typed tools, and think across state changes without changing the contract that the evaluation sees.

02
METHOD / TOOL PACKS

VisHarness: A Lightweight Visual Agent Harness

A lightweight visual agent harness for VLMs to reason, act, and think with visual tools. VisHarness gives a model a stable way to observe, transform, retrieve, remember, and act while preserving the provenance of every visible result.

01 / perception

Visual evidence stays addressable

Source pixels, crops, grids, masks, depth maps, and restored outputs carry parent lineage and source mappings. A synthesized view is distinguishable from the input that produced it.

02 / reasoning

Tools share one contract

ToolContract declares coordinates, determinism, cost, side effects, executable arms, and evidence status. MCP stdio and JSON CLI adapters expose the same surface to multiple hosts.

03 / memory

Traces remain auditable

Append-only, hash-chained traces support verification and replay when artifacts are available. Readiness is explicit and fail-closed when a dependency or credential is missing.

Tool packs

8 manifest-backed packs · 29 typed tools

transforms

Crop, tile, resize, grid, rotate, annotate, and compare source pixels.

installed → discovered → loaded → exposed · static / runtime-verified

experts

OCR, grounding, and region inspection through optional model-backed experts.

installed → discovered → loaded → exposed · static / runtime-unverified

memory

Scoped notes and recall with trace lineage for revisable hypotheses.

installed → discovered → loaded → exposed · static / runtime-verified

retrieval

Text, visual, page, image, and caller-selected web retrieval.

installed → discovered → loaded → exposed · local static / web runtime-unverified

depth

Relative depth using the Depth Anything V2 Small reference adapter.

installed → discovered → loaded → exposed · static / runtime-unverified

segmentation

Promptable masks with optional SAM ViT-B / SAM3 backends.

installed → discovered → loaded → exposed · static / runtime-unverified

restoration

Upscale, super-resolution, and deblur with pinned adapters.

installed → discovered → loaded → exposed · static / runtime-unverified

generative

Local LaMa inpainting by default; hosted editors remain opt-in.

installed → discovered → loaded → exposed · local static / hosted runtime-unverified
Readiness rule: installation never implies loading or exposure. The machine-readable `tools --all --json` inventory reports per-tool state; missing weights, caller credentials, or network access produce an explicit unavailable state.

Tool packs are mechanism choices, not model claims. Their purpose is to make the evidence available to the model inspectable, repeatable, and comparable across a control arm.

03

The Complete Pipeline

One evaluation turn joins observation, visual-tool reasoning, environment action, and persistent thinking in a VLM loop whose evidence can be checked after the model finishes.

01

Observe

Capture the task presentation and source pixels.

02

Contract

Declare coordinates, cost, determinism, and side effects.

03

Tool pack

Load only ready capabilities and report skips.

04

Evidence

Hash outputs, parent lineage, and source mappings.

05

Trace / grade

Replay calls and compare matched control arms.

One contract, many hosts

Codex, Claude Code, Cursor, and generic MCP hosts consume the same NDJSON framing and JSON schema. The adapter changes; the evidence fields do not.

{
  "tool_id": "image.crop",
  "coordinates": "pixel-space",
  "deterministic": true,
  "side_effects": "none",
  "evidence": "parent + source map",
  "readiness": "runtime-verified"
}

What changes when the harness is present?

The harness does not hide the model’s decision process behind a single helper call. It records the input artifact, the tool contract, the backend/readiness state, the returned evidence, and the final answer. That makes a tool failure, a missing model weight, and a model mistake separable events.

Matched control arms use fixed item identities and explicit denominators. A higher score is interpreted together with coverage, tool usage, and evidence status rather than as a standalone optimization target.

04
RESULTS / ARC-AGI-3

VisHarness Results on ARC-AGI-3

ARC-AGI-3 turns visual reasoning into an interactive control problem: an agent receives an unfamiliar world, infers mechanics and goals from observations, and must complete levels while keeping environment actions efficient.

OBSERVE → ACTION → NEW EVIDENCE
Dynamic state, not a static image puzzle

Each game begins without a stated goal. The next visual state is evidence about the rule, hidden state, and action consequences; later levels reuse mechanics while changing layouts or constraints.

The official metric is Relative Human Action Efficiency (RHAE): completion is combined with action efficiency relative to first-time human references. Internal reasoning, visual inspection, and tool calls are not environment actions unless they trigger the game. The Competition-Mode scorecard is the source of record for the result and its replay links.

ARC evidence boundary. The result below is a complete-run capability record. It reports the scorecard fields and action accounting; it does not establish a matched w/o versus w/ VisHarness causal effect.
Grok 4.6-high / ARC-AGI-3

Complete capability run · scorecard fields are separated from harness-side observation and trace counters.

Scorecard ↗
100.0official score
25/25public games completed
183/183levels completed
7,340official environment actions
Grok 4.6-high · VisHarness7,340

Official environment actions in the complete capability record.

First-time human reference17,135

9,795 fewer actions for Grok, approximately 57.2% below this aggregate reference.

VISTA published reference7,542

202 fewer actions than VISTA’s Claude Opus 5.0 public run (about 2.7%); cross-system comparison only.

The current VISTA ARC page labels the 7,542-action run Claude Opus 5.0. It does not publish an independent VISTA Opus 4.8 action total; the Opus 4.8 → Fable 5 row is a separate system comparison. We retain the published label and do not relabel the number.

Schematic · not a recorded replay FRAME MEMORY / TOOL EVENTS / ACTION EVIDENCE 01 OBSERVE02 INSPECT03 REASON04 SEND05 VERIFY
Trajectory schematic

From first frame to verified action

Every returned frame becomes evidence; the next action is chosen against the current hypothesis.

Use the phase buttons to read the intended evidence loop. The visual is an explanatory animation, not a reconstructed trajectory. The official scorecard exposes one interactive replay page per environment; the release repo does not mirror its raw frame bundle or per-action timestamps.

Release record counters: 397 frame reads · approximately 1,396 send actions · 96 subagent sessions / 1,226 turns · 1 ARC-specific RECALL. These are separate from the 7,340 official environment actions.
Task input
Unfamiliar visual game state, available actions, and no explicit mechanics or goal.
Model trace
Observe the frame, test a hypothesis, issue an environment action, then inspect the returned state.
Question
Which visual change confirms the current rule, and which next action advances the level?
Recorded evidence
25/25 games · 183/183 levels · score 100.0 · 7,340 official actions.
Replay status
Official ARC links available. The Competition-Mode scorecard exposes 25 interactive replay pages; the VisHarness release repo does not mirror the raw frame manifest or per-action timestamps.
VISTA-shaped display
The animated panel is a progressive-enhancement schematic. It mirrors the observe / inspect / reason / send / verify rhythm while keeping the boundary explicit.
Actions / level40.117,340 / 183 completed levels
Actions / game293.607,340 / 25 completed games
Per-game range76–905minimum to maximum official actions
Action efficiency42.8%Grok actions / first-time human reference
OFFICIAL ARC REPLAY / FEATURED ENVIRONMENTar25-0c556536 · 8/8 levels · 272 actions
Open full replay ↗

The player is served by ARC Prize and may be blocked by a browser frame policy; use “Open full replay” for the complete interactive viewer. The table below preserves every scorecard replay URL and action count.

25 environments · official replay index

Competition-Mode scorecard · 25/25 replay links
EnvironmentLevelsActionsStateReplayRecording
ar25-0c5565368 / 8272WINWatch ↗JSON ↗
bp35-0a0ad9409 / 9402WINWatch ↗JSON ↗
cd82-fb555c5d6 / 695WINWatch ↗JSON ↗
cn04-2fe56bfb6 / 6203WINWatch ↗JSON ↗
dc22-fdcac2326 / 6447WINWatch ↗JSON ↗
ft09-0d8bbf256 / 676WINWatch ↗JSON ↗
g50t-5849a7747 / 7288WINWatch ↗JSON ↗
ka59-38d34dbb7 / 7335WINWatch ↗JSON ↗
lf52-271a04aa10 / 10827WINWatch ↗JSON ↗
lp85-305b61c38 / 880WINWatch ↗JSON ↗
ls20-9607627b7 / 7376WINWatch ↗JSON ↗
m0r0-492f87ba6 / 6188WINWatch ↗JSON ↗
r11l-495a78996 / 6157WINWatch ↗JSON ↗
re86-8af5384d8 / 8594WINWatch ↗JSON ↗
s5i5-18d950338 / 8317WINWatch ↗JSON ↗
sb26-7fbdac448 / 8125WINWatch ↗JSON ↗
sc25-635fd71a6 / 6139WINWatch ↗JSON ↗
sk48-d80786298 / 8905WINWatch ↗JSON ↗
sp80-589a99af6 / 6116WINWatch ↗JSON ↗
su15-1944f8ab9 / 9136WINWatch ↗JSON ↗
tn36-ef4dde997 / 7111WINWatch ↗JSON ↗
tr87-cd9248106 / 6120WINWatch ↗JSON ↗
tu93-0768757b9 / 9186WINWatch ↗JSON ↗
vc33-5430563c7 / 7184WINWatch ↗JSON ↗
wa30-ee6fef479 / 9661WINWatch ↗JSON ↗

The scorecard, 25 official replay links, action comparison, and harness-side counters are presented together. The available efficiency proxy is 40.11 actions per level (42.8% of the published first-time-human action total). The VISTA-shaped schematic is explanatory, while the linked ARC pages are the recorded interactive replays.

05
RESULTS / VISION BENCHMARKS

VisHarness Results on Other Vision Benchmarks

ActiveVision, ZeroBench-main, and PerceptionBench probe different limits of a visual agent: active inspection, zero-shot visual reasoning, and fine-grained perception. All three are deliberately difficult—on 85- or 100-item benchmarks, even a single-digit-point change means solving several additional frontier-level problems; on a 3,000-item perception suite, two points correspond to roughly 60 additional judged-correct answers.

Source of record: model-benchmark-leaderboard.md and the release README benchmark results. Values below preserve the published scores, denominators, effort labels, and comparability boundaries.

01 / ActiveVision

Active inspection and visual search

An 85-item benchmark spanning 17 task families. It tests whether a VLM can choose useful views, localize evidence, compare regions, and revise an answer across tool-mediated inspection.

Benchmark ↗

02 / ZeroBench-main

Zero-shot compositional reasoning

One hundred main problems with multi-image and structured subquestions. It stresses transfer to unseen task formats, spatial composition, instruction following, and robust first-pass decisions.

Benchmark ↗

03 / PerceptionBench

Atomic fine-grained perception

Three thousand verified questions across ten perception capabilities. It isolates recognition, localization, counting, OCR, and visual attributes while reporting both exact match and an official judge.

Benchmark ↗

official judge = GPT-oss-120B scoring protocol official pass@1 = published five-sample reference local = this project's recorded run effort = model endpoint setting
Difficulty and evidence rule. Small gains matter on these benchmarks, but a positive arithmetic difference is not automatically a causal harness effect. Delta is shown for every comparable score pair; only matched same-item w/o VisHarness ↔ w/ VisHarness cohorts support a causal reading.

ActiveVision · interactive visual search and comparison

Modelw/o VisHarnessw/ VisHarnessΔEvidence / comparability
Grok 4.6-high7.1% (6/85)*local · high effort · historical aggregate18.8% (16/85)*local · high effort · VisHarness run+11.7 pp*Historical aggregate; VisHarness capability result shown
GPT-5.59.4% (8/85)local exact · endpoint-default · paired control27.1% (23/85)local exact · endpoint-default · VisHarness run+17.7 ppLocal same-item pair; McNemar p=0.00149
GPT-5.6 Sol high20.0% (17/85)local exact · endpoint-default · paired control27.1% (23/85)local exact · endpoint-default · targeted composite+7.1 ppDifferent selection condition; descriptive uplift
Claude Opus 4.8 high1.2% (1/85)local exact · high effort · paired control12.9% (11/85)local exact · high effort · VisHarness run+11.7 ppLocal same-item pair; McNemar p=0.00635

ZeroBench-main · frontier zero-shot visual reasoning

Modelw/o VisHarnessw/ VisHarnessΔEvidence / comparability
Grok 4.6-high11.0%official pass@1 · xhigh · 5-sample19.0% (19/100)local pass@1 · high effort · 1-sample+8.0 ppDifferent sampling protocol; descriptive uplift
GPT-5.517.2%official pass@1 · xhigh · 5-sample24.2% (24/99)local pass@1 · endpoint-default · 1-sample+7.0 ppDifferent sampling protocol; descriptive uplift
GPT-5.6 Sol high22.0%official pass@1 · max effort · 5-sample21.0% (21/100)local pass@1 · endpoint-default · 1-sample-Different effort and protocol; no comparable delta reported
Claude Opus 4.8 high10.4%official pass@1 · max effort · 5-sample9.0% (9/100)local pass@1 · high effort · 1-sample-Different effort and protocol; no comparable delta reported

PerceptionBench · 3,000-item fine-grained perception

Modelw/o VisHarnessw/ VisHarnessΔEvidence / comparability
Grok 4.6-high46.5% official judge (1396/3000)official judge · high effort · local w/o71.0% official judge (2131/3000)official judge · high effort · local w/+24.5 ppComplete same-item pair; McNemar p=4.65×10⁻¹¹³
GPT-5.6 Sol high59.7%official judge · max effort · published reference61.7% official judge (3,000)official judge · endpoint-default · local w/+2.0 ppDifferent effort; descriptive uplift
Claude Opus 4.8 high47.2%official judge · max effort · published reference49.1% official judge (3,000)official judge · high effort · local w/+1.9 ppDifferent run protocol; descriptive uplift

GPT-5.5 PerceptionBench is retained as a 53-item pilot in the release records and is omitted from this full-cohort table; it does not provide a 3,000-item model comparison.

* Grok ActiveVision is aggregate evidence; the public record reports the aggregate result. † Selection condition, effort, or run protocol differs, so the positive delta is a descriptive capability advantage rather than a matched causal estimate. ‡ ZeroBench official w/o rows use published five-sample pass@1 references, while local w/ rows are single-sample runs. Blue protocol labels identify the scorer or metric, model effort, sampling, and source. Cross-effort negative arithmetic differences are not reported as deltas.

Matched ActiveVision+17.7 / +11.7 pp

GPT-5.5 and Opus improve under complete same-item paired tests; both results are statistically significant.

Descriptive ZeroBench+8.0 / +7.0 pp

Grok and GPT-5.5 exceed official references, but effort and sampling differ, so these are capability comparisons.

Matched PerceptionBench+24.5 pp

Grok improves from 46.5% to 71.0% on the complete 3,000-item same-item pair under the official judge.

How to read the advantage. ActiveVision and the complete Grok PerceptionBench pair supply the strongest matched evidence for VisHarness gains. ZeroBench-main and the cross-effort Sol/Opus PerceptionBench rows remain descriptive comparisons, with effort, sampling, metric, and run protocol marked directly beside each score.
06
ANALYSIS / TOOL USAGE

Tool usage leaderboard and analysis

Tool usage is the mechanism view of the release: it shows which evidence operations were available, adopted, and reliable across model × benchmark cohorts. Call count is a diagnostic signal, not a quality target.

Source of record: harness-usage-leaderboard.md. The snapshot reports prediction/trace coverage separately from judge coverage.

9,653valid trace records
100,429tool calls
96.27%recorded success

Tool-use leaderboard

Benchmark × modelTrace recordsCallsCalls / itemSuccessItems using toolsZero-tool w/ VisHarness
ActiveVision × GPT-5.6 Sol high851,03512.1895.5%85/850.0%
ActiveVision × GPT-5.5852,55230.0295.8%85/850.0%
ActiveVision × Opus 4.8853,08736.3297.1%83/852.4%
ActiveVision × Grok 4.6-high85aggregate reference
ZeroBench-main × GPT-5.6 Sol high1001,24112.4196.8%96/1004.0%
ZeroBench-main × GPT-5.5991,89519.1496.2%98/991.0%
ZeroBench-main × Opus 4.81002,84928.4997.9%92/1008.0%
ZeroBench-main × Grok 4.6-high1001,85018.5096.7%100/1000.0%
PerceptionBench × Grok 4.6-high3,00057,37419.1296.0%2,996/3,0000.1%
PerceptionBench × GPT-5.6 Sol high3,0007,1442.3896.3%1,531/3,00049.0%
PerceptionBench × Opus 4.82,99921,4027.1496.6%1,959/2,99934.7%
PerceptionBench × GPT-5.5 (pilot)533366.3499.7%37/5330.2%
Total9,653100,42910.4096.27%7,125/9,65326.2%

Aggregate operation mix

image.crop52.9%
53,153 calls · 98.6% success
image.code20.9%
20,970 calls · 91.4% success
image.resize4.5%
4,540 calls · 90.8% success
image.grid4.3%
4,289 calls · 98.3% success
image.tile3.5%
3,477 calls · 99.1% success
image.enhance2.7%
2,729 calls · 93.1% success
image.annotate2.6%
2,660 calls · 96.1% success
expert.ocr2.1%
2,060 calls · 93.6% success
other 8 tools6.5%
6,551 calls · 96.2% success
01 / localizationCrop is the backbone

image.crop is 52.9% of calls and succeeds 98.6% of the time, making localized evidence the dominant shared operation.

02 / reliabilityCode is the hotspot

image.code contributes 48.3% of failed calls (1,810/3,745) at 91.4% success; it is a reliability target, not a score proxy.

03 / policyAdoption is model-dependent

PerceptionBench zero-tool rates range from 0.1% for Grok to 49.0% for Sol high, so tool availability does not imply equal treatment intensity.

Manifest boundary. image.code is a library-only / historical operation in this accounting and is outside the current default 8-pack / 29-tool manifest. The aggregate table describes observed traces; it does not redefine the release manifest.

Findings, limitations, and next evidence

Typed contracts, readiness reporting, provenance, and cross-host MCP/CLI framing are the harness-level contribution. Tool calls help explain how the evidence surface was exercised, while matched item identities and explicit denominators determine what can be called causal.

The official ARC scorecard supplies interactive replay links for all 25 environments. A future release can pair a normalized VisHarness trace manifest with a controlled w/o / w/ / schema-only matrix.

Release links and citation

BibTeXVisHarness · 2026
@misc{visharness2026,
  author = {Chenhao Zhang},
  title  = {VisHarness: A Lightweight Visual Agent Harness for VLMs to Reason, Act, and Think with Visual Tools},
  year   = {2026},
  url    = {https://github.com/MING-ZCH/VisHarness}
}