Saltar para o conteúdo
megapromotingVamos falar
Produtos World Agent

Interação visual e agentes Demonstrator de cercetare

Uma conversa que pode mudar o que você vê.

World Agent é um demonstrador para a interação em linguagem natural com uma cena visual. Exploramos a ligação entre conversa, o estado de um objeto e ações visíveis num ambiente 3D.

World Agent: câmpul de intenție, cu o comandă în limbaj natural și candidații de context punctați dedesubt
vision.megapromoting.com · um comando em linguagem natural e o contexto que o sistema considera adequado

World Agent

Da informação ao trabalho feito.

01

Você diz o que quer

Um pedido em linguagem natural descreve a alteração pretendida.

02

O sistema interpreta

O pedido é associado às ações disponíveis no demonstrador.

03

A cena responde

O ambiente visual é atualizado, e os passos podem ser seguidos.

Onde se torna útil.

Demonstrações de produto

Exploração de um objeto e das suas opções através da conversa.

Interfaces 3D

A ligação entre os comandos do utilizador e uma cena navegável.

Cercetare

Avaliação de um runtime visual antes das integrações comerciais.

O cenário e o catálogo do demonstrador são conceptuais. Não apresentamos uma integração CRM nem um modelo generativo de mundo como estando ligado nesta versão.

World Agent em detalhe

O que você pode fazer com este projeto.

World Agent responde a uma pergunta de interface: o que muda se, em vez de carregar em botões, disser o que quer e o cenário mudar diante de si? Você fala, e a máquina no cenário muda de cor, as jantes, o ambiente, o tempo, a hora, o ângulo da câmara, as portas e a bagageira.

A parte interessante não é que compreende o comando, mas que cada mudança deixa um rasto que diz de onde veio: do catálogo, do comando do utilizador, da camada criativa ou do sistema. Uma camada de nevoeiro num percurso alpino é etiquetada como „simulação visual”; uma cor da paleta de quatro é etiquetada como „catálogo”. O utilizador não precisa de adivinhar o que é real e o que é decoração.

Existem três diretórios com nome semelhante no disco; dois deles — `world-agent-v2` e `world-agent-provenance-atlas` — não são projetos separados, mas cópias de trabalho git do mesmo repositório. A versão real é `world-agent` na branch `main`, que hoje contém a reformulação V2 „World Generator” e é idêntica bit a bit à branch `v2/world-generator`.

01

Compilador de comandos em romeno, local, determinista

Cerca de 22 regras de correspondência sobre texto romeno traduzem uma frase numa alteração de estado tipificada. „Faça o carro branco e coloque jantes desportivas” aciona duas regras e produz dois eventos distintos. Não é um modelo de linguagem: é código que corre no browser, dá sempre o mesmo resultado e pode ser lido linha a linha.

02

Voz com retorno ao texto

O reconhecimento de voz usa `webkitSpeechRecognition` no browser, com a língua fixada em `ro-RO`. Onde a interface não existe — ou o utilizador prefere o teclado — a barra de comando continua funcional, com as mesmas regras. Não enviamos áudio para lado nenhum.

03

Cenário 3D determinista

Um veículo construído proceduralmente a partir de primitivas Three.js (carroçaria, cabine de cápsula de vidro, quatro rodas com jantes, faróis, portas, bagageira), num estrado com anel, grelha e três luzes. Renderização com tone mapping ACES Filmic, relação de píxeis limitada a 1,75 e paragem completa da animação quando o sistema pede menos movimento.

04

Rail de proveniência

Cada mutação de estado produz um evento com uma de quatro etiquetas: Catalog, User command, Creative layer ou System. A etiqueta «Creative layer» é apresentada literalmente como «Camada criativa / simulada». A ficha da oferta aparece com o detalhe «Dados fictícios marcados — não é uma oferta comercial».

05

Contrato de runtime para voz e ferramentas visuais

Existe um runtime normalizado com oito ferramentas visuais (`visual.inspect`, `visual.highlight`, `visual.move`, `visual.create`, `visual.delete`, `world.query`, `ui.navigate`, `ui.open_panel`) e um registo de eventos com números de revisão do mundo. Uma chamada com revisão desatualizada é rejeitada com `STALE_REVISION`; uma chamada repetida com o mesmo `actionId` devolve o recibo original marcado como repetição. O adaptador de voz reporta ele próprio `NOT_CONNECTED` — o contrato está implementado, o fornecedor não está ligado.

06

Registo honesto de motores de mundo

Seis faixas, cada uma com o seu estatuto declarado: API documentada para integração, componentes executáveis abertos, investigação aberta para avaliar, fornecedor a contactar, pré-visualização de investigação sem API pública, e uma faixa marcada como bloqueada para a UE onde as licenças analisadas não autorizam o lançamento. Genie 3 está explicitamente na categoria pré-visualização de investigação — não integração.

Dados e funcionamento

O que entra no sistema. O que deve ser verificado.

O que é motor de cena e o que seria modelo generativo
Aqui está a fronteira que mais frequentemente se confunde. World Agent é um motor de cena: os objetos existem antes, as ações permitidas estão enumeradas, e o comando escolhe entre elas. Um modelo generativo de mundo produziria geometria e dinâmica nunca vistas antes, a pedido. A segunda coisa não está ligada, e a interface diz isso: não existe um modelo de base que gere mundos neste build.
O vocabulário é finito, e isso é uma propriedade, não uma falta
Um pedido fora do vocabulário não desencadeia uma suposição: o sistema responde que pode controlar a cor, as jantes, o ambiente, o tempo, a câmara, as portas, a bagageira e a ficha demonstrativa, e regista um evento „Pedido não executado — não foi encontrada uma ação segura no vocabulário demo”. Numa demonstração para um cliente, a margem do vocabulário tem de ser visível, não mascarada.
O que é conceptual na cena
O veículo e o catálogo são conceptuais — quatro cores com nomes inventados, dois conjuntos de jantes, dois interiores. Não existe um modelo 3D de um fabricante automóvel nem direitos para um. Os preços estão indisponíveis deliberadamente: a ficha de oferta tem a etiqueta de dados fictícios.
O que não está ligado
Sem CRM, sem catálogo do fabricante, sem preço em tempo real, sem ações externas autónomas. Os conectores pessoais (correio, mensagens) aparecem na interface com a etiqueta NOT CONNECTED. O deploy serve um build estático: não tem estado de servidor, portanto também não tem dados do utilizador.
O estado persiste apenas na sessão
A configuração „salva” fica na memória da página, com a proveniência System e o detalhe „Estado guardado localmente no demo”. Um recarregamento perde-a. Não é uma base de dados.

Da exploração à implementação

Como preparamos um projeto com World Agent.

01

1. Escolhemos o objeto e o que o visitante deve poder explorar

Um produto físico configurável, um espaço, uma máquina. A pergunta de partida é que decisão toma o visitante depois de ver a cena.

02

2. Enumeramos as ações permitidas e depois escrevemos as regras

Parte-se da lista de ações seguras, não da lista de frases. Cada ação recebe as regras de linguagem que a desencadeiam, na língua do público, e a etiqueta de proveniência correta.

03

3. Testamos a margem, não o centro

Os pedidos válidos são a parte fácil. Testam-se os pedidos ambíguos, os que estão fora do cenário e os que combinam várias ações, para que a resposta „não posso fazer isso, mas posso fazer isto” seja útil.

04

4. Publicamos como build estático

O resultado é um pacote estático servido por nginx num servidor próprio, com certificado Let's Encrypt e possibilidade de regressar à versão anterior através da alteração de uma ligação simbólica. Não precisa de um processo de servidor.

Perguntas que vale a pena esclarecer.

Qual das três diretórias com World Agent é a real?

Só uma: `world-agent`, na branch `main`. `world-agent-v2` e `world-agent-provenance-atlas` são cópias de trabalho git (`git worktree`) do mesmo repositório, usadas para que existam várias variantes de design em simultâneo. `main` e `v2/world-generator` estão hoje no mesmo commit, por isso a “versão V2” não é outro projeto, é o que está a correr.

É um modelo generativo de mundo, como Genie ou Sora?

Não. É um motor de cena: os objetos e as ações existem antes, e o comando escolhe entre eles. Genie 3 aparece no nosso registo de motores exatamente com o seu estatuto real — pré-visualização de investigação, sem API pública para lançar, sem pesos publicados. O que fazemos, em vez disso, é menos espetacular e mais fácil de garantir: o mesmo comando dá o mesmo resultado, e cada alteração tem uma etiqueta de proveniência.

Como é que entende o comando — usam um modelo de linguagem?

Não, e isso é uma escolha. O compilador é um conjunto de cerca de 22 regras de correspondência sobre texto romeno, executadas no browser, que produzem alterações de estado tipificadas. A vantagem: é determinístico, não custa nada por pedido, não envia texto para lado nenhum e pode ser auditado linha a linha. A desvantagem: o vocabulário é finito, e quando um pedido sai dele o sistema diz isso em vez de improvisar.

Com o que é que a voz funciona?

Com o reconhecimento de voz no browser — `webkitSpeechRecognition`, com a língua fixada em `ro-RO`. Isso significa, na prática, browsers com motor Chromium. Fora isso, a barra de texto faz exatamente a mesma coisa, com as mesmas regras: a voz é uma comodidade, não uma dependência.

Os preços na ficha de oferta são reais?

Não, e estão marcados como tal logo no evento que os apresenta: “Dados fictícios marcados — não é uma oferta comercial”. Não existe integração com um catálogo do fabricante ou com um sistema de preços. Numa implementação para um cliente, a fonte do preço seria o sistema dele, e a etiqueta de proveniência mudaria de “Catálogo demo” para a fonte real.

Liga-se ao nosso CRM?

Não neste build. Os conectores aparecem na interface com a etiqueta NOT CONNECTED, e o contrato de ferramentas existe, mas o adaptador do fornecedor reporta sozinho `NOT_CONNECTED`. No entanto, já existe a parte pesada escrita: oito ferramentas visuais tipificadas, números de revisão do mundo, rejeição por revisão desatualizada e recibos idempotentes — ou seja, exatamente as proteções de que você precisa para que um agente não aplique duas vezes a mesma ação sobre um estado que entretanto mudou.

Pode ser usado para algo além de uma máquina?

Sim, com o trabalho de configuração descrito acima: a cena, a lista de ações permitidas e as regras de linguagem são reescritas para o objeto em questão. O que se reutiliza é a arquitetura — o compilador determinístico, o rail de proveniência, o contrato de ferramentas e a disciplina de revisão do estado.

Exemplo ilustrativo

“Leve-nos aos Alpes, de noite, com chuva”

Um cenário de utilização, sem dados de cliente nem resultados comerciais atribuídos.

Situação inicial

O visitante pronuncia ou escreve a frase na barra de comando.

Como funciona

O texto passa pelas regras de correspondência em romeno: “alpi” ativa o ambiente alpino, “noapte” altera a hora, “ploa” ativa a camada de chuva. Cada regra produz um evento separado com a sua etiqueta de proveniência, e a cena Three.js reajusta a câmara, a neblina e a cor de fundo em conformidade.

Rezultatul

A cena muda imediatamente, e no rail lateral aparecem três entradas: «Ambiente composto — Camada criativa / simulada — Percurso alpino», «Tempo simulado — Camada criativa / simulada — Iluminação noturna» e «Tempo simulado — Camada criativa / simulada — Camada de chuva ativa». O agente responde que aplicou 3 alterações e manteve a fonte de cada uma. Nenhuma entrada afirma ser um dado real.

Ce este necesar:Un browser cu WebGL. Pentru comandă vocală, un browser pe motor Chromium; altfel bara de text face același lucru.

Possibilidades de colaboração

World Agent, no contexto da sua organização.

Fluxos internos e informação

A ligação das fontes autorizadas, a organização da informação e a revisão das ações pela equipa, com acesso separado por funções.

Empresas privadas

Definimos um piloto em torno de um processo real: utilizadores, dados, integrações, custos e critérios de aceitação. A expansão segue após a avaliação do resultado.

Instituições e empresas públicas

Estabelecemos os requisitos de acessibilidade, alojamento, proteção de dados e interoperabilidade. Qualquer ligação a serviços AGE ou STISC requer a validação da elegibilidade, do acesso e das aprovações.

Estes são cenários de adaptação, não declarações sobre contratos ou parcerias existentes. As funções propostas confirmam-se no âmbito de trabalho do projeto.

Fale sobre um piloto

Parte de um ecossistema.

O que gostaria que funcionasse melhor?

Conte-nos o seu processo. Em conjunto decidimos o que vale a pena construir, o que podemos ligar e como verificamos o resultado.

Vamos falar