token27/nexus-ai-workflows

AI-native workflow engine — graph-based state machine orchestration for NexusAI. Framework-agnostic, PSR-only, PHP 8.2+.

Maintainers

Package info

github.com/token27/nexus-ai-workflows

pkg:composer/token27/nexus-ai-workflows

Statistics

Installs: 0

Dependents: 1

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.0 2026-05-14 23:59 UTC

This package is auto-updated.

Last update: 2026-05-15 00:00:40 UTC


README

CI Latest Version PHP 8.2+ License: MIT

A graph-based workflow orchestration engine for PHP 8.2+. Define directed acyclic graphs of nodes — AI calls, tool executions, conditionals, loops, parallel branches — and run them with built-in persistence, middleware, guards, and observability.

Built on top of NexusAI for seamless LLM integration.

Features

  • Fluent WorkflowBuilder — declarative, chainable API for constructing workflow graphs
  • 8 node types — ActionNode, AINode, ToolNode, ConditionNode, LoopNode, ParallelNode, WaitNode, SubWorkflowNode
  • WorkflowRunner — executes graphs following transitions until a terminal state
  • Transition guards — ExpressionGuard (closure) and AIGuard (LLM-based decisions)
  • Middleware pipeline — onion architecture for cross-cutting concerns per step
  • Persistence — FileWorkflowStore and CacheWorkflowStore for suspend/resume
  • Observability — EventBus integration with 9 typed event DTOs
  • FakeWorkflowRunner — testing without HTTP calls, with assertion helpers
  • Immutable context — thread-safe WorkflowContext that flows through nodes

Installation

composer require token27/nexus-ai-workflows

Requires nexus-ai as a dependency:

composer require token27/nexus-ai guzzlehttp/guzzle

Quick Start

use Token27\NexusAI\Driver\DriverRegistry;
use Token27\NexusAI\Workflows\Engine\WorkflowBuilder;
use Token27\NexusAI\Workflows\Engine\WorkflowContext;
use Token27\NexusAI\Workflows\Runner\WorkflowRunner;

// 1. Register your LLM drivers
$registry = new DriverRegistry();
$registry->register('openai', fn () => /* your OpenAI driver */);

// 2. Build a workflow
$workflow = WorkflowBuilder::named('research-pipeline')
    ->addAINode('analyze', 'openai', 'gpt-4o', 'Analyze this topic: {{_input}}')
    ->addActionNode('format', fn ($ctx) => $ctx->with('output', strtoupper($ctx->get('output'))))
    ->addTransition('analyze', 'format')
    ->build();

// 3. Run it
$runner = new WorkflowRunner($registry);
$result = $runner->run($workflow, WorkflowContext::from(['_input' => 'PHP async']));

echo $result->output['output']; // AI-generated analysis
echo $result->elapsedMs;        // Execution time in ms

Documentation

Full documentation is available in the docs/ directory:

Architecture

WorkflowBuilder::named('my-flow')     ← Define the graph
    ->addAINode(...)                  ← Add nodes (8 types)
    ->addTransition(...)              ← Connect with transitions
    ->build()                         ← Immutable Workflow

WorkflowRunner::run(workflow, ctx)    ← Execute the graph
    ├── Middleware pipeline            ← Cross-cutting concerns
    ├── Node::execute(ctx) → ctx      ← Each node transforms context
    ├── TransitionEvaluator            ← Guards + priority routing
    └── EventBus                       ← Observability events

Requirements

License

MIT. Please see LICENSE for more information.