Sari la conținut
megapromotingHai să discutăm
Produse World Agent

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

O conversație care poate schimba ce vezi.

World Agent este un demonstrator pentru interacțiunea în limbaj natural cu o scenă vizuală. Explorăm legătura dintre conversație, starea unui obiect și acțiuni vizibile într-un mediu 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 · o comandă în limbaj natural și contextul pe care sistemul îl consideră potrivit

World Agent

De la informație la lucru făcut.

01

Spui ce vrei

O cerere în limbaj natural descrie schimbarea dorită.

02

Sistemul interpretează

Cererea este legată de acțiunile disponibile în demonstrator.

03

Scena răspunde

Mediul vizual se actualizează, iar pașii pot fi urmăriți.

Unde devine util.

Demonstrații de produs

Explorarea unui obiect și a opțiunilor sale prin conversație.

Interfețe 3D

Legătura dintre comenzile utilizatorului și o scenă navigabilă.

Cercetare

Evaluarea unui runtime vizual înaintea integrărilor comerciale.

Scena și catalogul demonstratorului sunt conceptuale. Nu prezentăm o integrare CRM sau un model generativ de lume ca fiind conectat în această versiune.

World Agent în detaliu

Ce poți face cu acest proiect.

World Agent răspunde la o întrebare de interfață: ce se schimbă dacă, în loc să apeși pe butoane, spui ce vrei și scena se schimbă în fața ta? Vorbești, iar mașina din scenă își schimbă culoarea, jantele, mediul, vremea, ora, unghiul camerei, ușile și portbagajul.

Partea interesantă nu e că înțelege comanda, ci că fiecare schimbare lasă o urmă care spune de unde a venit: din catalog, din comanda utilizatorului, din stratul creativ sau din sistem. Un strat de ceață pe un traseu alpin e etichetat „simulare vizuală”; o culoare din paleta de patru e etichetată „catalog”. Utilizatorul nu trebuie să ghicească ce e adevărat și ce e decor.

Există trei directoare cu nume asemănător pe disc; două dintre ele — `world-agent-v2` și `world-agent-provenance-atlas` — nu sunt proiecte separate, ci copii de lucru git ale aceluiași depozit. Varianta reală e `world-agent` pe ramura `main`, care poartă azi reformularea V2 „World Generator” și e identică bit cu bit cu ramura `v2/world-generator`.

01

Compilator de comenzi în română, local, determinist

Aproximativ 22 de reguli de potrivire pe text românesc traduc o frază într-o schimbare tipizată de stare. „Fă mașina albă și pune jante sport” atinge două reguli și produce două evenimente distincte. Nu e model de limbaj: e cod care rulează în browser, dă același rezultat de fiecare dată și se poate citi linie cu linie.

02

Voce cu revenire la text

Recunoașterea vocală folosește `webkitSpeechRecognition` din browser, cu limba fixată pe `ro-RO`. Unde interfața nu există — sau utilizatorul preferă tastatura — bara de comandă rămâne funcțională, cu aceleași reguli. Nu trimitem audio nicăieri.

03

Scenă 3D deterministă

Un vehicul construit procedural din primitive Three.js (caroserie, cabină din capsulă de sticlă, patru roți cu jante, faruri, uși, portbagaj), pe un platou cu inel, grilă și trei lumini. Randare cu tone mapping ACES Filmic, raport de pixeli plafonat la 1,75 și oprire completă a animației când sistemul cere mișcare redusă.

04

Rail de proveniență

Fiecare mutație de stare produce un eveniment cu una din patru etichete: Catalog, User command, Creative layer sau System. Eticheta „Creative layer” se afișează literal ca „Strat creativ / simulat”. Fișa de ofertă apare cu detaliul „Date fictive marcate — nu este ofertă comercială”.

05

Contract de runtime pentru voce și unelte vizuale

Există un runtime normalizat cu opt unelte vizuale (`visual.inspect`, `visual.highlight`, `visual.move`, `visual.create`, `visual.delete`, `world.query`, `ui.navigate`, `ui.open_panel`) și un jurnal de evenimente cu numere de revizie a lumii. Un apel cu revizie învechită e respins cu `STALE_REVISION`; un apel repetat cu același `actionId` întoarce chitanța originală marcată ca reluare. Adaptorul de voce raportează el însuși `NOT_CONNECTED` — contractul e implementat, furnizorul nu e conectat.

06

Registru onest de motoare de lume

Șase benzi, fiecare cu statutul ei declarat: API documentat de integrat, componente rulabile deschise, cercetare deschisă de evaluat, furnizor de contactat, previzualizare de cercetare fără API public, și o bandă marcată blocat pentru UE unde licențele examinate nu autorizează lansarea. Genie 3 stă explicit în categoria previzualizare de cercetare — nu integrare.

Date și funcționare

Ce intră în sistem. Ce trebuie verificat.

Ce e motor de scenă și ce ar fi model generativ
Aici e granița care se confundă cel mai des. World Agent e motor de scenă: obiectele există dinainte, acțiunile permise sunt enumerate, iar comanda alege dintre ele. Un model generativ de lume ar produce geometrie și dinamică nevăzute înainte, la cerere. Al doilea lucru nu e conectat, iar interfața o spune: nu există model de fundație care generează lumi în acest build.
Vocabularul e finit, și asta e o proprietate, nu o lipsă
O cerere în afara vocabularului nu declanșează o presupunere: sistemul răspunde că poate controla culoarea, jantele, mediul, vremea, camera, ușile, portbagajul și fișa demonstrativă, și înregistrează un eveniment „Cerere neexecutată — nu am găsit o acțiune sigură în vocabularul demo”. Într-o demonstrație pentru un client, marginea vocabularului trebuie să fie vizibilă, nu mascată.
Ce e conceptual în scenă
Vehiculul și catalogul sunt conceptuale — patru culori cu nume inventate, două seturi de jante, două interioare. Nu există model 3D de la un producător auto și nici drepturi pentru unul. Prețurile sunt indisponibile deliberat: fișa de ofertă poartă etichetă de date fictive.
Ce nu e conectat
Fără CRM, fără catalog de producător, fără preț live, fără acțiuni externe autonome. Conectorii personali (poștă, mesagerie) apar în interfață cu eticheta NOT CONNECTED. Deploy-ul servește un build static: nu are stat de server, deci nici date de utilizator.
Starea persistă doar în sesiune
Configurația „salvată” rămâne în memoria paginii, cu proveniența System și detaliul „Stare salvată local în demo”. O reîncărcare o pierde. Nu e o bază de date.

De la explorare la implementare

Cum pregătim un proiect cu World Agent.

01

1. Alegem obiectul și ce trebuie să poată explora vizitatorul

Un produs fizic configurabil, un spațiu, un utilaj. Întrebarea de pornire e ce decizie ia vizitatorul după ce vede scena.

02

2. Enumerăm acțiunile permise, apoi scriem regulile

Se pornește de la lista de acțiuni sigure, nu de la lista de fraze. Fiecare acțiune primește regulile de limbaj care o declanșează, în limba publicului, și eticheta de proveniență corectă.

03

3. Testăm marginea, nu centrul

Cererile valide sunt partea ușoară. Se testează cererile ambigue, cele în afara scenariului și cele care combină mai multe acțiuni, ca răspunsul „nu pot face asta, dar pot face astea” să fie util.

04

4. Publicăm ca build static

Rezultatul e un pachet static servit de nginx pe un server propriu, cu certificat Let's Encrypt și posibilitate de revenire la versiunea precedentă prin schimbarea unei legături simbolice. Nu are nevoie de proces de server.

Întrebări care merită clarificate.

Care dintre cele trei directoare cu World Agent e cel real?

Unul singur: `world-agent`, pe ramura `main`. `world-agent-v2` și `world-agent-provenance-atlas` sunt copii de lucru git (`git worktree`) ale aceluiași depozit, folosite ca să existe simultan mai multe variante de design. `main` și `v2/world-generator` sunt azi la același commit, deci „varianta V2” nu e un alt proiect, e ce rulează.

E un model generativ de lume, ca Genie sau Sora?

Nu. E un motor de scenă: obiectele și acțiunile există dinainte, iar comanda alege dintre ele. Genie 3 apare în registrul nostru de motoare exact cu statutul lui real — previzualizare de cercetare, fără API public de lansat, fără greutăți publicate. Ce facem noi în schimb e mai puțin spectaculos și mai ușor de garantat: aceeași comandă dă același rezultat, iar fiecare schimbare are o etichetă de proveniență.

Cum înțelege comanda — folosiți un model de limbaj?

Nu, și e o alegere. Compilatorul e un set de aproximativ 22 de reguli de potrivire pe text românesc, rulate în browser, care produc schimbări tipizate de stare. Avantajul: e determinist, nu costă nimic pe cerere, nu trimite textul nicăieri și se poate audita linie cu linie. Dezavantajul: vocabularul e finit, și când o cerere iese din el sistemul o spune în loc să improvizeze.

Cu ce funcționează vocea?

Cu recunoașterea vocală din browser — `webkitSpeechRecognition`, cu limba fixată pe `ro-RO`. Asta înseamnă practic browserele pe motor Chromium. În rest, bara de text face exact același lucru, cu aceleași reguli: vocea e o comoditate, nu o dependență.

Prețurile din fișa de ofertă sunt reale?

Nu, și sunt marcate ca atare în chiar evenimentul care le afișează: „Date fictive marcate — nu este ofertă comercială”. Nu există integrare cu un catalog de producător sau cu un sistem de preț. Într-o implementare pentru un client, sursa de preț ar fi sistemul lui, iar eticheta de proveniență s-ar schimba din „Catalog demo” în sursa reală.

Se leagă la CRM-ul nostru?

Nu în acest build. Conectorii apar în interfață cu eticheta NOT CONNECTED, iar contractul de unelte există dar adaptorul de furnizor raportează singur `NOT_CONNECTED`. Există însă partea grea deja scrisă: opt unelte vizuale tipizate, numere de revizie a lumii, respingere pe revizie învechită și chitanțe idempotente — adică exact protecțiile de care ai nevoie ca un agent să nu aplice de două ori aceeași acțiune peste o stare care s-a schimbat între timp.

Poate fi folosit pentru altceva decât o mașină?

Da, cu munca de configurare descrisă mai sus: scena, lista de acțiuni permise și regulile de limbaj se rescriu pentru obiectul respectiv. Ce se refolosește e arhitectura — compilatorul determinist, railul de proveniență, contractul de unelte și disciplina de revizie a stării.

Exemplu ilustrativ

„Du-ne în Alpi, noaptea, pe ploaie”

Un scenariu de utilizare, fără date de client sau rezultate comerciale atribuite.

Situația inițială

Vizitatorul rostește sau scrie fraza în bara de comandă.

Cum lucrează

Textul e trecut prin regulile de potrivire în română: „alpi” activează mediul alpin, „noapte” schimbă ora, „ploa” activează stratul de ploaie. Fiecare regulă produce un eveniment separat cu eticheta lui de proveniență, iar scena Three.js reașază camera, ceața și culoarea de fundal în consecință.

Rezultatul

Scena se schimbă imediat, iar în railul lateral apar trei intrări: „Mediu compus — Strat creativ / simulat — Traseu alpin”, „Timp simulat — Strat creativ / simulat — Iluminare de noapte” și „Vreme simulată — Strat creativ / simulat — Strat de ploaie activ”. Agentul răspunde că a aplicat 3 schimbări și a păstrat sursa fiecăreia. Nicio intrare nu pretinde că e dată reală.

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

Posibilități de colaborare

World Agent, în contextul organizației tale.

Fluxuri interne și informație

Conectarea surselor autorizate, organizarea informației și revizuirea acțiunilor de către echipă, cu acces separat pe roluri.

Companii private

Definim un pilot în jurul unui proces real: utilizatori, date, integrări, costuri și criterii de acceptare. Extinderea urmează după evaluarea rezultatului.

Instituții și companii de stat

Stabilim cerințele de accesibilitate, găzduire, protecție a datelor și interoperabilitate. Orice conexiune cu servicii AGE sau STISC necesită validarea eligibilității, accesului și aprobărilor.

Acestea sunt scenarii de adaptare, nu declarații despre contracte sau parteneriate existente. Funcțiile propuse se confirmă în domeniul de lucru al proiectului.

Discută un pilot

Parte dintr-un ecosistem.

Ce ai vrea să funcționeze mai bine?

Povestește-ne despre procesul tău. Împreună stabilim ce merită construit, ce putem conecta și cum verificăm rezultatul.

Hai să discutăm