Skip to main content
Glama
fshbet

sentinel-orchestrator

by fshbet

Универсальная платформа оркестрации ИИ

Домен-агностический, MCP-first движок оркестрации.

Опишите цель, а не рабочий процесс. Дайте ему задачу, и он решает, что это за работа, как её декомпозировать, какие возможности нужны, что можно выполнять параллельно, как проверяются результаты, что делать при сбое и была ли цель фактически достигнута.

Он не содержит предположений о вашем домене. Никаких встроенных ролей агентов, встроенных доменных рабочих процессов, жёстко заданного провайдера или жёстко заданных инструментов.

pip install -e ".[all]"
orchestrator init .
orchestrator run "Accomplish this objective."

В чём отличие

Модель предлагает; программное обеспечение распоряжается. Состояние, планирование, разрешения, повторные попытки, сохранение, проверка и ограничения ресурсов — это детерминированный код. Модель используется для рассуждений, планирования, выполнения работы и оценки субъективных результатов — и ни для чего другого.

Именно это разделение позволяет платформе давать жёсткие обещания вместо вероятностных:

  • Неудачная обязательная проверка не может привести к COMPLETED.

  • Отменённое выполнение не может молча продолжаться.

  • Агент не может вызывать или даже видеть инструмент, который ему не был предоставлен.

  • Каждый цикл — повторные попытки, перепланирования, раунды уточнения, итерации агента — имеет принудительный предел.

  • Обнаруженный MCP-инструмент не доверен; аннотации сервера могут только повышать его оценённый риск, но никогда не понижать.

«Готово» означает что-то. Завершение требует доказательств. Там, где нет детерминированной проверки, платформа сообщает UNCERTAIN, а не притворяется. Модель может достичь LIKELY; она никогда не может подтвердить CONFIRMED.

Ядро имеет нулевую зависимость. Всё остальное — CLI, REST API, HTTP-провайдеры моделей, YAML — подключается по желанию. MCP через stdio работает в чистой установке, потому что клиент протокола реализован нативно.


Related MCP server: agentloop

Позиция безопасности

Эта платформа запускает инструменты с аргументами, которые выбрала модель. Этот единственный факт определяет дизайн безопасности, и контроли применяются в коде, а не запрашиваются у модели.

Объявите профиль развёртывания. Если он опущен, подразумевается production.

profile: production   # development | internal-pilot | production

разработка

внутренний пилот

production

Политика по умолчанию

разрешено

запрещено

запрещено

Явное предоставление инструментов

нет

да

да

Аутентификация API

не требуется

требуется

требуется

Обычный HTTP-трафик наружу

разрешено

отказано

отказано

Частные сети

разрешено

разрешено

отказано

Облачные метаданные

отказано

отказано

отказано

Инструменты процессов

если настроено

отказано

отказано

Прочитайте перед развёртыванием:

  • SECURITY.md — модель угроз, что защищено, а что нет

  • docs/security.md — каждый контроль, с его тестом

  • docs/production-readiness.md — контрольный список из 108 пунктов, каждый отмечен как выполненный / невыполненный / ответственность оператора

  • deployment/runbook.md — три формы развёртывания

  • docs/configuration.md — все настройки

Объём заявления

Поддерживает контролируемое производственное развёртывание за TLS/auth прокси: либо однозначное на SQLite, либо многозначное на PostgreSQL (storage.backend: postgres).

Явно не поддерживается: многозначное на SQLite, принудительная изоляция контейнера/песочницы/удалённая, внутрипроцессная проверка OIDC JWT или любая прокси-переданная идентичность (bearer-токены — единственный механизм идентичности), выполнение процессов без внешней границы изоляции и любая гарантия корректности вывода ИИ.

Проверено на двух репликах в поставляемом стеке Compose: общее состояние PostgreSQL, распределённый отзыв токенов, распределённое ограничение скорости, принудительный исходящий трафик через прокси и TLS-граница, которая удаляет заголовки идентичности, предоставленные клиентом. Платформа предоставляет проверку на основе доказательств, отчётность о уверенности, состязательного рецензента, шлюзы одобрения человеком и детерминированный регрессионный каркас — ни одно из этих средств не делает вывод модели корректным; они делают основу для доверия к нему проверяемой.

python -m pytest tests/ -q        # 699 with PostgreSQL
orchestrator validate             # effective posture and migration notices
orchestrator evaluate             # 31 deterministic regression cases
orchestrator migrate              # schema status

Запуск от начала до конца

objective
   → goal analysis        structured requirements, provenance-tagged
   → pattern selection    deterministic complexity scoring
   → planning             validated task DAG (or a deterministic fallback)
   → scheduling           dependency-aware, parallel, resource-locked
   → per task             capability-routed agent, least-privilege scope,
                          bounded loop, independent validation gate
   → recovery             classify → strategy ladder → retry/swap/re-plan/ask
   → objective gate       success criteria, checked
   → review               structural precondition on completion
   → COMPLETED

Любая фаза может остановиться и ждать человека, приостановиться или отмениться — и возобновиться из сохранённого состояния после этого, в том числе после смерти процесса.

orchestrator inspect <id>    # the task graph, validations, failures
orchestrator audit <id>      # every decision, in order

Паттерны оркестрации

Компонуемые фрагменты графа, а не режимы. Параллельный веер, чей шаг слияния — это цикл оценщик-оптимизатор, — просто граф.

single agent · sequential · parallel · router · orchestrator-worker · evaluator-optimizer · hierarchical · handoff · dynamic DAG

Маршрутизатор материализует каждую ветвь и обрезает те, которые не выбрал. Задача может передать оставшуюся работу другому специалисту, с ограничением, чтобы коллеги не могли передавать её по кругу. И задача может быть целым оркестрированным запуском сама по себе, с бюджетом, выделенным из бюджета родителя, а не добавленным к нему.

Платформа выбирает один из структуры цели. Тривиальная цель получает одного агента и одну проверку — а не десять агентов и четырёх рецензентов. Переопределите с помощью --pattern, когда захотите.


Возможности, а не роли

Ничто не маршрутизируется по имени. Задача объявляет, что она требует; агент рекламирует, что он предоставляет; выбор — это детерминированная оценка, которая предпочитает наименьшее избыточное привилегирование. Когда ничто не покрывает требование, создаётся ограниченный эфемерный специалист — а когда недостаток нереален, выбор громко проваливается.

Ядро не поставляет никаких возможностей, агентов или навыков. Они поступают из конфигурации, плагинов или планировщика. Именно это сохраняет его доменно-нейтральным.

Навыки — это третья часть: переиспользуемые знания, как контент, а не код. Навык говорит агенту, как подойти к работе, на которую он уже был авторизован, и ничего ему не даёт.


MCP

Первоклассный в обоих направлениях, реализован нативно поверх JSON-RPC 2.0 без зависимости от SDK. Версии протокола согласовываются, а не предполагаются.

Как клиент: серверы обнаруживаются, описываются, проверяются политикой, авторизуются и только затем регистрируются — так что агент вызывает MCP-инструмент точно так же, как и всё остальное.

orchestrator mcp    # health, negotiated version, registered tools, refusals

Как сервер: orchestrator mcp-serve предоставляет оркестрацию другим агентным системам. Операции управления остаются за --allow-control.


Документация

docs/how-it-works.html

Руководство простым языком. Начните здесь, если не собираетесь читать код

ARCHITECTURE.md

Дизайн, инварианты, карта подсистем

ORCHESTRATION_GUIDE.md

Как на самом деле им управлять

MCP_GUIDE.md

MCP в обоих направлениях

EXTENDING.md

Каждая точка расширения

docs/production-readiness.md

Что доказано, что нет, и как проверялось каждое утверждение

docs/security.md

Контроли и что каждый из них не покрывает

deployment/runbook.md

Запуск: три поддерживаемые формы

docs/

29 тематических руководств

docs/adr/

12 записей архитектурных решений

docs/research/ORCHESTRATION_RESEARCH.md

Что было оценено и отклонено


Статус

701 тест. 699 проходят, когда доступен экземпляр PostgreSQL; без него 659 проходят, а 42 теста на PostgreSQL пропускаются. Каждая подсистема проверяется на реальных хранилищах, реальном подпроцессе MCP-сервера и намеренном внедрении сбоев. Многозначные контроли — общий отзыв токенов, общее ограничение скорости, принудительный исходящий трафик и TLS-граница — проверяются на работающем производственном стеке Compose с помощью deployment/smoke-test.sh, а не только в модульных тестах.

Известные ограничения честно записаны в docs/production-readiness.md и docs/research/ORCHESTRATION_RESEARCH.md, а не оставлены для обнаружения.

Apache-2.0.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers