{"id":48736683,"url":"https://github.com/langgenius/graphon","last_synced_at":"2026-04-12T04:42:48.358Z","repository":{"id":348896578,"uuid":"1189279581","full_name":"langgenius/graphon","owner":"langgenius","description":null,"archived":false,"fork":false,"pushed_at":"2026-04-10T13:25:43.000Z","size":768,"stargazers_count":18,"open_issues_count":4,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-12T04:42:44.613Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/langgenius.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":"CLA.md"}},"created_at":"2026-03-23T06:46:51.000Z","updated_at":"2026-04-10T03:40:46.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/langgenius/graphon","commit_stats":null,"previous_names":["langgenius/graphon"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/langgenius/graphon","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/langgenius%2Fgraphon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/langgenius%2Fgraphon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/langgenius%2Fgraphon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/langgenius%2Fgraphon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/langgenius","download_url":"https://codeload.github.com/langgenius/graphon/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/langgenius%2Fgraphon/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31704492,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-11T21:17:31.016Z","status":"online","status_checked_at":"2026-04-12T02:00:06.763Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-04-12T04:42:47.707Z","updated_at":"2026-04-12T04:42:48.344Z","avatar_url":"https://github.com/langgenius.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Graphon\n\nGraphon is a Python graph execution engine for agentic AI workflows.\n\nThe repository is still evolving, but it already contains a working execution\nengine, built-in workflow nodes, model runtime abstractions, integration\nprotocols, and a runnable end-to-end example.\n\n## Highlights\n\n- Queue-based `GraphEngine` orchestration with event-driven execution\n- Graph parsing, validation, and fluent graph building\n- Shared runtime state, variable pool, and workflow execution domain models\n- Built-in node implementations for common workflow patterns\n- Pluggable model runtime interfaces, including a local `SlimRuntime`\n- HTTP, file, tool, and human-input integration protocols\n- Extensible engine layers and external command channels\n\nRepository modules currently cover node types such as `start`, `end`, `answer`,\n`llm`, `if-else`, `code`, `template-transform`, `question-classifier`,\n`http-request`, `tool`, `variable-aggregator`, `variable-assigner`, `loop`,\n`iteration`, `parameter-extractor`, `document-extractor`, `list-operator`, and\n`human-input`.\n\n## Quick Start\n\nGraphon is currently easiest to evaluate from a source checkout.\n\n### Requirements\n\n- Python 3.12 or 3.13\n- [`uv`](https://docs.astral.sh/uv/)\n- `make`\n\nPython 3.14 is currently unsupported because `unstructured`, which backs part\nof the document extraction stack, currently declares `Requires-Python: \u003c3.14`.\n\n### Set up the repository\n\n```bash\nmake dev\nsource .venv/bin/activate\nmake test\n```\n\n`make dev` installs the project, syncs development dependencies, and sets up\n[`prek`](https://prek.j178.dev/) Git hooks.\n\n## Run the Example Workflow\n\nThe repository includes a minimal runnable example at\n[`examples/graphon_openai_slim`](examples/graphon_openai_slim).\n\nIt builds and executes this workflow:\n\n```text\nstart -\u003e llm -\u003e output\n```\n\nTo run it:\n\n```bash\nmake dev\nsource .venv/bin/activate\ncd examples/graphon_openai_slim\ncp .env.example .env\npython3 workflow.py \"Explain Graphon in one short sentence.\"\n```\n\nBefore running the example, fill in the required values in `.env`.\n\nThe example currently expects:\n\n- an `OPENAI_API_KEY`\n- a `SLIM_PLUGIN_ID`\n- a local `dify-plugin-daemon-slim` setup or equivalent Slim runtime\n\nFor the exact environment variables and runtime notes, see\n[examples/graphon_openai_slim/README.md](examples/graphon_openai_slim/README.md).\n\n## How Graphon Fits Together\n\nAt a high level, Graphon usage looks like this:\n\n1. Build or load a graph and instantiate nodes into a `Graph`.\n2. Prepare `GraphRuntimeState` and seed the `VariablePool`.\n3. Configure model, file, HTTP, tool, or human-input adapters as needed.\n4. Run `GraphEngine` and consume emitted graph events.\n5. Read final outputs from runtime state.\n\nThe bundled example follows exactly that path. The execution loop is centered\naround `GraphEngine.run()`:\n\n```python\nengine = GraphEngine(\n    workflow_id=\"example-start-llm-output\",\n    graph=graph,\n    graph_runtime_state=graph_runtime_state,\n    command_channel=InMemoryChannel(),\n)\n\nfor event in engine.run():\n    ...\n```\n\nSee\n[examples/graphon_openai_slim/workflow.py](examples/graphon_openai_slim/workflow.py)\nfor the full example, including `SlimRuntime`, `SlimPreparedLLM`, graph\nconstruction, input seeding, and streamed output handling.\n\n## Project Layout\n\n- `src/graphon/graph`: graph structures, parsing, validation, and builders\n- `src/graphon/graph_engine`: orchestration, workers, command channels, and\n  layers\n- `src/graphon/runtime`: runtime state, read-only wrappers, and variable pool\n- `src/graphon/nodes`: built-in workflow node implementations\n- `src/graphon/model_runtime`: provider/model abstractions and Slim runtime\n- `src/graphon/graph_events`: event models emitted during execution\n- `src/graphon/http`: HTTP client abstractions and default implementation\n- `src/graphon/file`: workflow file models and file runtime helpers\n- `src/graphon/protocols`: public protocol re-exports for integrations\n- `examples/`: runnable examples\n- `tests/`: unit and integration-style coverage\n\n## Internal Docs\n\n- [CONTRIBUTING.md](CONTRIBUTING.md): contributor workflow, CI, commit/PR rules\n- [examples/graphon_openai_slim/README.md](examples/graphon_openai_slim/README.md):\n  runnable example setup\n- [src/graphon/model_runtime/README.md](src/graphon/model_runtime/README.md):\n  model runtime overview\n- [src/graphon/graph_engine/layers/README.md](src/graphon/graph_engine/layers/README.md):\n  engine layer extension points\n- [src/graphon/graph_engine/command_channels/README.md](src/graphon/graph_engine/command_channels/README.md):\n  local and distributed command channels\n\n## Development\n\nContributor setup, tooling details, CLA notes, and commit/PR conventions live\nin [CONTRIBUTING.md](CONTRIBUTING.md).\n\nCI currently validates commit messages, pull request titles, formatting, lint,\nand tests on Python 3.12 and 3.13. Python 3.14 is currently excluded because\n`unstructured` does not yet support it.\n\n## License\n\nApache-2.0. See [LICENSE](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flanggenius%2Fgraphon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flanggenius%2Fgraphon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flanggenius%2Fgraphon/lists"}