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.7.tar.gz (269.8 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.7-py3-none-any.whl (109.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: fdsx-0.1.7.tar.gz
  • Upload date:
  • Size: 269.8 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.7.tar.gz
Algorithm Hash digest
SHA256 15291908dd00af55235ca810cc29cc315dc9d3de0240b44c64262e13dce71a9e
MD5 05e984f9ad1b3184d93251a00cdcebb5
BLAKE2b-256 cc4edf230072ceca6083b776c1cc287101c515ab8aadfc58e36ec117dde3a558

See more details on using hashes here.

Provenance

The following attestation bundles were made for fdsx-0.1.7.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.7-py3-none-any.whl.

File metadata

  • Download URL: fdsx-0.1.7-py3-none-any.whl
  • Upload date:
  • Size: 109.5 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.7-py3-none-any.whl
Algorithm Hash digest
SHA256 198bc89001beab69fa4b89ddaced35e9b42ff65c8e3c4031d35bd7abd995b65b
MD5 19c7d137ce49b89d2a80b735e9874444
BLAKE2b-256 30579b226f11c3fcb2a2f591be52c9a1fd2688cc362d31c4e3d1c760384ae31f

See more details on using hashes here.

Provenance

The following attestation bundles were made for fdsx-0.1.7-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