Skip to main content

Graphon

Graphon — движок исполнения графов на Python для агентных AI-воркфлоу.

Репозиторий всё ещё развивается, но уже содержит рабочий движок исполнения, встроенные узлы воркфлоу, абстракции рантайма моделей, протоколы интеграции и рабочий end-to-end пример.

Основное

  • Оркестрация GraphEngine на очередях, событийное исполнение
  • Парсинг графа, валидация, fluent-построение графа
  • Общее состояние рантайма, пул переменных, доменные модели исполнения воркфлоу
  • Встроенные реализации узлов для типовых паттернов воркфлоу
  • Поддержка импорта DSL с LLM-узлами на Slim
  • Протоколы интеграции HTTP, файлов, инструментов, human-input
  • Расширяемые слои движка и внешние командные каналы

Модули репозитория сейчас покрывают такие типы узлов: 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 и human-input.

Быстрый старт

Проще всего оценить Graphon из исходников (source checkout).

Требования

Python 3.14 пока не поддерживается — unstructured, часть стека извлечения документов, сейчас объявляет Requires-Python: <3.14.

Настройка репозитория

just dev
source .venv/bin/activate
just test

just dev устанавливает проект, синхронизирует dev-зависимости и настраивает Git-хуки prek. just test — точка входа последовательной локальной проверки: форматирует, применяет автофиксы линта, запускает ty check, затем pytest.

Запуск примеров воркфлоу

В репозитории есть минимальные рабочие примеры Slim LLM в examples/slim_llm.

Обе версии выполняют такой воркфлоу:

start -> llm -> answer

Запуск:

just dev
source .venv/bin/activate
cd examples/slim_llm
cp credentials.example.json credentials.json
python3 dsl.py "Reply with only the word Graphon."
python3 code.py "Reply with only the word Graphon."

Перед запуском заполните нужные значения в credentials.json.

Пример сейчас ожидает:

  • OpenAI-совместимые credentials модели в model_credentials
  • slim.mode — local или remote
  • arkady-plugin-daemon-slim в PATH, SLIM_BINARY_PATH, либо локальный бинарник slim в директории примера
  • для remote-режима — daemon_addr и daemon_key

Точный формат credentials и заметки по рантайму — в examples/slim_llm/README.md.

Как устроен Graphon

На высоком уровне прямое использование Graphon выглядит так:

  1. Построить или загрузить граф, инстанцировать узлы в Graph.
  2. Подготовить GraphRuntimeState и заполнить VariablePool.
  3. Настроить адаптеры модели, файлов, HTTP, инструментов или human-input по необходимости.
  4. Запустить GraphEngine и обрабатывать события графа.
  5. Прочитать финальные выходные данные из состояния рантайма.

Для DSL-документов Arkady используйте arkady_graphon.dsl.loads(), чтобы построить движок из YAML-воркфлоу и credentials. Получившийся движок использует DSL Slim-адаптер для LLM-узлов:

engine = loads(
    dsl,
    credentials=credentials,
    workflow_id="example-dsl-openai-slim",
    start_inputs={"query": query},
)

events = list(engine.run())

См. examples/slim_llm/dsl.py для версии с импортом DSL и examples/slim_llm/code.py для версии с построением графа на Python.

Импорт DSL по умолчанию сейчас поддерживает start, end, answer, if-else, template-transform, code, llm, tool, http-request, variable-aggregator, assigner, list-operator, question-classifier и parameter-extractor. Импорт HTTP-запросов покрывает текстовые тела запросов и текстовые ответы; тела запросов с файлами всё ещё требуют файловых адаптеров на уровне приложения.

Для прямого построения графа на Python используйте arkady_graphon.dsl.slim.SlimLLM как стандартный Slim-рантайм для LLM. Интеграциям, которым нужно заменить исполнение модели, роутинг, инъекцию credentials или подсчёт токенов, стоит реализовать arkady_graphon.protocols.LLMProtocol. Более высокоуровневый слой фабрики/резолвера моделей запланирован отдельным доработкой.

Структура проекта

  • src/arkady_graphon/graph: структуры графа, парсинг, валидация, построители
  • src/arkady_graphon/graph_engine: оркестрация, воркеры, командные каналы и слои
  • src/arkady_graphon/runtime: состояние рантайма, read-only обёртки, пул переменных
  • src/arkady_graphon/nodes: встроенные реализации узлов воркфлоу
  • src/arkady_graphon/model_runtime: абстракции провайдера/модели и общие сущности моделей
  • src/arkady_graphon/dsl: поддержка импорта DSL, включая Slim-адаптеры рантайма
  • src/arkady_graphon/graph_events: модели событий, испускаемых при исполнении
  • src/arkady_graphon/http: абстракции HTTP-клиента и реализация по умолчанию
  • src/arkady_graphon/file: модели файлов воркфлоу и хелперы файлового рантайма
  • src/arkady_graphon/protocols: публичные ре-экспорты протоколов для интеграций
  • examples/: рабочие примеры
  • tests/: unit- и integration-тесты

Внутренняя документация

Разработка

Настройка для контрибьюторов, детали инструментов, заметки по CLA и конвенции commit/PR — в CONTRIBUTING.md.

CI сейчас проверяет заголовки pull request'ов, запускает just check (включая проверку актуальности uv.lock) и uv run pytest на Python 3.12 и 3.13. Python 3.14 пока исключён — unstructured его ещё не поддерживает.

Лицензия

Apache-2.0. См. LICENSE.


English version: README.en.md

Metadata

Release files for arkady-graphon 0.7.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for arkady-graphon 0.7.1
File Size Uploaded
arkady_graphon-0.7.1.tar.gz 266.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for arkady-graphon 0.7.1
File Interpreter ABI Platform
arkady_graphon-0.7.1-py3-none-any.whl Python 3 none any Details

Total release size: 649.2 kB

Release files / arkady_graphon-0.7.1.tar.gz

Download URL arkady_graphon-0.7.1.tar.gz
Size 266.3 kB
Tags Source
SHA-256 checksum
How to use checksums
e023565489e28970bcaac25a080dbbf60146084fd03b66dc8cffb2111b783ae9
BLAKE2b-256 checksum
How to use checksums
4cdbd3f1c17213884fb33a97b549d1676e16f34bb70811f6b71880e2b17a74ba
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 13, 2026.

Transparency log

Release files / arkady_graphon-0.7.1-py3-none-any.whl

Download URL arkady_graphon-0.7.1-py3-none-any.whl
Size 382.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d24b9dd4aabcaf120b901fa85d9baa37c94e730377da557fd5938351ef84a430
BLAKE2b-256 checksum
How to use checksums
364d9e3338ef5ae76b2755b27a4e67e014198ea81fa6ea93fd2bb0dffd57a2f2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 13, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.7.1 This release

2 release files

0.7.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page