Ai2 раскрыла архитектуру ИИ-агента Shippy для мониторинга судов в океане

Команда Skylight при Ai2 (Allen Institute for AI) опубликовала технический разбор того, как она строила Shippy, ИИ-агента для мониторинга обстановки в океане в реальном времени. Skylight, бесплатная платформа морской безопасности, которой пользуются более 300 партнёров (госагентства и НКО) в 70+ странах; ошибка агента может отправить патрульное судно не туда и подвергнуть риску людей, поэтому команда с самого начала делала ставку не на модель, а на надёжность всей системы.
Агент устроен как три слоя: soul, системный промпт, задающий персону и поведенческие границы (например, Shippy никогда не решает, нарушило ли судно закон, это решение людей, а не агента); skills, навыки в виде markdown-файлов со структурированным frontmatter по тому же agent-skills-стандарту, что используют Claude Code и Codex; config, какой агентный харнесс запускать (используется open-source-фреймворк OpenClaw), какую модель (сейчас Claude Opus 4.6) и рантайм-настройки. Soul и skills зашиваются в Docker-образ, а смена модели или харнесса, это просто изменение конфига, а не пересборка.
Шиппи не вызывает Skylight API напрямую: вместо этого он работает через специально написанный CLI. В ранних прототипах агент сам собирал вызовы API с десятками типов фильтров, вложенными объектами и геометрией, и стабильно делал тонкие ошибки: ломал пагинацию, неверно кодировал геометрию, получал похожие на правильные, но неверные данные. CLI со встроенной справкой и понятными ошибками закрыл эту проблему, а результаты запросов пишутся в локальный JSON-файл, а не прокидываются через shell (иначе большие выдачи упирались в лимиты pipe-буфера и ломали инструменты вроде jq).
Каждый пользователь Skylight, например, инспектор рыболовства на Филиппинах, работает в изолированной эфемерной сессии: своя платформа Mothership поднимает под каждого пользователя отдельный Kubernetes-деплой с агентом, его навыками и CLI, а JWT-токен пользователя внедряется при старте сессии, так что запросы к API и файлы, которые агент пишет во время анализа, никогда не пересекаются между пользователями.
Для оценки агента команда не полагается на статические бенчмарки моделей, а построила собственную систему на базе открытого фреймворка Harbor: эксперты предметной области пишут сценарии и рубрики с весами критериев под конкретную задачу и размечают ответы как верные/неверные, LLM-судья оценивает каждый критерий от 0 до 1 с письменным обоснованием, взвешенная сумма сверяется с порогом прохождения. Версия Shippy, которая регрессирует по этим критериям, не доходит до пользователей. Последний прогон показал три типовых слабых места: агент иногда переходит от поддержки решений к тактическим рекомендациям при планировании патрулей, упрощение границ зон при геозапросах приводило к пропуску событий, и один раз агент выдумал несуществующую команду CLI.
Далее команда планирует научить Shippy напрямую управлять картой Skylight (двигать регион, менять фильтры и период) вместо простых ссылок, маршрутизировать простые запросы на более лёгкие модели, а сложные, оставлять за флагманской моделью, и добавить память между разными диалоговыми потоками, чтобы не переспрашивать у аналитика его юрисдикцию и предпочтения каждый раз заново. Подход Mothership и наработки по Shippy команда уже переносит на другие проекты Ai2, платформу охраны дикой природы EarthRanger и набор инструментов наблюдения Земли OlmoEarth.
Ключевые факты
- Ai2/Skylight построили ИИ-агента Shippy для мониторинга судов в океане в реальном времени; используется 300+ партнёрами в 70+ странах
- Архитектура агента, три слоя: soul (системный промпт с поведенческими границами), skills (markdown-навыки по стандарту Claude Code/Codex), config (харнесс OpenClaw, модель Claude Opus 4.6)
- Агент общается со Skylight API не напрямую, а через детерминированный CLI, это убрало класс ошибок с пагинацией, геометрией и неверными фильтрами
- Каждая пользовательская сессия изолирована: платформа Mothership поднимает отдельный Kubernetes-под с своим JWT-токеном на каждого пользователя
- Собственная система оценки на Harbor: эксперты пишут взвешенные рубрики, LLM-судья скорит ответы, регрессирующие версии не идут в прод; найдены слабые места, тактические советы вместо поддержки решений, упрощение границ и один случай выдуманной CLI-команды
Почему это важно
Мониторинг океана, область с высокой ценой ошибки: неверный ответ агента может отправить патрульное судно не туда, потратить и без того ограниченные ресурсы и подвергнуть риску людей. Поэтому команда Skylight с самого начала строила Shippy не как демонстрацию возможностей модели, а как систему, которой можно доверять в проверке фактов против живых, постоянно обновляемых спутниковых и AIS-данных, а не статичного снимка.
Кому это важно
Прежде всего, сотням государственных агентств и НКО, использующих Skylight в 70+ странах: инспекторам рыболовства, аналитикам морской безопасности, операторам патрулей. Шире, всем, кто строит ИИ-агентов для высокорисковых операционных задач: команда прямо говорит, что наработки по Shippy уже переносятся на другие проекты Ai2, платформу охраны дикой природы EarthRanger и набор инструментов наблюдения Земли OlmoEarth.
Как это применить
Практический рецепт из статьи: разделяйте агента на soul (системный промпт с явными, редактируемыми границами поведения), skills (независимо версионируемые markdown-навыки по общему agent-skills-стандарту) и config (харнесс, модель, рантайм, меняются без пересборки). Не давайте модели собирать сырые вызовы к сложному API самостоятельно, заверните его в детерминированный CLI со своей справкой и понятными ошибками, пишите большие результаты в файл, а не в shell-пайп. Для многопользовательских сценариев изолируйте каждую сессию на уровне инфраструктуры (в случае Shippy, отдельный под Kubernetes и токен доступа на сессию).
Можно ли доверять
Команда не оценивает модель саму по себе, она построила отдельную систему оценки на открытом фреймворке Harbor, где эксперты предметной области пишут сценарии и рубрики с весами критериев под конкретную задачу, размечают эталонные верные/неверные ответы, а LLM-судья скорит каждый критерий от 0 до 1 с письменным обоснованием; взвешенная сумма сверяется с порогом прохождения, и версия, которая регрессирует, не выходит к пользователям. Это выглядит как содержательный, а не декоративный процесс проверки, хотя сама методика (кто именно судья, какие пороги) раскрыта не полностью.
Риски и подводные камни
Последний прогон эвала вскрыл конкретные слабые места: агент иногда переходит от поддержки решений к прямым тактическим рекомендациям при планировании патрулей (то есть выходит за заявленные soul-ограничения), упрощение границ зон при геозапросах приводило к пропуску реальных событий, и в одном случае агент выдумал несуществующую CLI-команду, классическая для LLM-агентов галлюцинация инструмента. Команда описывает это как штатную часть цикла улучшения навыков, а не как решённую проблему, и открыто приглашает ранних пользователей стресс-тестировать систему.
«Soul определяет, что Shippy будет и не будет делать. Он не станет юридически квалифицировать, нарушило ли судно закон, это решение людей, а не агента. Он также не будет строить предположения сверх того, что подтверждают данные.»
— команда Skylight, блог Ai2 на Hugging Face