Vai al contenuto
megapromotingParliamone
Prodotti World Agent

Interacțiune vizuală & agenți Demonstrator de cercetare

Una conversazione che può cambiare ciò che vede.

World Agent è un dimostratore per l’interazione in linguaggio naturale con una scena visiva. Esploriamo il legame tra conversazione, lo stato di un oggetto e azioni visibili in un 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 · un comando in linguaggio naturale e il contesto che il sistema considera appropriato

World Agent

Dall’informazione al lavoro svolto.

01

Dice ciò che vuole

Una richiesta in linguaggio naturale descrive la modifica desiderata.

02

Il sistema interpreta

La richiesta è collegata alle azioni disponibili nel dimostratore.

03

La scena risponde

L’ambiente visivo si aggiorna e i passaggi possono essere seguiti.

Dove diventa utile.

Dimostrazioni di prodotto

L’esplorazione di un oggetto e delle sue opzioni tramite conversazione.

Interfacce 3D

Il collegamento tra i comandi dell’utente e una scena navigabile.

Cercetare

La valutazione di un runtime visivo prima delle integrazioni commerciali.

La scena e il catalogo del dimostratore sono concettuali. Non presentiamo un’integrazione CRM o un modello generativo di mondo come collegati in questa versione.

World Agent in dettaglio

Cosa potete fare con questo progetto.

World Agent risponde a una domanda di interfaccia: cosa cambia se, invece di premere pulsanti, dite ciò che volete e la scena cambia davanti a voi? Parlate, e la macchina nella scena cambia colore, cerchi, ambiente, meteo, ora, angolo della telecamera, porte e bagagliaio.

La parte interessante non è che capisca il comando, ma che ogni modifica lasci una traccia che dice da dove proviene: dal catalogo, dal comando dell’utente, dal livello creativo o dal sistema. Uno strato di nebbia su un percorso alpino è etichettato «simulazione visiva»; un colore della palette di quattro è etichettato «catalogo». L’utente non deve indovinare cosa è reale e cosa è decorazione.

Esistono tre directory con nome simile sul disco; due di esse — `world-agent-v2` e `world-agent-provenance-atlas` — non sono progetti separati, ma copie di lavoro git dello stesso repository. La variante reale è `world-agent` sul branch `main`, che oggi porta la riformulazione V2 «World Generator» ed è identica bit per bit al branch `v2/world-generator`.

01

Compilatore di comandi in romeno, locale, deterministico

Circa 22 regole di corrispondenza sul testo romeno traducono una frase in una modifica tipizzata di stato. «Fai la macchina bianca e metti cerchi sportivi» attiva due regole e produce due eventi distinti. Non è un modello di linguaggio: è codice che gira nel browser, dà lo stesso risultato ogni volta e si può leggere riga per riga.

02

Voce con ritorno al testo

Il riconoscimento vocale usa `webkitSpeechRecognition` nel browser, con la lingua fissata su `ro-RO`. Dove l’interfaccia non esiste — o l’utente preferisce la tastiera — la barra di comando resta funzionante, con le stesse regole. Non inviamo audio da nessuna parte.

03

Scena 3D deterministica

Un veicolo costruito proceduralmente da primitive Three.js (carrozzeria, cabina in capsula di vetro, quattro ruote con cerchi, fari, porte, bagagliaio), su un basamento con anello, griglia e tre luci. Rendering con tone mapping ACES Filmic, rapporto di pixel limitato a 1,75 e arresto completo dell’animazione quando il sistema richiede movimento ridotto.

04

Rail di provenienza

Ogni mutazione di stato produce un evento con una delle quattro etichette: Catalog, User command, Creative layer o System. L’etichetta “Creative layer” viene visualizzata letteralmente come “Livello creativo / simulato”. La scheda di offerta appare con il dettaglio “Dati fittizi contrassegnati — non è un’offerta commerciale”.

05

Contratto di runtime per voce e strumenti visivi

Esiste un runtime normalizzato con otto strumenti visivi (`visual.inspect`, `visual.highlight`, `visual.move`, `visual.create`, `visual.delete`, `world.query`, `ui.navigate`, `ui.open_panel`) e un registro di eventi con numeri di revisione del mondo. Una chiamata con revisione obsoleta viene respinta con `STALE_REVISION`; una chiamata ripetuta con lo stesso `actionId` restituisce la ricevuta originale marcata come ripetizione. L’adattatore vocale segnala da solo `NOT_CONNECTED` — il contratto è implementato, il fornitore non è connesso.

06

Registro onesto di motori di mondo

Sei fasce, ciascuna con il proprio status dichiarato: API documentata da integrare, componenti eseguibili aperti, ricerca aperta da valutare, fornitore da contattare, anteprima di ricerca senza API pubblica, e una fascia marcata bloccata per l’UE dove le licenze esaminate non autorizzano il lancio. Genie 3 rientra esplicitamente nella categoria anteprima di ricerca — non integrazione.

Dati e funzionamento

Ciò che entra nel sistema. Ciò che deve essere verificato.

Che cos’è un motore di scena e che cosa sarebbe un modello generativo
Qui c’è il confine che si confonde più spesso. World Agent è un motore di scena: gli oggetti esistono già, le azioni consentite sono elencate, e il comando sceglie tra esse. Un modello generativo di mondo produrrebbe geometria e dinamica mai viste prima, su richiesta. La seconda cosa non è connessa, e l’interfaccia lo dice: non esiste alcun modello di base che genera mondi in questa build.
Il vocabolario è finito, e questa è una proprietà, non una mancanza
Una richiesta al di fuori del vocabolario non attiva un’ipotesi: il sistema risponde che può controllare il colore, i cerchi, l’ambiente, il meteo, la camera, le porte, il bagagliaio e la scheda dimostrativa, e registra un evento „Richiesta non eseguita — non ho trovato un’azione sicura nel vocabolario demo”. In una dimostrazione per un cliente, il margine del vocabolario deve essere visibile, non mascherato.
Che cosa è concettuale nella scena
Il veicolo e il catalogo sono concettuali — quattro colori con nomi inventati, due set di cerchi, due interni. Non esiste un modello 3D di un produttore automobilistico e neppure i diritti per uno. I prezzi sono indisponibili di proposito: la scheda di offerta porta l’etichetta di dati fittizi.
Che cosa non è connesso
Nessun CRM, nessun catalogo del produttore, nessun prezzo live, nessuna azione esterna autonoma. I connettori personali (posta, messaggistica) compaiono nell’interfaccia con l’etichetta NOT CONNECTED. Il deploy serve un build statico: non ha stato di server, quindi neppure dati utente.
Lo stato persiste solo nella sessione
La configurazione „salvata” rimane nella memoria della pagina, con provenienza System e il dettaglio „Stato salvato localmente nel demo”. Un ricaricamento la perde. Non è un database.

Dall’esplorazione all’implementazione

Come prepariamo un progetto con World Agent.

01

1. Scegliamo l’oggetto e ciò che il visitatore deve poter esplorare

Un prodotto fisico configurabile, uno spazio, un macchinario. La domanda iniziale è quale decisione prende il visitatore dopo aver visto la scena.

02

2. Elenchiamo le azioni consentite, poi scriviamo le regole

Si parte dall’elenco delle azioni sicure, non dall’elenco delle frasi. A ogni azione vengono assegnate le regole linguistiche che la attivano, nella lingua del pubblico, e l’etichetta di provenienza corretta.

03

3. Testiamo il margine, non il centro

Le richieste valide sono la parte facile. Si testano le richieste ambigue, quelle fuori dallo scenario e quelle che combinano più azioni, così che la risposta „non posso fare questo, ma posso fare queste cose” sia utile.

04

4. Pubbliciamo come build statico

Il risultato è un pacchetto statico servito da nginx su un server proprio, con certificato Let's Encrypt e possibilità di tornare alla versione precedente cambiando un collegamento simbolico. Non ha bisogno di un processo di server.

Domande che meritano di essere chiarite.

Quale delle tre directory con World Agent è quella reale?

Una sola: `world-agent`, sul ramo `main`. `world-agent-v2` e `world-agent-provenance-atlas` sono copie di lavoro git (`git worktree`) dello stesso deposito, usate affinché esistano simultaneamente più varianti di design. `main` e `v2/world-generator` sono oggi allo stesso commit, quindi la „variante V2” non è un altro progetto, è ciò che gira.

È un modello generativo del mondo, come Genie o Sora?

No. È un motore di scena: gli oggetti e le azioni esistono prima, e il comando sceglie tra essi. Genie 3 compare nel nostro registro dei motori esattamente con il suo stato reale — anteprima di ricerca, senza API pubblica da lanciare, senza pesi pubblicati. Quello che facciamo noi invece è meno spettacolare e più facile da garantire: lo stesso comando dà lo stesso risultato, e ogni modifica ha un’etichetta di provenienza.

Come comprende il comando — usate un modello linguistico?

No, ed è una scelta. Il compilatore è un insieme di circa 22 regole di corrispondenza sul testo romeno, eseguite nel browser, che producono cambiamenti di stato tipizzati. Il vantaggio: è deterministico, non costa nulla per richiesta, non invia il testo da nessuna parte e può essere verificato riga per riga. Lo svantaggio: il vocabolario è finito, e quando una richiesta esce da esso il sistema lo dice invece di improvvisare.

Con cosa funziona la voce?

Con il riconoscimento vocale del browser — `webkitSpeechRecognition`, con la lingua fissata su `ro-RO`. Questo significa in pratica browser con motore Chromium. Per il resto, la barra di testo fa esattamente la stessa cosa, con le stesse regole: la voce è una comodità, non una dipendenza.

I prezzi nella scheda dell’offerta sono reali?

No, e sono marcati come tali proprio nell’evento che li mostra: „Date fittizie marcate — non è un’offerta commerciale”. Non esiste integrazione con un catalogo del produttore o con un sistema di prezzi. In un’implementazione per un cliente, la fonte dei prezzi sarebbe il suo sistema, e l’etichetta di provenienza passerebbe da „Catalogo demo” alla fonte reale.

Si collega al nostro CRM?

Non in questa build. I connettori compaiono nell’interfaccia con l’etichetta NOT CONNECTED, e il contratto degli strumenti esiste ma l’adattatore del fornitore segnala da solo `NOT_CONNECTED`. Esiste però già la parte difficile: otto strumenti visivi tipizzati, numeri di revisione del mondo, rifiuto su revisione obsoleta e ricevute idempotenti — cioè esattamente le protezioni di cui avete bisogno affinché un agente non applichi due volte la stessa azione su uno stato che nel frattempo è cambiato.

Può essere usato per altro oltre a una macchina?

Sì, con il lavoro di configurazione descritto sopra: la scena, l’elenco delle azioni consentite e le regole di linguaggio vengono riscritti per l’oggetto rispettivo. Ciò che viene riutilizzato è l’architettura — il compilatore deterministico, il rail di provenienza, il contratto degli strumenti e la disciplina di revisione dello stato.

Esempio illustrativo

„Portaci nelle Alpi, di notte, sotto la pioggia”

Uno scenario di utilizzo, senza dati del cliente o risultati commerciali attribuiti.

Situazione iniziale

Il visitatore pronuncia o scrive la frase nella barra dei comandi.

Come funziona

Il testo viene passato attraverso le regole di corrispondenza in romeno: „alpi” attiva l’ambiente alpino, „notte” cambia l’ora, „pioggia” attiva il livello di pioggia. Ogni regola produce un evento separato con la propria etichetta di provenienza, e la scena Three.js riadatta camera, nebbia e colore di sfondo di conseguenza.

Rezultatul

La scena cambia immediatamente, e nel rail laterale compaiono tre voci: „Ambiente composto — Strato creativo / simulato — Tracciato alpino”, „Tempo simulato — Strato creativo / simulato — Illuminazione notturna” e „Meteo simulato — Strato creativo / simulato — Strato di pioggia attivo”. L’agente risponde di aver applicato 3 modifiche e di aver mantenuto la fonte di ciascuna. Nessuna voce pretende di essere un dato reale.

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

Possibilità di collaborazione

World Agent, nel contesto della vostra organizzazione.

Flussi interni e informazioni

Il collegamento delle fonti autorizzate, l’organizzazione delle informazioni e la revisione delle azioni da parte del team, con accesso separato per ruoli.

Imprese private

Definiamo un pilot attorno a un processo reale: utenti, dati, integrazioni, costi e criteri di accettazione. L’estensione segue dopo la valutazione del risultato.

Istituzioni e società statali

Stabiliamo i requisiti di accessibilità, hosting, protezione dei dati e interoperabilità. Ogni connessione con servizi AGE o STISC richiede la validazione dell’ammissibilità, dell’accesso e delle approvazioni.

Questi sono scenari di adattamento, non dichiarazioni su contratti o partenariati esistenti. Le funzioni proposte si confermano nell’ambito di lavoro del progetto.

Discută un pilot

Parte di un ecosistema.

Cosa vorresti che funzionasse meglio?

Raccontaci il tuo processo. Insieme stabiliamo cosa vale la pena costruire, cosa possiamo collegare e come verifichiamo il risultato.

Parliamone