Skip to main content

Graph execution engine for agentic AI workflows.

Project description

Graphon

Graphon is a Python graph execution engine for agentic AI workflows.

The repository is still evolving, but it already contains a working execution engine, built-in workflow nodes, model runtime abstractions, integration protocols, and a runnable end-to-end example.

Highlights

  • Queue-based GraphEngine orchestration with event-driven execution
  • Graph parsing, validation, and fluent graph building
  • Shared runtime state, variable pool, and workflow execution domain models
  • Built-in node implementations for common workflow patterns
  • Pluggable model runtime interfaces, including a local SlimRuntime
  • HTTP, file, tool, and human-input integration protocols
  • Extensible engine layers and external command channels

Repository modules currently cover node types such as start, end, answer, llm, if-else, code, template-transform, question-classifier, http-request, tool, variable-aggregator, variable-assigner, loop, iteration, parameter-extractor, document-extractor, list-operator, and human-input.

Quick Start

Graphon is currently easiest to evaluate from a source checkout.

Requirements

  • Python 3.12+
  • uv
  • make

Set up the repository

make dev
source .venv/bin/activate
make test

make dev installs the project, syncs development dependencies, and sets up prek Git hooks.

Run the Example Workflow

The repository includes a minimal runnable example at examples/graphon_openai_slim.

It builds and executes this workflow:

start -> llm -> output

To run it:

make dev
source .venv/bin/activate
cd examples/graphon_openai_slim
cp .env.example .env
python3 workflow.py "Explain Graphon in one short sentence."

Before running the example, fill in the required values in .env.

The example currently expects:

  • an OPENAI_API_KEY
  • a SLIM_PLUGIN_ID
  • a local dify-plugin-daemon-slim setup or equivalent Slim runtime

For the exact environment variables and runtime notes, see examples/graphon_openai_slim/README.md.

How Graphon Fits Together

At a high level, Graphon usage looks like this:

  1. Build or load a graph and instantiate nodes into a Graph.
  2. Prepare GraphRuntimeState and seed the VariablePool.
  3. Configure model, file, HTTP, tool, or human-input adapters as needed.
  4. Run GraphEngine and consume emitted graph events.
  5. Read final outputs from runtime state.

The bundled example follows exactly that path. The execution loop is centered around GraphEngine.run():

engine = GraphEngine(
    workflow_id="example-start-llm-output",
    graph=graph,
    graph_runtime_state=graph_runtime_state,
    command_channel=InMemoryChannel(),
)

for event in engine.run():
    ...

See examples/graphon_openai_slim/workflow.py for the full example, including SlimRuntime, SlimPreparedLLM, graph construction, input seeding, and streamed output handling.

Project Layout

  • src/graphon/graph: graph structures, parsing, validation, and builders
  • src/graphon/graph_engine: orchestration, workers, command channels, and layers
  • src/graphon/runtime: runtime state, read-only wrappers, and variable pool
  • src/graphon/nodes: built-in workflow node implementations
  • src/graphon/model_runtime: provider/model abstractions and Slim runtime
  • src/graphon/graph_events: event models emitted during execution
  • src/graphon/http: HTTP client abstractions and default implementation
  • src/graphon/file: workflow file models and file runtime helpers
  • src/graphon/protocols: public protocol re-exports for integrations
  • examples/: runnable examples
  • tests/: unit and integration-style coverage

Internal Docs

Development

Contributor setup, tooling details, CLA notes, and commit/PR conventions live in CONTRIBUTING.md.

CI currently validates commit messages, pull request titles, formatting, lint, and tests on Python 3.12, 3.13, and 3.14.

License

Apache-2.0. See 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

graphon_local-1.0.1.tar.gz (437.5 kB view details)

Uploaded Source

Built Distribution

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

graphon_local-1.0.1-py3-none-any.whl (333.6 kB view details)

Uploaded Python 3

File details

Details for the file graphon_local-1.0.1.tar.gz.

File metadata

  • Download URL: graphon_local-1.0.1.tar.gz
  • Upload date:
  • Size: 437.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for graphon_local-1.0.1.tar.gz
Algorithm Hash digest
SHA256 0f89d9cd9ecf67e8909350e4c0610fe90a7e3cc26930d0ff71a6816d8bc7456e
MD5 24142aeb52e904762c9987d9f9666942
BLAKE2b-256 6843d0497123042b4886b4d9020455ed1b8ad9be9d4c724bf680101b21619149

See more details on using hashes here.

File details

Details for the file graphon_local-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: graphon_local-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 333.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for graphon_local-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b3efa772502d9c114779de4d6a4df061789fb0504d1ae9f7539fd369b96e6fbf
MD5 4420eb603af4d21b359343f2655b0f19
BLAKE2b-256 51f2e78daaf804e81b58d371e0041e1532451274b7cd5052b15e252855f2961d

See more details on using hashes here.

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