Документация
Docs/ru/reference/ai-control-protocol/integration-validation.md
Интеграция и проверка AiControl
Сгенерированный справочник. Не редактируйте его напрямую. Измените
BuildTools/AiControlProtocol.json, затем запуститеpython BuildTools/docs_ai_control_protocol.py --write.
| Обзор | Wire-контракт | Методы | Команды и события | Безопасность | Интеграция и проверка | Канонический JSON | Руководство |
Правила интеграции
| Стабильный ID | Правило | Требование | Обоснование | Источник |
|---|---|---|---|---|
ai-control-protocol.integration.native-extension |
Listener принадлежит проекту | Реализуйте listener как опциональное native-расширение встраиваемого проекта, пока в runtime Engine не появится проверенный владелец. | Текущий протокол переиспользуем, но политика listener и shipping-риски остаются ответственностью проекта. | Examples/AiControlSample/README.md |
ai-control-protocol.integration.loop-ownership |
Извлечение команд в игровом цикле | Сетевой поток только проверяет запросы act и ставит их в очередь; клиентский цикл проекта-владельца извлекает команды и изменяет состояние клиента. | Игровые объекты и состояние script runtime не являются socket-thread-safe. | Examples/AiControlSample/ai_control_sample.py |
ai-control-protocol.integration.observation-schema |
Версионирование проектных наблюдений | Объект наблюдения содержит принадлежащую проекту версию схемы и достаточные для адаптера метаданные готовности/действий; протокол Engine не определяет игровые поля. | Last Frontier и TLA обоснованно предоставляют разные игровые модели. | Examples/AiControlSample/ai_control_sample.py |
ai-control-protocol.integration.command-completion |
Событие завершения | Каждая принятая команда в итоге создаёт command_completed с commandSeq, success и message, включая неподдерживаемые или неудачные проектные действия. | Принятие доказывает только вставку в очередь; агентам нужен связанный терминальный результат. | Examples/AiControlSample/ai_control_sample.py |
ai-control-protocol.integration.mcp-boundary |
Граница MCP-адаптера | MCP-адаптер может отображать проектные наблюдения/действия в семантические инструменты, но пространство имён tools, запуск, память, prompts и игровые политики принадлежат проекту. | Совместимость транспорта не должна ложно стандартизировать QA-поверхность одной игры. | Examples/AiControlSample/README.md |
ai-control-protocol.integration.bounded-state |
Ограниченные очереди и история | Очередь команд и сохранённая история событий имеют положительные настраиваемые пределы, видимые через status; заполненная очередь отклоняет команды, не перезаписывая их. | Остановившийся клиентский цикл не должен вызывать неограниченный рост памяти или молчаливую потерю команд. | Examples/AiControlSample/ai_control_sample.py |
Правила проверки
| Стабильный ID | Правило | Требование | Обоснование | Источник |
|---|---|---|---|---|
ai-control-protocol.validation.protocol-smoke |
Smoke-тест протокола | Запустите эталонный клиент с примером сервера и докажите auth, liveness, status, наблюдение, неверный ввод, принятие действия, завершение, обновление состояния и поведение event cursor. | Одна отрисованная схема не доказывает состояние соединения и асинхронный жизненный цикл. | Examples/AiControlSample/run_protocol_smoke.py |
ai-control-protocol.validation.malformed-peer |
Неверные ответы peer | Клиентские тесты отклоняют неверный JSON, неподдерживаемые конверты, несовпадающие id, одновременные result/error и слишком длинные строки. | Автоматизация должна завершаться закрыто, а не принимать неоднозначные данные. | BuildTools/ai_control_client.py |
ai-control-protocol.validation.security |
Тесты границы безопасности | Тесты доказывают отказ для non-loopback, отдельную для соединения авторизацию, отклонение неверного token и отсутствие token в аргументах командной строки. | Требования безопасности должны оставаться исполняемыми при развитии helper. | Examples/AiControlSample/run_protocol_smoke.py |
ai-control-protocol.validation.project-native |
Native-интеграция проекта | Настоящий проект отдельно собирает native bridge, запускает настоящий клиент, проверяет извлечение очереди в клиентском цикле и корректные shutdown/reconnect. | Пример Python доказывает протокол, а не native runtime FOnline. | Examples/AiControlSample/README.md |
ai-control-protocol.validation.gameplay-authority |
Обычный игровой путь | Проектные тесты показывают, что типичные действия проходят обычную серверную валидацию, а отклонённые игровые действия завершаются ошибкой. | Успешный smoke-тест протокола не доказывает игровую авторизацию или anti-cheat-границы. | Examples/AiControlSample/README.md |
ai-control-protocol.validation.shipping-artifact |
Инспекция shipping-артефакта | Release-проверка подтверждает, что production-клиенты не могут открыть listener AiControl и не содержат проектную реализацию удалённых команд. | Выключение по умолчанию слабее отсутствия в поставляемом бинарном файле. | Examples/AiControlSample/README.md |
Команды проверки
python Examples\AiControlSample\run_protocol_smoke.py
python BuildTools\tests\test_ai_control_protocol.py
python BuildTools\docs_ai_control_protocol.py --check