Synth
ResearchBlogDocs
Jul 9, 2026Synth Blog

jesterky runs agent workflows as replayable programs

By Synth Team

An open Rust workflow substrate for research engineers: fan out model work into seeded sandboxes, capture artifacts, and replay the orchestration path without pretending future model calls are deterministic.

Dynamic model workflows fan out, call tools, mutate state, and become difficult to inspect after the run. jesterky records the specification, runtime events, and sandbox outputs so research engineers can inspect the path a workflow took and check a replay against that record.

TL;DR

  • jesterky is an open Rust workflow substrate for the dynamic-workflow pattern — a deterministic script (fan out, map, verify, reduce) drives the models, not the other way around. Claude Code's workflow orchestration is the inspiration.
  • The run is a pinned artifact: events keyed by logical address, wall time never identity, and replay re-executes the orchestration against recorded outputs.
  • 0.1.1 ships on crates.io and PyPI with two new host pieces: seeded sandboxes (models work in real environments) and a proxy that gives chat-only models the full agentic loop.

Headline results

Three workloads, run live, replayed

Every number is read from a committed run manifest or score artifact. Each card names its evidence and its boundary.

actor: codex · gpt-5.5proxy: gemini / deepseekreplay: addr + kind + payload

Blog quality scan

replay ok
2 SOUND / 6 FRAGILE

gpt-5.5 audits 8 production posts, live

quality_scan_blogs.live.manifest.json

One blog corpus and one recorded run; this is a scan, not a quality benchmark.

Dev-port bench

per-cell score artifacts
20/20 faithful → 4/27 cliff

models port Python game engines to Rust in a seeded sandbox

dev_port_refactor_bench.md

One run per cell; repeat attempts swing mid-ladder cells, so no model ranking is claimed.

SMR ReportBench

replay ok
agreement 1.0 · score 0.926

workflow verdicts vs. autograde over real graded runs

smr_reportbench_trace_evaluate.md

Four graded lanes in the captured packet; this does not establish general evaluator reliability.

Manifests and score files live in the repo's proof/ tree; replay re-executes the orchestration against recorded outputs and must land identically.

Workflow record

What jesterky captures from a run

01
spec
workflow inputs
→
02
fan out
parallel tasks
→
03
sandbox
environment + files
→
04
manifest
events + outputs
→
05
replay
check the recorded run
The manifest captures the specification, runtime events, sandbox artifacts, and outputs. Replay runs the scheduler against that record.

Read the evidence at the right level

The claims here are about workflow execution and artifacts, not deterministic model behavior. A replay verifies the recorded orchestration path against recorded outputs. It does not guarantee that a future call to a hosted model will make the same choice unless that call is recorded or otherwise controlled.

The quality scan, live

jesterky run … --actor codex --model gemini/gemini-3.1-flash-lite --follow
Terminal output from a completed Jesterky quality-scan workflow
A real --follow run over the current published-blog corpus. This capture completed 57 events with 10 recorded outputs in 20 seconds; the button reloads the GIF on demand. It is a workflow demo, not a benchmark.

expand → map → reduce, live

One run audited every published post on this blog

The workflow expands the blog corpus into per-post audit jobs, maps a gpt-5.5 auditor over them concurrently, and reduces the verdicts into a report. These are its real findings — including about this blog.

events 52 · recorded 9
managed-factorySOUND 7

strong launch proof; routing metadata mostly absent

synth-tag-v1SOUND 7

clear beta post with smoke proof; routing metadata missing

go-exploreFRAGILE 7.1

measured benchmark claims lack required proof metadata

scaling-train-time-compute-for-gepaFRAGILE 7

required routing metadata largely absent

stack-handoffsFRAGILE 6

measured claims lack reproducible proof

smr-launch-gamebench-pilotFRAGILE 6

measured lifts lack visible proof metadata

managed-researchFRAGILE 6

launch metadata and proof links incomplete

launching-synth-managed-research-mcp-firstFRAGILE 5

launch metadata and release custody missing

Committed manifest: quality_scan_blogs.live.manifest.json. Replay re-runs the fan-out against the recorded verdicts: replay ok: events=52 recorded=9.

Same spec, two actors: the fake actor echoes deterministically — what the tests run on. Swap in the codex actor and the identical workflow drives gpt-5.5 on ChatGPT-bundle auth, no API key in the process. The spec doesn't change; the actor behind the seam does.

Models run a real environment

sandbox → port → verify → capture → score

Five engines, three models, one cliff

Each model ports a working Python game engine to a Rust crate inside a seeded workspace, iterating against a 4-scenario train oracle. The captured crate is scored on ALL scenarios — the tick marks the train subset: bars that stop there memorized the diff and generalized zero.

all-scenario pass rate · 1 run/cell
tictactoe1634 LOC · 20 scen20/2016/2016/20sokoban1206 LOC · 15 scen15/155/155/15earthborne1916 LOC · 4 scen4/40/44/4minihack1036 LOC · 27 scen4/27 = train4/27 = train0/27crafter3723 LOC · 34 scen4/34 = train0/340/34gpt-5.5gemini-3.1-prodeepseek-v4 (capped)
Cliff = mechanic complexity, not lines of code: minihack (1,036 LOC) defeats every model; earthborne (1,916 LOC) is fully ported twice. Repeat attempts swing mid-ladder cells (gpt-5.5 sokoban 1.0 → 0.33 → 0.33), so no per-model ranking is claimed. Per-cell artifacts: gamebench score.sandbox.*.json.

workflow and single-session runs

Two models, two execution modes

Sokoban (15 scenarios), identical seeded files, porter brief, and 10-minute cap. The comparison is Gemini Flash Lite and GPT-5.6 Luna at low effort, each run through the workflow and a single Codex session.

sokoban · 600s cap · 1 run/completed cell

gemini-3.1-flash-lite

Workflow

4/15

0:56 · 303k tok · $0.087 est.

Single harness

0/15

5:48

gpt-5.6-luna · low

Workflow

4/15

1:47

Single harness

2/15

3:49 · 59.6k tok

Flash Lite scored 4/15 in the workflow at 0:56, using 303k reported tokens (294k input, 8.8k output) with a $0.087 rate-card estimate. Its bare session scored 0/15 in 5:48. The bare crate depended on train_eventlogs.json outside the capture allowlist, so the rebuilt scorer could not open that file. Luna at low effort scored 4/15 in the workflow and 2/15 in the bare session (1:47 vs 3:49). This is one run per cell, not a model ranking.

The workspace is seeded by jesterky-sandbox (local or Docker); capture globs pull the built crate back into the run manifest. Gemini and DeepSeek drive the same loop through jesterky-proxy — Responses⇄chat tool-call translation plus Gemini's thought-signature round-trip — so one agentic harness runs any model. The ports above are manifests you can replay.

Workflows against deep standards

engineering soundness, continuously

57 modules graded against 7 house standards

The same expand → map → reduce shape pointed at code: modules across five repos, each graded 1–10 on typed seams, no-fallbacks, error legibility, exhaustive enums, unique nouns, earned abstraction, and explicit-over-implicit — with caps-at-hold verdicts and file-level evidence.

57 modules · 8 capped at hold
unique_nouns7.6 · 1 flagged
typed_seams7.4 · 7 flagged
earned_abstraction7.3 · 0 flagged
explicit_over_implicit7.2 · 5 flagged
exhaustive_enums6.9 · 12 flagged
no_fallbacks6.5 · 14 flagged
error_legibility6.3 · 9 flagged
containers:src/synth_containerstyped_seams

HttpObject = dict[str, object] … ConfigDict(extra="allow") — open JSON contracts at a public seam

optimizers:code/src/toolsexplicit_over_implicit

runtime tests bypass seams with casts: `tools: tools as never`, `let mockCurrentWorktreeSession: any = null`

synth-ai:managed_research/modelstyped_seams

typed StrEnums exist, but escape hatches remain: `schedule: dict[str, object] = field(default_factory=dict)`

Low bars are the point: the scan names the debt (no_fallbacks is the weakest house dimension, 14/57 modules flagged) and every grade carries a quoted file-level violation. Run on a schedule, the workflow turns a written standard into a maintained one.

A standards document only matters when a workflow can apply it consistently. The scan above runs the engineering-soundness rubric against each module, records quoted evidence, and applies a caps-at-hold verdict. The manifest gives a reviewer the inputs, outputs, and evidence behind each grade.

Verify a captured run

replay verification

Check a captured run against the runtime

Events use a logical address: run_id, node_path, iteration, and local_seq. During replay, the runtime must reproduce the recorded address, kind, and payload.

spec + args
workflow inputs
quality_scan_blogs.json
→
live run
model and tool calls
events=52 · recorded=9
→
manifest
captured event data
*.live.manifest.json
→
replay check
runtime vs. recorded data
replay ok: 52/9
Timestamps and log order stay as metadata. Parallel workers can emit in a different order, but the logical event address remains stable.

Replay tests the workflow runtime separately from a new model call. It reads a captured manifest, re-runs the scheduler against recorded outputs, and fails when an event's logical address, kind, or payload changes. It does not claim that a future hosted-model call will return the same answer.

bash
jesterky run examples/quality_scan_blogs.json --actor codex --out run.manifest.json
jesterky replay run.manifest.json --spec examples/quality_scan_blogs.json
# replay ok: events=52 recorded=9

In the products

  • Optimizers: GELO and GEPA take a [jesterky_workflow] config block — traces export, a workflow clusters failure themes, and the themes materialize into the proposer before each propose. GELO's arm with the workflow improved Craftax reward over baseline by +0.977 vs +0.339 without. The same hook inside GEPA is wired but showed no uplift, and we report it that way.
  • Stack: agent workers get five MCP verbs — stack_jesterky_register,launch,inspect,replay,compare — verified end-to-end against the published binary, including a full Stack effort eval — launch → inspect → replay → compare with node_diff_count=0 and A0–A3 acceptance recorded pass.
  • Cloud: SMR ReportBench runs are graded through the same trace-evaluate workflow; gpt-5.5's verdicts agreed with autograde on all four graded lanes (report score 0.926, replay ok).

Where it falls short

A flaky hosted model still produces a flaky run — jesterky classifies the failure, it can't prevent it. Mid-ladder dev-port cells swing between runs, so the bench packet claims the cliff, not model rankings. GEPA's workflow arm has no measured uplift. The ReportBench A/B ran as a post-hoc revision pass (+0.294 on the one non-ceiling lane, with two checks recovered by rubric gaming — the packet says which); in-run guidance is the next rung.

Resources

  • jesterky repository — source, examples, CLI, and the runtime contract.
  • Proof artifacts — committed manifests, score files, ablations, and run notes behind the claims above.
  • jesterky on crates.io and jesterky on PyPI — install surfaces for the 0.1.1 release.
  • Claude Code auto mode — the workflow-orchestration pattern that motivated this substrate.
  • GELO: Go-Explore for long-horizon agents — the adjacent Synth optimizer work that consumes workflow evidence.
  • GEPA platform — the optimizer surface where the workflow hook is wired, including the negative result reported here.

Citation

If you use the workflow substrate or the replayable-agent-workflow pattern in research, cite the post and repository:

bibtex
@misc{jesterky2026,
  title        = {jesterky runs agent workflows as replayable programs},
  author       = {{Synth Team}},
  year         = {2026},
  howpublished = {\url{https://www.usesynth.ai/blog/jesterky-dynamic-workflows}},
  note         = {Open-source Rust workflow substrate},
  url          = {https://github.com/synth-laboratories/jesterky}
}

Start with the recorded quality-scan example. cargo install jesterky-cli, run the scan, then inspect the manifest and replay report. The evidence linked above lives in the proof/ tree.

View jesterky on GitHubRead the proof artifacts

Run a workflow you can inspect

Install jesterky, run the quality-scan example, and inspect the manifest that the workflow leaves behind.

View jesterky on GitHubRead the proof artifacts
© 2026 SynthWorkshopReleasesCookbooksChangelogOpen sourceDocsBook a Demo