Об этом проекте

Adrastea — Python-проект с лицензией MIT (требования: Python 3.10+), предлагающий архитектуру «симбиотического двойного двигателя» для автономной оркестрации задач. Основная идея заключается в разделении нагрузки между предсказуемым слоем исполнения и слоем рассуждений, который вмешивается лишь при возникновении проблем. **Система Alpha — детерминированный движок исполнения** Alpha описывается как хост-процесс, запускающийся первым. Он обрабатывает жизненный цикл и инициализацию, проверяет и стабилизирует окружение перед запуском Beta. Его обязанности включают планировщик задач, который распределяет локальные скрипты, бинарные файлы и определения задач, а также локальный раннер программ, управляющий стандартным I/O, логированием ошибок и жизненным циклом процессов с акцентом на воспроизводимое исполнение. RL-планировщик направляет последовательности задач с помощью функций оценки, связанных с такими метриками, как задержка, коды выхода, утилизация ресурсов и валидность вывода, и использует эвристики поиска пути для выбора ветвей исполнения на основе исторических и настроенных весов. Alpha также подключается к локальному инференс-рантайму (Ollama на `http://127.0.0.1:11434`) для офлайн-операций с низкой нагрузкой: парсинг, извлечение формата и базовый текстовый анализ. **Система Beta — вероятностный движок принятия решений и рассуждений** Beta запускается Alpha после стабилизации и выступает слоем принятия решений для недетерминированных задач. Она мониторит телеметрию Alpha, метрики здоровья и прогресс задач, вмешивается, когда Alpha сталкивается с необработанными исключениями, дрейфом окружения, повторяющимися состояниями отказов или циклами исполнения. Beta также отвечает за настройку весов вознаграждения и штрафов, используемых RL-планировщиком Alpha, эффективно перенаправляя исполнение к более продуктивным путям. Beta работает в автономном цикле с четырьмя заявленными режимами: idle/observe (пассивный мониторинг), triage & unstick (диагностика блокирующих условий), optimize (устранение избыточности в завершённых путях исполнения) и discover & innovate (выдвижение гипотез о новых последовательностях задач и целях). Она интегрируется с MCP-серверами для внешних инструментов и живого контекста и может обращаться к frontier- или внешним LLM для глубоких рассуждений, стратегических решений, генерации кода и устранения неполадок. **Межпроцессное взаимодействие** Alpha и Beta работают как параллельные процессы, взаимодействующие через канал двусторонней связи с низкой задержкой — например, domain sockets, именованные каналы или шину сообщений, передавая структурированные JSON или Protocol Buffer оболочки. Документированные управляющие сигналы включают `SIG_SPAWN`, `SIG_HEARTBEAT`, `SIG_SLEEP`, `SIG_WAKE`, `SIG_TELEMETRY`, `SIG_STUCK`, `SIG_INTERRUPT`, `SIG_DISPATCH`, `SIG_MUTATE` и `SIG_TUNE_WEIGHTS`. Вместе они покрываютboooting процессов, пинги жизнеспособности, переходы сон/пробуждение, отчёт об результатах, уведомление о зависании, прерывание задач, инжекцию в очередь, мутацию параметров в полёте и обновление весов RL. **Keep-alive и режим долгого сна** Координатор `KeepAliveProcess` позволяет системе спать в течение длительного времени для снижения потребления CPU, памяти и токенов, сохраняя при этом активными TCP IPC-сервер Alpha на `127.0.0.1:8765`, клиентские каналы и наблюдатели `DIRECTIVES.txt`. Маршрутизация сигналов для heartbeat, wake, sleep и dispatch предусмотрена для быстрого отклика, фоновые подпроцессы Beta и раннеры задач остаются под надзором и оживляются при неожиданном завершении, а входящие директивы или.dispatch-сигналы пробуждают систему немедленно, не дожидаясь таймера сна. **CLI** README документирует команды вроде `python -m adrastea.cli keepalive --sleep-interval 300`, `ping`, `sleep --duration 600` и `wake`. Заявленные предварительные требования: локальный сервер Ollama (с моделями типа `qwen3-coder:30b` или более лёгкими instruction-моделями), конфигурация MCP-клиента, локальный рантайм исполнения (PowerShell, Bash, Python или Node) и асинхронный кросспроцессный транспорт. Следует отметить, что README описывает архитектурные намерения и содержит формулировку «rudimentary» относительно keep-alive; бенчмарки и показатели производительности не приводятся, поэтому описанное поведение следует рассматривать как проектные цели, а не измеренные результаты. Вклады приветствуются через fork, feature branch и pull request в `main`.