Concept 10 of 10
Nine smaller ideas point at one big one: the harness runs the process, and the model executes bounded steps inside it.
The harness is the loop your agent runs in. Today that loop is the LLM itself — it decides what to do next and reaches for whatever tool it wants. Flowgate makes the loop a deterministic runtime the model plugs into. (Three ways to run it, from MCP gateway to owning the loop outright.)
The common pattern puts the LLM on top: give it tools, ask it to plan, hope it stays on task, patch the misses with prompts and retries. When that breaks on the work you actually run — the agent invents a step, calls a tool it shouldn't, drifts off the task — you're patching nondeterminism with more prose. Flowgate flips the stack. The harness comes first — mission, workflows, state, locks, legal moves — and the model executes bounded reasoning inside it.
LLM-first (the norm) Harness-first (Flowgate)
───────────────────── ────────────────────────
LLM decides the process → the workflow defines the process
LLM gets a bag of tools → the runtime exposes legal next moves
LLM owns the context → the blackboard owns context; LLM gets a slice
best model for everything → cheapest sufficient model per step The sharpest expression of the inversion: the in-runtime LLM executor. Flowgate hosts the model call itself, and the tool surface the model sees is the current state's transitions — nothing more — under enforced iteration and cost caps, with its reasoning captured to the audit log. The LLM no longer owns the process. It's a replaceable reasoning engine the runtime calls when a step needs judgment.
triaging:
goal: "Decide: bug, feature request, or noise."
transitions: # these three ARE the model's whole tool surface
mark_as_bug:
target: investigating
executor:
kind: llm # flowgate hosts the call
model: anthropic:claude-sonnet-4-6
max_iterations: 3 # bounded; nothing but these transitions in scope
mark_as_feature: { target: backlog } # each decision transition
close_as_noise: { target: closed } # carries the same llm executor Flowgate is a harness-first runtime for coding agents: workflows, guardrails, locks, and state come first; LLMs execute inside those constraints. That's why older, cheaper, local, and specialized models become useful — they don't have to understand the whole mission, only perform one bounded, state-specific task. The runtime leads. The models execute.