Перейти к основному содержимому

Конфигурация

Что это

raytsystem настраивается пятью файлами в каталоге config/. Все они хранятся в репозитории, читаются при старте и служат единым источником правды о том, какие возможности включены и по каким правилам работает система.

  • config/raytsystem.toml — базовые настройки ядра: версия схемы, пути данных, лимиты, а также флаги функций ядра в секции [features].
  • config/platform.yaml — платформенные флаги функций, политики по умолчанию и пороги предохранителей (circuit breakers).
  • config/policies.yaml — правила промоушена знаний, внешних действий, egress к моделям и роли ревьюеров.
  • config/runtime-adapters.yaml — каталог runtime-адаптеров (исполнителей). В текущем релизе все адаптеры имеют state: disabled.
  • config/sources.yaml — маршруты нормализации источников и настройки сети (по умолчанию сеть выключена).

Когда использовать

Открывайте эти файлы, когда нужно понять, почему возможность недоступна, проверить пороги безопасности или подготовить изменение платформенных настроек. Для практических вопросов «включено ли X» удобнее посмотреть готовый статус через CLI, а не читать YAML вручную.

Предварительные условия

  • Установленный проект и рабочее окружение uv (см. /getting-started/installation).
  • Доступ к каталогу config/ в репозитории.

Пошагово

  1. Проверьте базовое состояние системы:

    uv run raytsystem doctor
  2. Получите платформенные флаги и хеш конфигурации в машинно-читаемом виде:

    uv run raytsystem platform-status --json

    Ответ включает поля flags и config_sha256 — хеш нормализованной конфигурации из config/platform.yaml (см. to_public_dict и load_feature_config в src/raytsystem/features.py).

  3. Полный список флагов и их значения по умолчанию смотрите на странице /reference/feature-flags.

  4. Для модуля «Документы» секция [documents] задаёт disposable index_db, лимиты и массив [[documents.roots]] с id, относительным path, mode и kind. Такая запись не может ослабить compiled protection floor; см. разрешённые и защищённые области.

Пример: флаги и их зависимости

Флаги функций живут в двух местах. Флаги ядра (config/raytsystem.toml, секция [features]) управляют графом кода, графовым поиском, цифровыми сотрудниками, рабочими пространствами задач и heartbeat'ами. Платформенные флаги (config/platform.yaml, секция features) управляют оценками, телеметрией, replay, симулятором политик, аварийными контролями, MCP-управлением, жизненным циклом паков, движком воркфлоу, уведомлениями и резервным копированием.

Ключевая особенность платформенных флагов — fail-closed зависимости. В src/raytsystem/features.py (_DEPENDENCIES) заданы пары «дочерний → родительский флаг»: дочерний флаг нельзя включить, если родительский выключен, иначе загрузка падает с FeatureConfigError. Например:

  • promptfoo_adapter_enabled требует evals_enabled;
  • promptfoo_remote_generation_enabled требует promptfoo_adapter_enabled;
  • otel_export_enabled требует telemetry_enabled;
  • external_mcp_execution_enabled требует mcp_governance_enabled;
  • a2a_network_exposure_enabled требует a2a_gateway_enabled;
  • external_notifications_enabled требует notifications_enabled;
  • external_kms_enabled требует restricted_encryption_enabled.

Отдельные шлюзы экспозиции/провайдеров (удалённая генерация promptfoo, внешнее исполнение MCP, сетевая экспозиция A2A, внешний KMS) остаются выключенными по умолчанию, даже если родительская функция включена.

Ожидаемый результат

platform-status --json возвращает текущий набор флагов и config_sha256. По умолчанию (согласно config/platform.yaml) включены: evals_enabled, telemetry_enabled, replay_enabled, policy_simulator_enabled, emergency_controls_enabled, mcp_governance_enabled, pack_lifecycle_enabled, workflow_engine_enabled, notifications_enabled, backup_enabled.

Ограничения и безопасность

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

  • Исполнение runtime (runtime_execution_enabled, codex_local_enabled, claude_local_enabled в config/raytsystem.toml) — выключено. Все адаптеры в config/runtime-adapters.yaml имеют state: disabled.
  • Плановые heartbeat'ы (scheduled_heartbeats_enabled) — выключены.
  • Внешние шлюзы: otel_export_enabled, promptfoo_adapter_enabled, acp_adapter_enabled, a2a_gateway_enabled, external_notifications_enabled, restricted_encryption_enabled и связанные шлюзы экспозиции — выключены.

Политики по умолчанию из config/platform.yaml (секция policy) держат систему в безопасном состоянии: network_default: none, workspace_default: staging_only, external_actions_default: approval_required, mcp_tool_default: catalog_only, a2a_bind: loopback, пустой notification_destinations (любой внешний адресат отклоняется). Сеть в config/sources.yaml тоже отключена (network.enabled: false) и разрешает только https/порт 443 с блокировкой приватных адресов.

config/policies.yaml фиксирует: реальный промоушен знаний — manual_hash_bound (то есть по умолчанию запрещён без одобрения с привязкой к хешу), а действия send, publish, upload, delete, pay, git_push, pull_request всегда требуют одобрения.

Пороговые значения предохранителей (circuit_breakers в config/platform.yaml) задают лимиты, при превышении которых защёлкивается кэтч-брейкер (например, repeated_error: 5, protected_path: 1, forbidden_egress: 1).

Частые ошибки

  • Правка YAML без учёта зависимостей. Если включить дочерний флаг при выключенном родителе, загрузка конфигурации завершится ошибкой FeatureConfigError. Сначала включите родительский флаг.
  • Ожидание работы выключенной функции. Если возможность описана в документации, но отключена, см. /troubleshooting/documented-but-disabled и /troubleshooting/feature-flag-off.
  • Ручная сверка вместо CLI. Быстрее и надёжнее выполнить uv run raytsystem platform-status --json, чем сверять флаги глазами.

Связанные страницы

Источники истины

  • config/raytsystem.toml
  • config/platform.yaml
  • config/policies.yaml
  • config/runtime-adapters.yaml
  • config/sources.yaml
  • src/raytsystem/features.py