Engenharia de contexto espacial para IA de mapas

Por The Kaleidr Team · Publicado 22 de outubro de 2026 · 15 min de leitura

Diagrama de uma tarefa, id de lugar, estado do mapa, tempo, fatos de negócio, permissões e atualidade alimentando verificações de rota, distância e contenção, seguidas por um pacote de contexto compacto e uma resposta no mapa.

Uma prática de engenharia de contexto espacial seleciona o lugar, o tempo, a rota e os fatos de negócio que um modelo pode usar antes de responder. Um prompt pode pedir o carregador mais próximo. A resposta útil ainda precisa da rota, do relógio e somente dos fatos que o host decidiu compartilhar. Um serviço espacial calcula a geografia, e o modelo explica esse resultado.

O que é engenharia de contexto espacial?

Uma revisão de 2025 que analisa mais de 1.400 artigos de pesquisa trata a engenharia de contexto como uma disciplina que vai além do design de prompts, rumo à otimização sistemática das informações que um modelo de linguagem recebe (Mei et al., 2025). A revisão divide esse trabalho em recuperação e geração de contexto, processamento de contexto e gestão de contexto. A engenharia de contexto espacial aplica a mesma disciplina ao lugar. A carga útil precisa dizer onde está o sujeito, quando os fatos eram verdadeiros, qual rota ou área importa e quais registros de negócio o chamador pode usar.

Mais contexto não é automaticamente melhor. Liu e colegas observaram que os modelos de linguagem costumam ter melhor desempenho quando a informação relevante está no início ou no fim da entrada, e que o desempenho cai de forma significativa quando o modelo precisa usar informações no meio de um contexto longo (Liu et al., 2024). Por isso, um pacote espacial deve continuar pequeno: os lugares elegíveis, as distâncias ou resultados de contenção calculados, a atualidade desses resultados e as ações que o chamador pode executar. Despejar todas as camadas da visualização atual do mapa não passa nesse teste.

Guias para profissionais já usam o termo. O guia para desenvolvedores da Vercel cita quatro padrões: recuperação, memória, compressão e contexto de ferramentas (Vercel, 2026). Um produto de mapas usa os quatro, e nenhum deles substitui um cálculo espacial. A recuperação pode trazer um trecho de política, a memória uma preferência anterior, e a compressão pode descartar o resto do catálogo. O contexto de ferramentas pode guardar o resultado de uma rota ou de uma verificação de contenção, e o modelo deve explicar esse resultado em vez de inventar um número substituto.

Como um prompt difere do contexto?

Um prompt faz a pergunta. Contexto é a evidência reunida antes da resposta. “Encontre os carregadores mais próximos para uma rota de entrega” é uma instrução, e uma instrução sozinha pode produzir uma lista genérica de carregadores que ignora o veículo, o horário e as estradas realmente abertas. A figura contrasta essa resposta limitada com um pacote que nomeia um lugar, um tempo, uma rota, o estado do negócio, permissões e o estado do mapa.

Um prompt curto pedindo carregadores próximos ao lado de um pacote de contexto espacial que adiciona lugar, tempo, rota, estado do negócio, permissões e estado do mapa.

O lado esquerdo mostra uma instrução curta e uma resposta genérica sobre carregadores próximos. O lado direito adiciona lugar, tempo, rota, estado do negócio, permissões e estado do mapa antes de uma resposta sensível à localização. O id do lugar, o timestamp de junho de 2024, o selo de 5,2 km e os pins dos carregadores são rótulos de exemplo. O pacote à direita é um esboço de referência, não um formato de requisição da Kaleidr.

A resposta limitada não está errada como gramática. Ela é inutilizável como operação porque “próximo” não tem origem, desvio máximo nem regra para quais carregadores a frota pode usar. O lado mais rico da figura ainda usa identificadores de exemplo, portanto esses valores não são uma consulta ao vivo. Um pacote de produção levaria os ids próprios do host e os números próprios do serviço espacial.

Por que retrieval é apenas uma fonte?

Retrieval puxa trechos de documentos, políticas, descrições e artigos de ajuda. Esses trechos podem explicar uma regra. Eles não podem dizer a um despachante se uma parada está dentro de uma área de serviço, porque um teste de polígono é um cálculo, não um parágrafo. O contexto espacial mantém o texto recuperado e adiciona fatos estruturados, um resultado de autorização, o estado atual do mapa e o resultado espacial.

Documentos recuperados e texto de políticas ao lado de uma pilha de contexto espacial com fatos de negócio, autorização, estado do mapa e cálculos espaciais.

A coluna esquerda recupera documentos, texto de políticas, descrições e conhecimento em trechos. A coluna direita adiciona a esse texto fatos de negócio estruturados, autorização, estado do mapa e cálculos espaciais. O resultado na figura é um pacote de decisão para uma resposta sensível à localização. A rota desenhada e o pin são ilustrações de exemplo, não um trajeto medido.

Uma equipe que parar no texto recuperado parecerá informada e ainda assim estará errada sobre o mapa. O trecho da política pode dizer que entregas tardias precisam de um local com equipe. Somente o feed de horários, a verificação de contenção e a permissão do chamador podem dizer se esse local se qualifica agora. O pacote de decisão da figura é onde essas peças se encontram.

Por que a evidência atual deve superar a memória desatualizada?

A memória é útil para uma preferência que não expira, como um depósito salvo ou um idioma. É uma fonte ruim para trânsito, fechamentos, estoque ou quem pode ver um local privado hoje. Um “melhor ponto de parada” lembrado da semana passada pode contradizer a rota que o serviço espacial acabou de retornar. Quando os dois discordarem, o cálculo atual e a autorização atual devem vencer, e a memória deve continuar rotulada como preferência, não como fato.

A mesma regra vale para um resumo escrito anteriormente na sessão. Um resumo comprimido pode deixar de fora um fechamento ou uma permissão revogada. O próximo turno deve reler os campos que mudam, ou o chamador deve se recusar a agir com base em um resumo sem timestamp. A atualidade pertence ao pacote como dado, não como esperança de que a resposta anterior ainda seja verdadeira.

Por que a identidade do lugar vem antes de uma busca?

Dois registros podem compartilhar um nome e ainda ser lugares diferentes. Uma busca por “a loja do centro” não é um id. O pacote deve carregar um id de lugar estável do sistema do próprio host, além das coordenadas ou geometria que o serviço espacial usará, e o nome de exibição deve permanecer um rótulo, não a chave. Sem esse id, um turno posterior não consegue diferenciar uma loja renomeada de uma segunda loja, e uma citação não consegue apontar para o registro que realmente era elegível.

Qual geometria o pacote deve carregar?

A geometria precisa corresponder à pergunta. Uma pergunta sobre o carregador mais próximo precisa de pontos e uma rota. Uma pergunta sobre área de serviço precisa de um polígono e um resultado de contenção. Uma pergunta sobre corredor precisa de uma linha e uma distância até essa linha. GeoJSON define um objeto de geometria, e Point é um dos tipos de geometria nesse formato, então um pacote pode nomear o tipo em vez de esconder a forma na prosa (IETF, 2016). Enviar um ponto quando a decisão depende de um polígono faz a explicação posterior parecer precisa mesmo que o teste nunca tenha sido executado.

Por que o viewport não é uma permissão?

Um lugar pode estar dentro da câmera e ainda ser proibido. A figura coloca três locais de exemplo na mesma visualização: duas lojas públicas que o chamador pode usar e uma instalação privada que fica fora do contexto mesmo que o pin esteja visível. Visibilidade é uma pista do que o usuário está olhando. Autorização é uma verificação separada do que a requisição pode incluir.

Um viewport de mapa com duas lojas públicas autorizadas e uma instalação privada visível que é excluída do contexto do modelo.

A caixa tracejada é a visualização atual do mapa e há três lugares de exemplo dentro dela. Public Store A e Public Store B estão marcadas como autorizadas. Private Facility C permanece fora do contexto do modelo mesmo com o pin na tela. Um viewport fornece contexto de localização, e uma verificação separada de permissão decide o que pode ser usado.

A mesma separação vale em um mapa do host. A documentação para desenvolvedores da Kaleidr diz que Chat adiciona seus próprios marcadores, move a câmera e desenha rotas, e que Chat não altera as camadas, fontes ou marcadores da página nem envia esses objetos à Kaleidr (Kaleidr, 2026). Um pin na tela não é uma concessão. O host decide quais fatos cruzam o limite, e o pacote deve registrar essa decisão em vez de supor que a câmera já a tomou.

O que um serviço espacial deve calcular primeiro?

Coloque os números em um serviço espacial e depois peça ao modelo que os explique. A figura mostra um desvio de rota, um resultado de estar dentro da área de serviço e um tempo de viagem alimentando uma explicação de por que uma loja se encaixa. Uma caixa separada rejeita um tempo de viagem adivinhado. O modelo é uma fonte ruim para distância, teste de contenção ou estimativa de chegada, porque esses valores vêm da rede viária, do polígono e do relógio.

Resultados de um serviço espacial para um desvio de rota, uma verificação de área de serviço e um tempo de viagem, ao lado de uma explicação e de um tempo adivinhado rejeitado.

Um serviço espacial informa um desvio de rota de seis minutos, uma verificação verdadeira de estar dentro da área de serviço e um tempo de viagem de quatorze minutos. A explicação então diz por que a Store 104 da figura é a parada selecionada. A caixa rejeitada mostra um modelo de linguagem inventando um tempo de viagem em vez de usar o resultado do serviço. Os minutos, os números de loja e a estimativa citada são rótulos de exemplo na arte.

A explicação ainda pode ser útil. Depois que o serviço retorna a parada elegível, o modelo pode dizer, no idioma do chamador, qual fato calculado tornou essa parada adequada. A explicação deve citar o resultado do serviço em vez de substituí-lo. Números de loja e selos de minutos na figura são rótulos, não um benchmark da Kaleidr.

O que torna um pacote de contexto pequeno o suficiente?

Um pacote deve ser pequeno o bastante para ler e completo o bastante para que a decisão não dependa de uma tabela escondida. A figura começa em sistemas brutos, incluindo banco de lojas, inventário, horários, routing e permissões, e termina em um objeto curto: uma tarefa, alguns candidatos, elegibilidade, um desvio de rota, um timestamp de atualidade e as ações permitidas. Tudo o que não afetou a elegibilidade pode permanecer no sistema de origem.

Registros de lojas, inventário, horários, routing e permissões comprimidos por um construtor de contexto em um pacote curto de candidatos, elegibilidade e ações permitidas.

Registros brutos de um banco de lojas, inventário, horários, routing e permissões entram em um construtor de contexto. O construtor emite um pacote curto com uma tarefa, algumas lojas candidatas, flags de elegibilidade, um desvio de rota, um timestamp e ações permitidas. O pacote deve ser pequeno o bastante para inspeção e completo o bastante para uma decisão. Os ids de loja, as distâncias e o timestamp de junho de 2024 são rótulos de exemplo, e o JSON é um esboço de referência, não uma API da Kaleidr.

Esse resultado sobre contextos longos é o motivo para omitir. A recuperação de candidatos pode começar ampla e depois encolher: lugares inelegíveis saem antes que o modelo os veja, e o pacote mantém o motivo, como horário fechado ou falha na verificação de contenção. A requisição pública de chat da Kaleidr é um contrato mais estreito do que este esboço, e a próxima seção explica o que essa requisição realmente carrega. Equipes não devem fazer POST do JSON da figura como se a plataforma tivesse documentado esse objeto.

O que contém um pipeline de referência?

Um pipeline prático nomeia a etapa responsável por cada risco. Analisar a tarefa, identificar o chamador, verificar a autorização, definir o escopo geográfico, recuperar candidatos, anexar o estado do negócio, executar o cálculo espacial, aplicar elegibilidade, montar o pacote, enviar o pacote ao modelo, executar a ação no mapa, revalidar os campos voláteis e registrar o que aconteceu. A figura adiciona quatro controles na parte superior: a fonte, a regra de atualidade, a política e um trace id.

Um pipeline de referência da análise da tarefa e autorização pelo cálculo espacial, um pacote de contexto, uma ação no mapa, revalidação e observação.

A faixa vai da análise da tarefa por identidade, autorização, escopo geográfico, recuperação de candidatos, estado do negócio, cálculo espacial, elegibilidade, pacote de contexto, modelo, ação no mapa, revalidação e observação. Fonte, atualidade, política e trace id ficam acima como controles de cada etapa. O diagrama é um pipeline de referência para uma equipe que projeta seu próprio construtor de contexto. A rota desenhada abaixo é uma ilustração de exemplo.

A ordem é uma ajuda de design, não uma sequência de produto da Kaleidr. Algumas equipes vão combinar a recuperação de candidatos com o cálculo espacial. As etapas que devem permanecer visíveis são autorização, cálculo, elegibilidade e uma revalidação imediatamente antes de uma ação como atribuir uma parada. Spatial AI fundamentada em dados de negócio é o guia relacionado da Kaleidr para autorização, retrieval e ranking.

Onde a Kaleidr traça o limite de contexto?

Em um mapa do host, o limite é explícito. O guia de mapas compatíveis cobre a conexão do Kaleidr Chat ao Mapbox GL JS, MapLibre GL JS, Google Maps e Leaflet, entre outras bibliotecas, e uma chave do Google Maps permanece entre a página e o Google porque a Kaleidr não recebe essa chave (Kaleidr, 2026). Pins, movimento até um lugar e uma linha de rota são desenhos adicionados pelo painel. Esses desenhos não são uma cópia das tabelas privadas do host.

Um aplicativo host passando apenas uma fatia explícita de localização, zoom, sessão e fatos aprovados ao Kaleidr Chat, com Mapbox, MapLibre, Google Maps e Leaflet como mapas do host.

O aplicativo host mantém usuários, dados privados, inventário, políticas, camadas personalizadas e ações de negócio. Somente uma fatia explícita, como uma localização autorizada, o zoom do mapa, a sessão e fatos aprovados, cruza o limite na figura. O Kaleidr Chat, à direita, resolve lugares, planeja rotas e executa ações no mapa a partir dessa fatia compartilhada. O rodapé é um rótulo da figura, os nomes de lojas e veículos são exemplos, e conectar o Chat não envia por si só as camadas ou sistemas de negócio do host.

A Platform API documenta um limite correspondente na requisição de chat. messages contém a conversa, o objeto location é o centro do mapa usado para interpretar “perto daqui”, map_zoom é o nível de zoom e lang é o idioma da resposta. A mesma página diz que não existe campo para instruções do sistema, persona, ferramentas ou o contexto próprio do chamador, e que campos desconhecidos são aceitos e ignorados. app_snapshot e auto_actions são aceitos e não são necessários, portanto a página diz para deixá-los de fora (Kaleidr, 2026).

Dados de negócio enviados seguem um caminho separado dessa requisição. Enviar dados próprios de uma organização para respostas de IA é somente Enterprise, assim como respostas respaldadas por chave que usem esses dados enviados, conforme afirma How Kaleidr works. Uma página complementar, como construir um assistente de IA sensível ao mapa, cobre o assistente que uma equipe constrói em torno desse mesmo limite.

Como a mesma página pode ser encontrada e citada?

Uma página sobre essa prática deve ser fácil de citar. A figura divide esse trabalho entre busca comum, mecanismos de resposta e citação generativa. A busca quer a frase canônica, um grupo de métodos relacionados e links para guias de apoio. Os mecanismos de resposta querem uma definição direta, algumas perguntas específicas e uma comparação como retrieval versus pacote espacial.

Busca, mecanismos de resposta e citação generativa organizados em torno de uma página de engenharia de contexto espacial, com palavras-chave, definições, perguntas e fontes citadas.

O centro da figura é a engenharia de contexto espacial, com busca, mecanismos de resposta e citação generativa como três superfícies ao redor. Busca cobre uma palavra-chave canônica, um cluster de tópico e links internos. Mecanismos de resposta querem definições diretas, perguntas frequentes e comparações. Citação generativa quer um framework original, um schema descrito, uma lista de falhas e fontes citadas, e nenhuma dessas caixas é uma promessa de ranking.

As caixas dessa figura são uma checklist de redação, não uma garantia de tráfego. A Kaleidr não ranqueia a página, e a figura não relata uma medição. O que a página pode fazer é declarar a definição em um lugar, mostrar o pacote como esboço de referência em vez de formato wire e citar os padrões e documentos dos quais as afirmações dependem. Assim, um leitor pode ver qual frase é uma definição e qual frase é um limite de produto.

O que uma equipe deve fazer a seguir?

Escreva o pacote para uma tarefa real antes de mudar o prompt. Inclua o id do lugar, o tempo, o tipo de geometria, o resultado espacial e a permissão que autorizou cada fato. Depois compare essa lista com a requisição de chat que um host pode enviar hoje: a conversa, o centro do mapa, o zoom e o idioma, sem campo para o contexto privado do host. Quando as respostas precisarem usar dados de negócio enviados, comece com Kaleidr Enterprise.

Observação: a Kaleidr usa ferramentas assistidas por IA para criação de imagens, refinamento de conteúdo e pesquisa em seus fluxos criativos e de desenvolvimento.

Perguntas frequentes

Engenharia de contexto espacial é o mesmo que prompt engineering?

Não. Prompt engineering altera a redação da instrução. Engenharia de contexto espacial altera a evidência que a instrução pode usar, incluindo lugar, tempo, rota ou área e os fatos de negócio que o chamador pode ver. Uma frase melhor não pode fornecer um resultado de contenção que o serviço espacial nunca calculou.

Conectar Kaleidr Chat lê as camadas do mapa do host?

Não. Em uma página onde Chat é executado no documento do host, Chat adiciona seus próprios marcadores, move a câmera e desenha rotas. Chat não altera as camadas, fontes ou marcadores da página e não envia esses objetos à Kaleidr. Tabelas privadas permanecem do lado do host, a menos que um caminho Enterprise separado cubra dados de negócio enviados.

A requisição pública de chat pode carregar um pacote de contexto personalizado?

A requisição documentada carrega a conversa, uma localização para o centro do mapa, um zoom opcional e um idioma. Não existe campo para instruções do sistema, persona, ferramentas ou o contexto próprio do chamador. app_snapshot e auto_actions são aceitos e não são necessários, portanto uma equipe não deve tratá-los como o pacote esboçado neste guia. Campos desconhecidos são aceitos e ignorados.

Por que manter o tempo de viagem em um serviço espacial?

O tempo de viagem depende da rede viária e do relógio, e um valor de minutos adivinhado pode contradizer a rota que o serviço acabou de calcular. A caixa rejeitada na figura de cálculo mostra esse modo de falha com uma citação de exemplo, não um resultado ao vivo. Mantenha o número no serviço espacial e deixe o modelo explicá-lo.

References

  1. Mei, L., et al. A Survey of Context Engineering for Large Language Models. A review of more than 1,400 papers that treats context engineering as more than prompt design and splits it into retrieval and generation, processing, and management. arXiv:2507.13334. 2025. https://arxiv.org/abs/2507.13334
  2. Liu, N. F., et al. Lost in the Middle: How Language Models Use Long Contexts. Transactions of the Association for Computational Linguistics, 12, 157–173. Performance is often highest when relevant information is at the start or end of the input and degrades significantly in the middle of long contexts. 2024. https://doi.org/10.1162/tacl_a_00638
  3. Vercel. What is context engineering? A developer's guide. A practitioner guide naming four patterns: retrieval, memory, compression, and tool context. Accessed October 22, 2026. https://vercel.com/i/context-engineering
  4. IETF. RFC 7946: The GeoJSON Format. GeoJSON defines a geometry object, and a Point is one of the geometry types. 2016. https://www.rfc-editor.org/info/rfc7946
  5. Kaleidr Developer Docs. How Kaleidr works. Chat adds its own markers, moves the camera, and draws routes, and does not change the page's layers, sources, or markers or send them to Kaleidr. Uploaded business data for AI answers, and key-backed answers that draw on that data, are Enterprise only. Accessed October 22, 2026. https://docs.kaleidr.com/concepts/how-kaleidr-works
  6. Kaleidr. Grounded Spatial AI for Business Data. A related guide covering authorization, retrieval, ranking, evaluation, and a narrow pilot. Accessed October 22, 2026. https://kaleidr.com/blog/grounded-spatial-ai-business-data
  7. Kaleidr Developer Docs. Supported maps. Attach targets include Mapbox GL JS, MapLibre GL JS, Google Maps, and Leaflet. A Google Maps key stays between the page and Google; Kaleidr does not receive it. Accessed October 22, 2026. https://docs.kaleidr.com/chat/supported-maps
  8. Kaleidr Developer Docs. Platform API endpoints. The chat request carries the conversation, a map-center location, optional zoom, and a language. There is no field for system instructions, a persona, tools, or the caller's own context. app_snapshot and auto_actions are accepted and not needed. Accessed October 22, 2026. https://docs.kaleidr.com/platform-api/endpoints
  9. Kaleidr. Map-Aware AI Assistant: How to Build One. A companion guide for building the assistant around a map. Accessed October 22, 2026. https://kaleidr.com/blog/how-to-build-a-map-aware-ai-assistant
  10. Kaleidr. Kaleidr Enterprise. The enterprise page for spatial AI integrated with a customer's own data. Accessed October 22, 2026. https://kaleidr.com/enterprise

References in BibTeX

@misc{mei_context_engineering_survey_2025,
  title         = {A Survey of Context Engineering for Large Language Models},
  author        = {Mei, Lingrui and others},
  year          = {2025},
  eprint        = {2507.13334},
  archivePrefix = {arXiv},
  url           = {https://arxiv.org/abs/2507.13334}
}

@article{liu_lost_in_the_middle_2024,
  title   = {Lost in the Middle: How Language Models Use Long Contexts},
  author  = {Liu, Nelson F. and Lin, Kevin and Hewitt, John and Paranjape, Ashwin and Bevilacqua, Michele and Petroni, Fabio and Liang, Percy},
  journal = {Transactions of the Association for Computational Linguistics},
  volume  = {12},
  pages   = {157--173},
  year    = {2024},
  doi     = {10.1162/tacl_a_00638}
}

@misc{vercel_context_engineering_2026,
  title  = {What is context engineering? A developer's guide},
  author = {{Vercel}},
  year   = {2026},
  url    = {https://vercel.com/i/context-engineering}
}

@misc{ietf_rfc7946_2016,
  title  = {RFC 7946: The GeoJSON Format},
  author = {{IETF}},
  year   = {2016},
  url    = {https://www.rfc-editor.org/info/rfc7946}
}

@misc{kaleidr_how_it_works_2026,
  title  = {How Kaleidr works},
  author = {{Kaleidr Developer Docs}},
  year   = {2026},
  url    = {https://docs.kaleidr.com/concepts/how-kaleidr-works}
}

@misc{kaleidr_grounded_spatial_ai_2026,
  title  = {Grounded Spatial AI for Business Data},
  author = {{Kaleidr}},
  year   = {2026},
  url    = {https://kaleidr.com/blog/grounded-spatial-ai-business-data}
}

@misc{kaleidr_supported_maps_2026,
  title  = {Supported maps},
  author = {{Kaleidr Developer Docs}},
  year   = {2026},
  url    = {https://docs.kaleidr.com/chat/supported-maps}
}

@misc{kaleidr_platform_api_endpoints_2026,
  title  = {Platform API endpoints},
  author = {{Kaleidr Developer Docs}},
  year   = {2026},
  url    = {https://docs.kaleidr.com/platform-api/endpoints}
}

@misc{kaleidr_map_aware_assistant_2026,
  title  = {Map-Aware AI Assistant: How to Build One},
  author = {{Kaleidr}},
  year   = {2026},
  url    = {https://kaleidr.com/blog/how-to-build-a-map-aware-ai-assistant}
}

@misc{kaleidr_enterprise_2026,
  title  = {Kaleidr Enterprise},
  author = {{Kaleidr}},
  year   = {2026},
  url    = {https://kaleidr.com/enterprise}
}