Skip to content

Why Verdog? ​

Verdog combines explicit workflow graphs with Python implementations. It is intended for processes that involve agents, deterministic computation, branching, iteration, and reusable components.

The graph describes how execution proceeds. Python defines what each step does.

Why workflows? ​

Agents may produce plausible results that do not satisfy the intended objective. A workflow makes the process for evaluating and revising those results explicit: propose a candidate, verify it, provide feedback for correction, and accept it when the declared checks pass.

The importance of verification extends beyond accidental errors. Paglieri et al. (2026) describe a research swarm in which agents exploited an evaluation weakness to submit proofs of altered mathematical statements. The exploit spread through shared communication channels despite instructions prohibiting cheating. Paglieri et al., 2026

This motivates separating candidate generation from acceptance. A workflow can require verification before subsequent steps execute, route unsuccessful attempts through a repair loop, and define retry limits, escalation, and stopping conditions.

External feedback can also guide revision. CRITIC uses external tools to evaluate candidate outputs and revise them from the resulting feedback, reporting improvements on free-form question answering, mathematical program synthesis, and toxicity reduction. Gou et al., 2024

The quality of this process depends on the checks. They must assess the original objective, and their implementation and reference specification should be protected from modification by the agent being evaluated. Workflow structure makes these responsibilities explicit; it does not automatically establish that the checks are sufficient.

Beyond verification, a workflow exposes the structure of the entire process. Branches, loops, state changes, and calls can be inspected independently of the code implementing each operation. This supports reasoning about the process while developing and testing its components separately.

What Verdog provides ​

Visual structure and ordinary Python ​

Edit the workflow graph in VS Code and implement its operations in Python. Steps can invoke agents, use existing libraries, access external services, or perform deterministic computation.

Verification steps are ordinary Python implementations. They can invoke tests, formal checkers, domain-specific validators, or human review. The graph specifies when these checks occur and how their outcomes govern subsequent execution.

Graph edits maintain generated declarations while preserving authored implementations. The project remains a collection of source files that can be reviewed, tested, and versioned with Git.

Declared state and control-flow analysis ​

Features describe observable workflow state. Conditions and effects constrain how that state changes along transitions.

These declarations support structural analysis, including termination certification under the declared model. Such certification assumes that individual operations terminate and that execution respects the declared effects. It does not establish the correctness of arbitrary Python code or agent output.

Typed interfaces and reusable components ​

Generated Python declarations connect inputs, outputs, state, and calls to Python's type system. Type checking helps detect incompatible interfaces during development.

Subroutines compose within one process. Workflow calls execute in separate Python environments, allowing components with different dependencies to be combined. Imported components are pinned to Git commits, making updates explicit and reviewable.

Local execution and inspectable history ​

Generated workflows execute with verdog-runtime, independently of the hosted compiler. Their implementations, execution environments, and output remain under the developer's control.

Run history and logs expose execution progress. Checkpoints support resuming interrupted runs and forking new runs where the recorded state is restorable.

When is a workflow useful? ​

A single function or model invocation may require little additional structure. An explicit workflow becomes useful when correctness depends on the sequence of operations, repeated verification, recovery, or coordination between components.

Verdog makes that structure part of the software project: visible in the graph, connected to typed interfaces, and implemented in Python.