Skip to main content

Declarative AI agent workflow execution framework

Project description

fdsx — Flow-Driven Stateful eXecution

PyPI version

A lightweight framework for building and executing complex AI agent workflows using declarative YAML definitions.

Overview

fdsx enables you to define AI agent workflows in YAML, combining the durability of LangGraph (checkpoint, interrupt, conditional routing) with the declarative structure of AWS Step Functions.

Key features:

  • Declarative YAML-based workflow definition
  • Stateful execution with checkpoint/resume
  • Parallel execution with branch aggregation
  • Batch task processing
  • Multiple LLM provider support (Claude, OpenCode, and more)

Installation

pip install fdsx

Or with uv:

uv tool install fdsx

Quick Start

Create a simple YAML workflow file:

name: SimpleFlow
start_at: greet
version: "1.0"

states:
  greet:
    type: task
    provider: system
    command: "echo 'Hello from fdsx!'"
    result_path: $.message
    end: true

Run it:

fdsx run simple_flow.yaml

Feature Overview

State Types

  • task — Execute LLM or CLI commands
  • parallel — Run multiple branches concurrently
  • choice — Conditional routing based on variables
  • wait — Pause for human approval or webhook callback
  • pass — Pass-through state for data transformation

Parallel Execution

Define parallel branches that execute simultaneously with aggregation strategies (majority vote, all, any).

Checkpoint & Resume

Flows automatically persist state. Resume from interruption with:

fdsx resume --thread-id <thread_id>

Batch Tasks

Process multiple tasks in batch mode:

fdsx run workflow.yaml --tasks tasks.md

Structured Logging

All execution details are logged to runs/<thread_id>.json.

Provider Support

Use any CLI-based LLM provider: Claude, Codex, OpenCode, or system commands.

CLI Reference

Command Description
fdsx run <workflow.yaml> Execute a workflow
fdsx run <workflow.yaml> --input key=value Pass input variables
fdsx resume --thread-id <thread_id> Resume from checkpoint
fdsx validate <workflow.yaml> Validate YAML syntax
fdsx list List recent runs

Example Workflow

name: Plan-Implement-Review Loop
start_at: plan
version: "1.0"
max_loop: 3

states:
  plan:
    type: task
    provider: claude
    model: claude-sonnet-4-6
    prompt_template: |
      You are a planning agent. Break down the following task into clear,
      actionable implementation steps.

      Task: {task}
    result_path: $.plan
    next: implement

  implement:
    type: task
    provider: opencode
    model: opencode/minimax-m2.5-free
    prompt_template: |
      You are an implementation agent. Follow this plan exactly.

      Plan: {plan}
    result_path: $.implementation
    next: review

  review:
    type: task
    provider: codex
    model: gpt-5.4
    prompt_template: |
      Review the implementation against the plan.

      Plan: {plan}
      Implementation: {implementation}
    result_path: $.review
    next: check_review

  check_review:
    type: choice
    choices:
      - variable: $.review
        operator: contains
        value: "APPROVED"
        next: done
    default: implement

  done:
    type: pass
    end: true

Run this example:

# First run in a new directory scaffolds .fdsx/ with example workflows:
fdsx run

# Then run the scaffolded example workflow:
fdsx run .fdsx/workflows/plan-implement-review/workflow.yaml --input task="Build a web calculator"

License

MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fdsx-0.1.4.tar.gz (251.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fdsx-0.1.4-py3-none-any.whl (106.2 kB view details)

Uploaded Python 3

File details

Details for the file fdsx-0.1.4.tar.gz.

File metadata

  • Download URL: fdsx-0.1.4.tar.gz
  • Upload date:
  • Size: 251.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for fdsx-0.1.4.tar.gz
Algorithm Hash digest
SHA256 13fde447202d3a94da6c5949261738f20b1e08c31de4f6e39497fbf61baa3586
MD5 675270689ac259c5722086583466f10b
BLAKE2b-256 6143a01098712a0fe252ee340716fd3661aabe1c2aceb20754cfdc51b7b90281

See more details on using hashes here.

Provenance

The following attestation bundles were made for fdsx-0.1.4.tar.gz:

Publisher: publish.yml on kenfdev/fdsx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fdsx-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: fdsx-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 106.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for fdsx-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 db5aae3f41c7ae51d55a438d9e0c10f9fe6e2dd26b1d944bc0b92be703c8da25
MD5 d90659f2a3df3866b8773791a7cf221d
BLAKE2b-256 8036279fcbc2aefe05c7db3a890793edbc579f908a01b06e51e00bb13f11cc48

See more details on using hashes here.

Provenance

The following attestation bundles were made for fdsx-0.1.4-py3-none-any.whl:

Publisher: publish.yml on kenfdev/fdsx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page