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

Uploaded Python 3

File details

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

File metadata

  • Download URL: fdsx-0.1.6.tar.gz
  • Upload date:
  • Size: 264.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.6.tar.gz
Algorithm Hash digest
SHA256 4f067f793533f4aec9c1e8928ffea0fdf1f3a4f79b08c32a03739ed0fb1df380
MD5 ee6d819069177ebfc14d19b858fedbf8
BLAKE2b-256 4957b4019ef9179890444fd1ecc2f5f59a776d6b429cdcc0b1f04f0640b28ee3

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: fdsx-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 106.6 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.6-py3-none-any.whl
Algorithm Hash digest
SHA256 e45adc05a828c66ffc15fbc46773c211917f8f3f77947da5d2e0d8ca327e9f28
MD5 5be7b26a48ea6ee035d668df16a60b83
BLAKE2b-256 34f98c1f6f6cc3a3647dc938d3b3bc1fc12e41bbf1b86e0ffc0fdf7c6326a4d0

See more details on using hashes here.

Provenance

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