Você diz o que quer
Um pedido em linguagem natural descreve a alteração pretendida.
Interação visual e agentes Demonstrator de cercetare
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
Um pedido em linguagem natural descreve a alteração pretendida.
O pedido é associado às ações disponíveis no demonstrador.
O ambiente visual é atualizado, e os passos podem ser seguidos.
Exploração de um objeto e das suas opções através da conversa.
A ligação entre os comandos do utilizador e uma cena navegável.
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
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`.
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.
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.
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.
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».
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.
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
Da exploração à implementação
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.
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.
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.
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.
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.
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.
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 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.
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.
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.
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
Um cenário de utilização, sem dados de cliente nem resultados comerciais atribuídos.
O visitante pronuncia ou escreve a frase na barra de comando.
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.
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
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.
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.
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 pilotoDesenvolvemos representações 3D da cidade que combinam relevo, mapas e dados sobre o espaço construído.
Prototip & cercetareAcesso API a modelos de IA através de uma interface comum.
PlatformăGrai é a nossa linha de investigação em síntese de voz e modelos adaptados às línguas que se falam aqui.
Cercetare & dezvoltareConte-nos o seu processo. Em conjunto decidimos o que vale a pena construir, o que podemos ligar e como verificamos o resultado.