Quando um analista marítimo depende de um agente de IA, uma única resposta errada pode enviar uma embarcação de patrulha a quilômetros de distância do curso, desperdiçando recursos escassos e colocando vidas em risco. Esse é o desafio que a equipe do Skylight enfrentou ao construir o Shippy, um agente de IA para consciência situacional marítima em tempo real. O verdadeiro trabalho não foi o modelo em si — foi construir um sistema que pudesse ser confiável para estar correto, permanecer dentro de seus limites e ter desempenho confiável em uma ampla gama de tarefas. E cada teste tinha que ser executado contra os dados ao vivo do Skylight, atualizados continuamente à medida que novos sinais de satélites e embarcações chegam.

Shippy respondendo a uma consulta ao vivo sobre a ZEE de Gana. A resposta mostra seu trabalho: a fonte do limite, o corte de dados, o timestamp da consulta e um link direto de volta ao mapa do Skylight para que o analista possa verificar cada número.
Anatomia do agente: habilidades, alma e configuração
A equipe pensa em um agente como o Shippy como três componentes: uma alma, habilidades e configuração. A alma é o prompt do sistema que define a personalidade e os limites comportamentais do Shippy. As habilidades dizem ao Shippy como lidar com tipos específicos de solicitações. Juntas, a alma e as habilidades são incorporadas em uma imagem Docker — um artefato versionado e implantável que define o que o Shippy é. A configuração cobre todo o resto: qual harness de agente executar (OpenClaw, um framework de código aberto), qual LLM usar (atualmente Claude Opus 4.6) e configurações de tempo de execução. Segredos como chaves de API são injetados em tempo de execução; trocar o modelo ou o harness é uma mudança de configuração, não uma reconstrução.
As habilidades do Shippy seguem a mesma especificação de habilidades de agente usada por ferramentas de codificação como Claude Code e Codex — arquivos markdown simples com frontmatter estruturado. Isso mantém cada habilidade compreensível, versionada e fácil de revisar. O Shippy atualmente inclui habilidades para:
- Consultar a API do Skylight para Eventos (comportamentos de embarcações como pesca ou transbordo) e dados de embarcações
- Pesquisar limites de Zonas Econômicas Exclusivas (ZEE) e Áreas Marinhas Protegidas (AMP)
- Interpretar dados de trajetória de embarcações, com base em classificações de atividade dos modelos do Skylight, incluindo Atlantes
- Gerar links de mapa interativos que permitem que um analista salte de uma resposta de chat para uma localização exata no mapa do Skylight
Por exemplo, a habilidade de consulta à API do Skylight codifica o fluxo de trabalho completo para responder a uma pergunta sobre uma área específica. Quando um usuário pergunta "mostre-me atividade de pesca na ZEE do Panamá no mês passado", as instruções da habilidade direcionam o Shippy a primeiro resolver "ZEE do Panamá" para um polígono de limite através da API de regiões do Skylight — em vez de adivinhar ou codificar coordenadas —, depois consultar Eventos de Pesca dentro dessa geometria, formatar os resultados com links diretos de volta ao mapa do Skylight e atribuir quaisquer metadados de embarcação de parceiros como Global Fishing Watch ou TMT.
Uma única pergunta pode acionar várias habilidades ao mesmo tempo. "Há embarcações operando perto da AMP Cordillera de Coiba?" utiliza a habilidade do Skylight para consulta de dados, o banco de dados do ProtectedSeas para contexto de limites da AMP e a habilidade de trajetória de embarcações para interpretar o comportamento. Tudo isso acontece em uma única rodada de diálogo.
A alma define o que o Shippy fará e não fará. Ele não fará determinações legais sobre se uma embarcação está infringindo a lei — isso é uma decisão para pessoas, não para um agente. Ele também não especulará além do que os dados suportam. Esses limites são explícitos no prompt do sistema, não implícitos no ajuste fino, tornando-os auditáveis e fáceis de revisar.
Ferramentas determinísticas para um agente não determinístico
Agentes são não determinísticos. Você não pode controlar o que o modelo decide fazer, mas pode tornar as ferramentas que ele usa previsíveis. Para esse fim, o Shippy 'conversa' com o Skylight através de uma CLI construída especificamente para chamar a API, em vez de fazer chamadas brutas por conta própria.
A API do Skylight tem dezenas de tipos de entrada, objetos de filtro aninhados, cursores de paginação e entradas de geometria complexas. Nos primeiros protótipos, deixar o Shippy construir chamadas de API do zero produziu um fluxo constante de bugs sutis: paginação malformada que descartava resultados silenciosamente, erros de codificação de geometria e consultas de aparência correta que retornavam dados errados devido a um tipo de filtro mal compreendido.
A CLI do Skylight reduz essa complexidade a uma interface previsível. O Shippy emite um único comando — skylight events search com flags de filtro tipadas — e a CLI lida com autenticação, paginação e saída estruturada. A CLI também é autodocumentada: texto extenso de --help e mensagens de erro detalhadas dão ao agente (e aos desenvolvedores humanos) contexto suficiente para se recuperar de erros sem adivinhar. Sua saída é sempre escrita em um arquivo JSON local em vez de ser canalizada pelo shell. No início, grandes conjuntos de resultados atingiam limites de buffer de pipe ou quebravam ferramentas downstream como jq. Escrever em disco contorna ambos os problemas e permite que o agente acesse programaticamente os resultados da consulta em etapas subsequentes.
Abaixo da CLI está uma API padronizada: múltiplos tipos de recursos — Eventos do Skylight, embarcações, regiões, imagens de satélite, trajetórias de embarcações e mais — acessíveis através de um par comum de operações, search e aggregate. As entradas e saídas das APIs são definidas como esquemas tipados com descrições em nível de campo.
Essa camada — API tipada, CLI determinística e habilidades de agente que referenciam os comandos da CLI — significa que cada componente pode ser testado independentemente. A API tem seu próprio conjunto de testes. A CLI pode ser exercitada por um humano ou um agente. E as habilidades do agente referenciam comandos da CLI que cuidam da parte técnica para que o Shippy não tenha que reinventar a roda toda vez que acessa a API do Skylight. Cada camada reduz o que a próxima camada pode errar.

Hospedagem em sandbox e isolamento
O Skylight atende centenas de agências governamentais e ONGs em mais de 70 países. Um oficial de pesca nas Filipinas tem Áreas de Interesse, listas de vigilância de embarcações e configurações de alerta com escopo em sua conta do Skylight. Quando ele pergunta algo ao Shippy, as chamadas de API do agente precisam retornar seus dados, e seu histórico de conversa nunca deve ser visível para mais ninguém.
Cada usuário conversa com o Shippy dentro de sua própria sessão efêmera e isolada. Fazer isso funcionar de forma confiável em escala foi um dos esforços de engenharia mais significativos por trás do projeto. A equipe construiu o Mothership, uma plataforma de hospedagem de agentes que provisiona uma implantação dedicada do Kubernetes para cada sessão de usuário. Quando um usuário abre uma conversa, o sistema inicia um conjunto de pods que empacotam o runtime do agente, suas habilidades e a CLI do Skylight. O JWT do Skylight do usuário é injetado no momento do provisionamento para que as chamadas de API do agente tenham escopo nos dados desse usuário.
Arquivos que o agente escreve durante uma análise de várias etapas existem apenas dentro dessa sessão e nunca são compartilhados entre usuários. Dentro da sandbox, o agente pode acessar apenas os dados e ferramentas de que precisa, e a sessão é destruída quando a conversa termina. Essa arquitetura garante que, mesmo que um agente se comporte mal, ele não pode vazar dados entre usuários ou persistir além de seu tempo de vida pretendido.
"Construir um agente de IA para um domínio operacional de alto risco como proteger o oceano é, acima de tudo, um problema de confiabilidade", disse a equipe do Skylight. "Para um analista marítimo, uma resposta errada pode enviar uma embarcação de patrulha na direção errada por quilômetros, custando recursos significativos que já são escassos e potencialmente colocando o pessoal em perigo."
As lições do Shippy já estão sendo levadas para outras plataformas ambientais da Ai2. Os mesmos princípios — limites comportamentais claros, ferramentas determinísticas, testes em camadas e isolamento em sandbox — estão se mostrando essenciais para qualquer agente de IA que deva operar de forma confiável no mundo real. Enquanto a equipe continua refinando o Shippy e expandindo suas capacidades, o foco permanece em construir sistemas que conquistem confiança através de transparência, verificabilidade e um compromisso implacável em acertar os detalhes.



