Teardown digest

SAAGE: a deterministic agentic workflow engine, distilled

2026-08-07 · PromptForce team

One repo through the full pipeline this run: cgpadwick/saage, a deterministic agentic-workflow engine built on a forked PocketFlow graph runtime. It scored 62/100, the highest of any teardown so far, on the strength of a genuinely uncommon architectural choice: treating loops, termination, and resume as first-class graph semantics instead of ad-hoc control flow bolted onto an LLM call.

cgpadwick/saage

62 / 100
Apache-2.0 · Beta

SAAGE hydrates YAML flow specs into a PocketFlow graph built from three composable loop primitives (counting_loop, retry_loop, polling_loop), each exposing as a single node, and runs a bounded max-step LLM tool-use loop with real harness tools for file operations. The differentiator is the combination of normalized loop primitives that compose cleanly, per-node checkpoints with atomic terminal-status writes, and nested-loop-aware resume, plus a remote lifecycle model that hands off execution via a git ref rather than a bespoke RPC layer. Complexity stays low (cyclomatic max 27, average 5, across 8 packages), which is unusual for a project doing this much control-flow work.

It is not production-hardened. The forked PocketFlow orchestration method is a documented silent-drift hazard against upstream. Several failure paths defer rather than fail loudly: an absent API key pushes auth past the trust boundary instead of rejecting the request up front, an environment-variable pricing override can zero out budget gates, and a blind ssh-keygen -R disables TOFU host-key checking. Contrib flows are hydration-checked but not run end-to-end, docs lag the shipped code, and the project has a bus factor of one. The verdict from the panel: a credible Beta for a single-user researcher running trusted flows, not yet a safe default for untrusted input or multi-tenant use.

Worth adopting: normalizing loop control flow (count, retry, poll) into single composable graph nodes with per-node checkpointing makes long-running agent workflows resumable without a separate state machine layer.
Full teardown ›

The gap between SAAGE and the rest of this month's batch is instructive. Most repos here score in the 30s on ReadyBase because the LLM layer is where the actual product sits and it's the least testable part of the system. SAAGE's real IP is the checkpoint/resume and composable-loop plumbing around the LLM, not the LLM call itself, and that's exactly the part a deterministic test suite can pin down. Full methodology and all teardowns at promptforce.ai/teardowns.