Dizainas yra kodas

The Design is the Code

 

Kaip ląstelinių automatų logika performuos agentines dizaino sistemas ir kodėl žiniatinklio kūrimo ateitis gali būti jau užrašyta paprastomis taisyklėmis

Dizaino sistemų, dirbtinio intelekto ir skaičiavimo teorijos sankirtoje vyksta esminė transformacija. Tai tokia gili kaita, kad ji meta iššūkį pačiam mūsų supratimui, ką autonominių agentų amžiuje apskritai reiškia „dizainas“.

 

 

 

Dešimtmečius dizainą ir kodą laikėme atskiromis sritimis: dizainas – žmogaus kūrybos ir estetinio sprendimo karalystė, kodas – mechaninis tų idėjų vertimas į vykdomą pavidalą. Tačiau dirbtinio intelekto agentams vis dažniau savarankiškai surenkant vartotojo sąsajas, naudojantis dizaino sistemomis kaip mašinai suprantama infrastruktūra ir generuojant kodą iš semantinių žetonų, artėjame prie susiliejimo taško, primenančio daug senesnę skaičiavimo teorijos idėją.

 

Kokią idėją? Dizainas yra kodas.

 

Tai ne šiaip skambi frazė. Tai pripažinimas, kad galime judėti link pasaulio, kuriame dizaino sistemos veikia kaip ląsteliniai automatai: paprastos taisyklės sukuria sudėtingą, emergentinį elgesį. Kur riba tarp „projektuoti“ ir „programuoti“ visiškai išnyksta. Kur autonominiai agentai dizaino sistemomis ne tik naudojasi, bet jomis yra – tai dizaino sistemos veikiančios.

Susiliejimo akimirka

2025 m. gruodžio 11 d. Bradas Frostas (Atominio dizaino kūrėjas) kartu su Dominicu Nguyenu („Chromatic“ bendraįkūrėju) vedė tiesioginę sesiją „Agentinės dizaino sistemos 2026 metais“. Jų žinutė buvo aiški: dirbtinio intelekto agentai jau dabar renka sąsajas iš tų pačių komponentų, kuriuos naudoja žmonių komandos. Dizaino sistemos privalo tapti mašinai suprantama infrastruktūra, kitaip rizikuoja virsti praeities epochos artefaktais.

 

 

Kaip paskelbė „Storybook“ komanda: „DI pradeda naudoti dizaino sistemas lygiai taip, kaip jos aprašytos dokumentacijoje. Pavyzdžių, būsenų & apribojimų spragos tiesiogiai lemia nenuspėjamą sąsajos rezultatą.“

Šiame tinklaraščio įraše nagrinėjame gilius ryšius tarp ląstelinių automatų, emergentinio elgesio ir agentinių dizaino sistemų ateities. Atsekame teorinius pamatus nuo fon Neumanno save atkuriančių mašinų iki šiandienos dirbtinio intelekto agentų spiečių.

 

Pažiūrėsime, kaip „Drupal“ ir šiuolaikinės turinio valdymo sistemos integruoja dirbtinį intelektą per tokius modulius kaip „Schema.org Blueprints“ ir „Drupal AI“. Ir pamąstysime, ką visa tai reiškia dizaineriams, programuotojams ir skaitmeninių produktų kūrimo ateičiai.


Ląstelių automatai ir emergencijos logika

Paprastų taisyklių grožis

1970 m. matematikas Johnas Conway pristatė „Gyvenimo žaidimą“ – „žaidimą be žaidėjų“, kuris tapo viena labiausiai tyrinėtų skaičiavimo teorijos sistemų. Taisyklės kvapą gniaužiančiai paprastos:

  1. Bet kuri gyva ląstelė, turinti mažiau nei du gyvus kaimynus, žūva (nepakankamas apgyvendinimas)
  2. Bet kuri gyva ląstelė, turinti du ar tris gyvus kaimynus, išgyvena
  3. Bet kuri gyva ląstelė, turinti daugiau nei tris gyvus kaimynus, žūva (perteklinis apgyvendinimas)
  4. Bet kuri negyva ląstelė, turinti lygiai tris gyvus kaimynus, atgyja (dauginimasis)

Iš šių keturių taisyklių, išreikštų saujele dvejetainių sąlygų, išauga stulbinamai sudėtingas visata. Sklandytuvai (angl. gliders) keliauja begaliniais tinkleliais. Osciliatoriai pulsuoja nesibaigiančiu ritmu. Patrankos paleidžia srautus raštų per ląstelių erdvę. O žymiausia, kad įrodyta, jog Gyvenimo žaidimas yra Tiuringo pilnas: viskas, ką galima apskaičiuoti algoritmiškai, iš principo gali būti apskaičiuota ir Conway paprastame tinklelyje.

 

 

Pav. 1: Goperio sklandytuvų patranka Conway „Gyvenimo žaidime“. Šis darinys nenutrūkstamai kuria sklandytuvų srautą ir rodo, kaip paprastos taisyklės gali sukurti begalinį, save palaikantį sudėtingumą.

 

 

Tai pirmoji ląstelinių automatų pamoka: sudėtingam elgesiui sudėtingumo nereikia. Paprastos taisyklės, nuosekliai taikomos visai terpei, gali sukelti raštus ir elgesį, kurio niekas aiškiai neprogramavo.

Būtinas vaizdo įrašas: įvadas į ląstelinius automatus

Įvadas į ląstelinius automatus, įskaitant Conway „Gyvenimo žaidimą“ ir save atkuriančias Langtono kilpas

Šiame vaizdo įraše rodoma keletas animacijų, tarp jų ir galiausiai įvykstantis savaiminis sunaikinimas, kuris ištiktų, jei Langtono kilpoms būtų leista daugintis didelėje toroidinėje plokštumoje (kur priešingi tinklelio kraštai sujungti).

 

 

 

 

Papildomi vaizdo įrašo šaltiniai:


Langtono kilpos ir save atkūrimas

1984 m. Christopheris Langtonas šį principą išplėtojo dar toliau – sukūrė save atkuriančias kilpas, ląstelinį automatą, kuris parodė tikrus dirbtinės gyvybės principus. Conway „Gyvenimo žaidimas“ rodo atsirandantį sudėtingumą, o Langtono kilpos rodo atsirandantį dauginimąsi.

Kiekvieną kilpą sudaro ciklinė riba, apimanti ląstelių būsenomis užkoduotą „genomą“. Šis genomas nenutrūkstamai teka aplink kilpą ir išilgai statymo atšakos, kuri per 151 laiko žingsnį sukuria dukterinę kilpą. Kai ji baigta, dukterinė kilpa atsiskiria nuo motininės ir abi toliau daugina save.

 

Grid art of a red path with blue, yellow, and cyan tiles, on a dark background.

Pav. 2: Langtono kilpa pradinėje konfigūracijoje. Genetinė informacija cirkuliuoja kilpoje, o besitęsianti atšaka nukreipia dukterinių kilpų kūrimą.

 

„Jei save dauginanti mašina galima ląsteliniame automate, tai gyvybę gali sukurti ir mašinos.“

– Christopheris Langtonas, „Dirbtinės gyvybės tyrimas ląstelinių automatų pagalba“ (1986)

Pasekmės didžiulės. Langtono kilpos rodo, kad save atkūrimui nereikia nei biologinių ląstelių sudėtingumo, nei visuotinių konstravimo gebėjimų, kuriuos turėjo pirminis fon Neumanno sumanymas. Pakanka tik:

  • paprastų vietinių taisyklių rinkinio
  • instrukcijų kodavimo mechanizmo
  • proceso, kuriuo tos instrukcijos vykdomos

Taisyklės yra organizmas. Dizainas yra kodas.

1999 m. Hiroki Sayama pristatė evoloops – variantus, kuriuose yra struktūrinis tirpumas ir fenotipinė sąveika, leidžianti atsirasti spontaniškoms mutacijoms ir evoliucinei dinamikai. Šios kilpos evoliucionuoja tiesioginių susidūrimų per dauginimąsi metu, todėl atsiranda genotipo variacijų, didesnė morfologinė įvairovė ir sudėtingumo augimas kartose. Skirtingai nei Langtono nekintamas atkūrimas, evoloops rodo paveldimas mutacijas be išorinio įsikišimo.

 

 

Taisyklė 110 ir universalus skaičiavimas

Stephenui Wolframui tyrinėjant elementarius ląstelinius automatus, pasiekta stulbinanti atradimas: Taisyklė 110 – viena iš vos 256 galimų paprasčiausio vienmačio ląstelinio automato taisyklių – gali atlikti universalų skaičiavimą.

Taisyklę 110 galima visiškai apibrėžti nurodžius rezultatą kiekvienam iš aštuonių galimų ląstelės ir dviejų jos kaimynių derinių. Vis dėlto ši paprastutė taisyklė – aštuoni dvejetainiai sprendimai – gali imituoti universaliąją Tiuringo mašiną.

 

Rull 110 cellular automaton - Triangle pattern with black and white abstract geometric design.

3 paveikslas. Taisyklės 110 ląstelinis automatas. Nepaisant paprasto apibrėžimo, Taisyklė 110 pasižymi 4 klasės elgsena – sudėtingais raštais, kurie nėra nei visiškai stabilūs, nei visiškai chaotiški – ir įrodyta, kad ji yra Tiuringo pilna.

 

„Universaliam skaičiavimui visai nereikia viso kompiuterio centrinio procesoriaus. Pakanka šios mažos taisyklės.“

– Stephenas Wolframas, „A New Kind of Science“

2004 metais Matthew Cookas paskelbė įrodymą, kad Taisyklė 110 su tam tikru pasikartojančiu fono raštu yra Tiuringo pilna. Įrodymas parodo, kad Taisyklė 110 gali emuliuoti ciklines žymų sistemas, o jos savo ruožtu gali emuliuoti bet kurią Tiuringo mašiną. Iš 88 galimų unikalių elementariųjų ląstelinių automatų Taisyklė 110 yra vienintelė, kurios Tiuringo pilnumas įrodytas tiesiogiai.

Wolframo pasiūlytas skaičiuojamosios ekvivalentiškumo principas byloja dar radikalesnį dalyką: sistemos, pranokstančios minimalią sudėtingumo ribą, savo skaičiavimo gebėjimais iš esmės yra lygiavertės. Žmogaus smegenys, orų sistema ir Taisyklė 110 giliąja prasme yra skaičiuojamąja prasme ekvivalentiškos.

Keturios Wolframo ląstelinių automatų klasės

  • 1 klasė: evoliucija veda į homogenišką būseną
  • 2 klasė: evoliucija veda į atskiras periodines struktūras
  • 3 klasė: evoliucija veda į chaotiškus, atsitiktinius raštus
  • 4 klasė: evoliucija veda į sudėtingus raštus su lokalizuotomis struktūromis, gebančiais universaliai skaičiuoti

Taisyklė 110 pasižymi 4 klasės elgsena, kurią Wolframas apibūdina kaip esančią „chaoso paribyje“ – kritinėje riboje, kur paprastos taisyklės sukuria didžiausią skaičiavimo galią.

0E0P metaląstelė: tikras savęs dauginimas

2018 m. spalį Adamas P. Goucheris baigė sukonstruoti 0E0P metaląstelę – Conway Gyvenimo žaidimo (Game of Life) raštą, gebantį tikrai pats save daugintis. Skirtingai nei ankstesnės metaląstelės, kurioms šalia reikėjo jau esamų kopijų, 0E0P metaląstelė gali sukurti savo kopijas nuo nulio, įskaitant ir savo instrukcijų juostą.

Šis pasiekimas yra svarbus dirbtinės gyvybės etapas: sistema, galinti plisti skaičiavimo substrate naudodama tik lokalias taisykles. 2013 m. lapkričio 23 d. Dave'as Greene'as sukūrė pirmąjį Gyvenimo žaidimo replikatorių, kuris sukuria visą savo kopiją, įskaitant instrukcijų juostą, – tai įrodo, kad net paprastas Conway dviejų būsenų automatas gali palaikyti neribotą savęs atkūrimą.

 

Daugiau: ląstelinių automatų vaizdo įrašai

 

Ieškokite daugiau žavaus ląstelinių automatų turinio:

▶️ „YouTube“ paieška: „cellular automata the design is the code“


Dizaino sistemos kaip skaičiuojamieji substratai

Nuo atominio dizaino iki agentinio dizaino

Brado Frosto Atominio dizaino (Atomic Design) metodika, pristatyta 2013 metais, iš esmės pakeitė mūsų požiūrį į dizaino sistemas. Skaidydamas sąsajas į atomus (pagrindinius elementus, pvz., mygtukus ir įvesties laukus), molekules (paprastus junginius), organizmus (sudėtingas vartotojo sąsajos dalis), šablonus (puslapių maketus) ir puslapius (galutines realizacijas), Atominis dizainas pasiūlė hierarchinę struktūrą sudėtingumui valdyti.

Tačiau žvelgiant atgal stebina štai kas: Atominis dizainas jau įkūnijo ląstelinių automatų principus, nors jų aiškiai ir nesuvokė.

Ląstelinių automatų principasAtominio dizaino atitikmuo
Lokalios taisyklėsKiekvienas komponentų lygis turi taisykles, kaip jį galima derinti su kitais
EmergencijaSudėtingi puslapiai atsiranda iš paprastesnių elementų derinių
AtkartojamumasTie patys atomai, sujungti pagal tas pačias taisykles, duoda nuoseklius rezultatus
Mastelio keitimasSistema plečiasi be centralizuoto valdymo – kiekvienas komponentas „žino“ savo elgseną
Savaiminė organizacijaDizaino žetonai (design tokens) pakeitimus automatiškai paskleidžia po visą sistemą

„Kai dizaino sistema nuobodi, dizaineriai ir kūrėjai gali užsiimti nauju – spręsti naujus uždavinius. Dizaino sistema prisiima nuobodžios rutinos naštą, kad jos nereikėtų nešti dizaineriams ir kūrėjams.“

– Josh Clark, „The Most Exciting Design Systems Are Boring“

2023 m. vasarį Brad Frost parašė apie „Design Systems in the Time of AI“ („Dizaino sistemos DI laikais“):

„DI yra natūralus dizaino sistemos vartotojas... Iš tiesų daugelis dizaino sistemos komponentų darbų yra mechaniški ir nuspėjami. Komponento šabloną, atitinkantį likusios bibliotekos formą, jau dabar sukuriame tokiomis priemonėmis kaip PlopJS. Mielai sutikčiau, kad DI padėtų man sugeneruoti daugybę įprastų šabloninių dalykų.“

– Brad Frost

Dizaino sistemų mechaniškumas ir nuspėjamumas kaip tik ir daro jas tinkamas veikti ląstelinių automatų principu. Kai taisyklės aiškios, vietinės ir nuosekliai taikomos, agentai gali veikti savarankiškai – kaip ir Conway „Gyvenimo žaidimo“ (Game of Life) ląstelėms nereikia centrinio valdiklio, kad atsirastų sklandytuvai ir osciliatoriai.

Būtinybė, kad viskas būtų suprantama mašinoms

Storybook MCP (Model Context Protocol) iniciatyva yra svarbi evoliucija šia kryptimi. 2025 m. pabaigoje paskelbtas Storybook MCP suteikia DI kodavimo agentams mašininiu būdu skaitomus komponentų metaduomenis iš esamų Storybook sąrankų.

Svarbiausia įžvalga ta, kad agentams nereikia nei neapdoroto kodo, nei vizualinės dokumentacijos. Jiems reikia:

  • Komponentų manifestų: struktūruotų metaduomenų apie kiekvieną komponentą – jo savybes (props), variantus, dizaino žetonų susiejimus ir naudojimo pavyzdžius
  • Semantinių pavadinimų: prasmę išreiškiančių žetonų, pavyzdžiui, action.primary.confirm, kurie agentams perteikia reikšmę, o ne vien vertes
  • Patikros ciklų: galimybės paleisti testus, pamatyti klaidas ir pačiam jas ištaisyti

„Storybook MCP padeda agentams laikytis jūsų šablonų ir išlaikyti jūsų testus. Jis suteikia agentams du dalykus, kurių jie niekada anksčiau neturėjo: mašininiu būdu skaitomus komponentų metaduomenis ir iteracinį ciklą, leidžiantį pačiam save pagydyti nuo klaidų.“

- Storybook komanda

Storybook MCP turi savarankišką taisymo ciklą. Jis leidžia agentams paleisti jūsų komponentų testus (sąveikos ir prieinamumo), pamatyti, kas nepavyko, ir pačiam ištaisyti savo klaidas. Kūrėjui reikia įsikišti tik tada, kai testai praeina. Daugiau nereikia auklėti užklausų.

Būtent tokia ir yra ląstelinio automato architektūra, pritaikyta dizainui: vietinės taisyklės (komponentų specifikacijos), sąveika su kaimynais (kompozicijos šablonai) ir iteraciniai atnaujinimai (patikra ir savaiminis taisymas).

 

Mano komponentų manifestas kaip genomas

Palyginimas su Langtono kilpomis (Langton's Loops) tampa dar taiklesnis, kai pažvelgiame, kaip veikia komponentų manifestai. Langtono sistemoje cirkuliuojančiose ląstelėse užkoduotas „genomas“ turi nurodymus, kaip sukurti naują kilpą. Mašininiu būdu skaitomoje dizaino sistemoje komponento manifestas turi nurodymus, kaip surinkti sąsajas.

Komponento manifestas gali nurodyti:

{
  "name": "Button",
  "variants": ["primary", "secondary", "destructive"],
  "sizes": ["sm", "md", "lg"],
  "props": {
    "label": "string",
    "disabled": "boolean",
    "onClick": "function"
  },
  "tokens": {
    "background": "color.action.primary",
    "borderRadius": "radius.md",
    "padding": "space.3"
  },
  "constraints": [
    "Must have accessible contrast ratio",
    "Label required for non-icon buttons",
    "Minimum touch target 44x44px"
  ],
  "examples": [
    { "variant": "primary", "label": "Submit", "size": "md" },
    { "variant": "destructive", "label": "Delete", "size": "sm" }
  ]
}

Šis manifestas yra kartu dizaino specifikacija ir vykdomasis kodas – tiksliau, instrukcijos, pagal kurias galima sugeneruoti vykdomąjį kodą. Šį manifestą naudojančiam agentui nereikia suprasti estetikos ar naudotojo patirties žmogiškąja prasme. Jam reikia laikytis taisyklių, derinti elementus pagal jų apribojimus ir kurti teisingus rezultatus.

 

Sutinku su Bradu Frostu, kad reikia naudoti yaml formatą.

 

Drupal komponentai naudoja yaml formatą. Maždaug taip:

$schema: https://git.drupalcode.org/project/drupal/-/raw/HEAD/core/assets/schemas/v1/metadata.schema.json
name: Button
status: experimental
description: Use Bootstrap custom button styles for actions in forms, dialogs, and more with support for multiple sizes, states, and more.
props:
  type: object
  properties:
    html_tag:
      type: string
      title: The HTML tag to use for the button (button | a). Defaults to `button`.
      default: button
      enum:
        - button
        - a
    url:
      type: string
      title: URL Link
      description: URL link for the button when the HTML tag is an anchor link.
      $ref: "ui-patterns://url"
    color:
      type: string
      title: Color
      description: Bootstrap includes several predefined button styles, each serving its own semantic purpose, with a few extras thrown in for more control.
      default: ''
      enum:
        - ''
        - primary
        - secondary
        - success
        - danger
        - warning
        - info
        - dark
        - light
        - link
    outline:
      type: boolean
      title: Outline
      description: In need of a button, but not the hefty background colors they bring? Replace the default modifier classes with the .btn-outline-* ones to remove all background images and colors on any button.
      default: false
    size:
      type: string
      title: Size
      description: Bootstrap button size
      default: ''
      enum:
        - ''
        - btn-sm
        - btn-lg
    disabled:
      type: boolean
      title: Disabled
      description: Disabled button
      default: false
    button_utility_classes:
      type: array
      title: Utility Classes
      default: []
      items:
        type: 'string'
      description: An array of utility classes that can be used to add extra Bootstrap utility classes or custom classes to this component.
    attributes:
      type: object
      title: Attributes
      description: HTML attributes for the containing element.
      $ref: 'ui-patterns://attributes'
slots:
  content:
    type: string
    title: Content
    description: The content for the button
    minLength: 1
    examples:
      - Press
      - Submit now
      - Save
      - Login
      - Read more

 

Dizainas yra kodas.

  • Variantai
  • Žetonai (Tokens)
  • Savybės (Props)
  • Apribojimai (galėtume pridėti prie komponentų)

  • Lizdų taisyklės (ką galima dėti į kitus lizdus arba ką leidžiama dėti į mano lizdą)

  • Taisyklės

  • Pavyzdžiai 

  • Animacijos  ( leidžiama naudoti arba rekomenduojama naudoti )

Tada stebėkite ir eksperimentuokite su elgsena.

kaip čia: https://storybook.demo.varbase.vardot.com/?path=/story/atoms-button--primary 

 

Dizaino žetonai kaip aplinkos kintamieji

Dizaino žetonai – dar viena svarbi dėlionės dalis. Ląstelinio automato ląstelės reaguoja į artimiausią aplinką – kaimyninių ląstelių būsenas. Dizaino sistemose komponentai reaguoja į dizaino žetonus – kontekstines reikšmes, nulemiančias jų išvaizdą ir elgseną.

Šiuolaikinės žetonų architektūros naudoja kelis sluoksnius:

  • Pagrindiniai žetonai: neapdorotos reikšmės, pavyzdžiui, color.blue.500: #3B82F6
  • Semantiniai žetonai: paskirtimi grįstos nuorodos, pavyzdžiui, color.action.primary: color.blue.500
  • Komponentų žetonai: konkrečiam komponentui skirti pritaikymai, pavyzdžiui, button.background.primary: color.action.primary

Kai agentas generuoja mygtuko (Button) komponentą, jam nereikia žinoti, kad „primary“ reiškia mėlyną spalvą. Pakanka nurodyti button.background.primary ir pasitikėti, kad žetonų sistema pati parinks tinkamą reikšmę. Informaciją saugo aplinka (žetonų sluoksnis); komponentui (ląstelei) tereikia į ją sureaguoti.

Tokie įrankiai kaip Tokens Studio išsivystė iki to, kad dizaino žetonus traktuoja kaip skaičiavimo grafus su sprendikliais (resolvers) – mazgais, kurie semantiškai nusprendžia, kuriuos bazinius žetonus naudoti pagal kontekstą. Taip dizaino žetonai iš statinių reikšmių virsta dinamiškomis, taisyklėmis grįstomis sistemomis.


Drupal ekosistema ir dirbtinio intelekto integracija

Dirbtinio intelekto integravimas į turinio valdymo sistemas (CMS) – puiki laboratorija principui „dizainas yra kodas“ tyrinėti. Tokios CMS kaip Drupal jau įkūnija pagrindines sąvokas: struktūrizuotus turinio tipus, laukų apibrėžimus, ryšius ir kūrimo taisykles.

Niekada nemaniau, kad galėsime pasakyti ką nors panašaus. Man tai buvo meno viršūnė.

 Geriausias kompiuterių rinkinys, kokį tik galėtume turėti. Kai kurie programuotojai tarsi atkeliavo iš būsimo „Žvaigždžių kelio“ ir kalbasi su kompiuteriu, kad jis programuotų už juos.

 

 

Agento patirtis (AX) ir naujasis naudotojas

Dizainas mašinoms

2025 m. pradžioje „Netlify“ vadovas Mathias Biilmann pristatė sąvoką „agento patirtis“ (Agent Experience, AX) – naują discipliną, nagrinėjančią, kaip dirbtinio intelekto agentai sąveikauja su produktais ir platformomis.

Tai esminis poslinkis. Dešimtmečius UX (naudotojo patirtis) buvo optimizuojama žmogaus suvokimui, pojūčiams ir elgesiui. DX (kūrėjo patirtis) buvo optimizuojama žmonėms programuotojams, kuriantiems programinę įrangą. AX pripažįsta, kad agentai tampa pagrindiniais skaitmeninių sistemų naudotojais, o jų poreikiai visiškai kitokie:

  • Jiems nerūpi vizualinė estetika – tik struktūrizuoti, lengvai nuskaitomi duomenys
  • Jie nenaršo sąsajų – jie kviečia API ir naudoja manifestus
  • Jie neskaito dokumentacijos kaip žmonės – jiems reikia mašininiu būdu skaitomo konteksto
  • Jie nevertina subjektyviai – jie laikosi taisyklių ir apribojimų

„Dirbtinio intelekto agentams nerūpi mygtuko dydis, tipografijos įskaitomumas, graži jūsų svetainės spalvų paletė ar akį traukiančios programėlės animacijos. Jie juk ne žmonės. Tad kas rūpi DI agentams? Šiandien šiam klausimui dar nėra konkretaus atsakymo, bet artimiausiais metais jis taps vis svarbesnis.“

– AX tyrimai

Atsakymas: aiškios taisyklės, nnuspėjamas elgesys, gerai struktūruoti duomenys ir grįžtamojo ryšio kilpos, leidžiančios agentams patikrinti ir pataisyti savo veiksmus.

Dvigubos sąsajos iššūkis

Kurti AX reiškia kartu projektuoti dvi sąsajas:

  1. Žmogaus ir agento sąsaja: Čia žmonės prižiūri, tvirtina, redaguoja ir kreipia agento elgesį – tai „misijos valdymo centro“ sluoksnis. Galvokite apie skydelius ir tvirtinimo eiles, o ne apie formas ir mygtukus.
  2. Agento ir sistemos sąsaja: Čia agentai bendrauja su API, duomenų bazėmis ir įrankiais – tai „veiklos“ sluoksnis. Jis turi būti patikimas, gerai dokumentuotas ir optimizuotas mašinų efektyvumui.

Tai primena ląstelinių automatų architektūrą, kur kartu egzistuoja dvi skirtingos perspektyvos:

  • Vietinė perspektyva: kiekviena ląstelė (agentas) laikosi paprastų taisyklių, pagrįstų tuo, ką daro artimiausi kaimynai.
  • Visuminė perspektyva: atsiranda sudėtingi dėsningumai, kurie matomi tik dideliu mastu.

„Agento patirties dizainas (AX) turėtų užtikrinti puikų agentų naudojimo patogumą – tiek agentams, tiek jų dėka. Todėl puikus AX veda prie puikios vartotojo patirties (UX). Jei DI agentas susiduria su sugedusiu procesu, protokolu ar net nenuosekliais formuluočių skirtumais tarp sistemų, jis negali atlikti užduoties. Agentui tai bloga patirtis, o ji savo ruožtu virsta bloga kliento ar darbuotojo patirtimi.“

– Kat Holmes, vyriausioji patirties vadovė (Chief Experience Officer), Salesforce

Nuo UX prie AX: skaitmeninio dizaino evoliucija

UX (žmonės vartotojai)DX (kūrėjai)AX (DI agentai)
Vizualinės sąsajosAPI ir SDKMašinai skaitomi manifestai
Emocinis įsitraukimasDokumentacijaStruktūruotas kontekstas
Naršymo srautaiKodo pavyzdžiaiĮrankių apibrėžimai
PrieinamumasTipų saugumasApribojimų specifikacijos
Klaidų pranešimaiSteko pėdsakai (stack traces)Grįžtamojo ryšio kilpos savikorekcijai


Stigmergija ir netiesioginė komunikacija

Viena galingiausių spiečiaus intelekto sąvokų – stigmergija – netiesioginis koordinavimas per aplinkoje paliktus pėdsakus. Skruzdėlės tiesiogiai nesikalba apie maisto vietą; jos palieka feromonų takus, kuriais seka kitos. Aplinka tampa komunikacijos terpe.

Agentinėse dizaino sistemose stigmergija pasireiškia taip:

  • Bendros komponentų bibliotekos: agentai „mato“, kokie komponentai egzistuoja ir kaip jie buvo naudojami.
  • Dizaino žetonai (design tokens): semantinės reikšmės, užkoduojančios dizaino sprendimus kaip aplinkos faktus.
  • Šablonų dokumentacija: naudojimo pavyzdžiai, tarnaujantys kaip feromonų takai būsimiems agentams.
  • Testų rinkiniai: tikrinimo taisyklės, ribojančios galimų teisingų rezultatų erdvę.
  • Git istorija: ankstesnių sprendimų įrašas, į kurį agentai gali remtis.

Kai agentas sukuria sąsają naudodamas komponentą, jis palieka pėdsakus – kodo bazėje, dokumentacijoje, nustatytuose šablonuose. Būsimus panašias užduotis atliksiančius agentus šie pėdsakai paveiks, ir taip atsiras kolektyvinio intelekto forma, kokios neturi joks pavienis agentas.

Agentiniai dizaino šablonai

Andrew Ng ir kiti išskyrė keturis pagrindinius agentinių DI sistemų šablonus:

  1. Refleksija: DI įvertina savo paties rezultatą ir jį iteratyviai tobulina.
  2. Įrankių naudojimas: DI bendrauja su išoriniais įrankiais, API ir sistemomis.
  3. Planavimas:Dirbtinis intelektas suskaido sudėtingas užduotis į dalines užduotis ir vykdo jas paeiliui
  4. Daugiaagentė sistema: Keli specializuoti agentai bendradarbiauja spręsdami sudėtingas užduotis

Šie modeliai tiesiogiai atitinka ląstelinių automatų sąvokas:

Agentinis modelisLąstelinių automatų atitikmuo
RefleksijaLąstelės atnaujinamos pagal dabartinės būsenos įvertinimą
Įrankių naudojimasLąstelės sąveikauja su aplinkos kintamaisiais
PlanavimasKelių kartų evoliucija link stabilių konfigūracijų
Daugiaagentė sistemaSkirtingi ląstelių tipai su specializuotomis taisyklėmis (daugialąsteliai automatai)

Dizainas yra kodas: gilesnis skaitymas

Ką iš tikrųjų reiškia „dizainas yra kodas“

Sakydami „dizainas yra kodas“, vienu metu teigiame kelis dalykus:

1. Semantinis ekvivalentiškumas

Tinkamai užkoduoti dizaino sprendimai tampa vykdomi. Dizaino žetonas (design token) yra ne šiaip reikšmė, o instrukcija. Komponento specifikacija yra ne šiaip dokumentacija, o programa. Kai agentai naudoja šiuos artefaktus, jie dizainą ne tik įgyvendina, bet ir vykdo.

2. Generatyvinė galia

Kaip Rule 110 gali apskaičiuoti viską, kas apskaičiuojama, taip ir pakankamai išbaigta dizaino sistema gali sukurti bet kokią galiojančią sąsają. Sistemoje slypi visų jos galimų raiškų potencialas. Kas išauga, priklauso tik nuo pradinių sąlygų (reikalavimų) ir taisyklių (apribojimų).

3. Emergentinis sudėtingumas

Pačios sudėtingiausios sąsajos nekuriamos iš viršaus į apačią; jos išauga nuosekliai taikant paprastas taisykles. Gerai suprojektuotas mygtukas, naudojamas nuosekliai, sukuria darnią vizualinę kalbą, nors niekas to darnumo aiškiai neplanavo.

4. Skaičiavimo neredukuojamumas

Kai kurių dizaino rezultatų neįmanoma nuspėti iš anksto, nepaleidus sistemos. Negali žinoti, kaip atrodys agento surinkta sąsaja, kol neleidi agentui jos surinkti. Tai Wolframo skaičiavimo neredukuojamumo principas, pritaikytas dizainui.

5. Savęs modifikavimas

Kaip evoloopai, mutuojantys dauginimosi metu, ir agentams paruoštos dizaino sistemos gali evoliucionuoti jas naudojant. Agentų sukurti komponentai tampa biblioteka, kuria vėliau naudosis kiti agentai. Sistema mokosi, prisitaiko ir auga.

Išplėsta ląstelinių automatų metafora

Ląsteliniai automataiAgentinės dizaino sistemos
Ląstelių tinklelisSąsajos elementų drobė
Ląstelių būsenosKomponentų egzemplioriai ir jų savybės (props)
KaimynystėIšdėstymo kontekstas ir gretimi komponentai
Atnaujinimo taisyklėsKompozicijos apribojimai ir dizaino žetonai
KartosAtvaizdavimo ciklai ir būsenų atnaujinimai
Emergentiniai raštaiIšbaigtos sąsajos ir naudotojų srautai
SavireplikacijaKomponentų bibliotekos, leidžiančios kurti naujus komponentus
Universalus skaičiavimasDizaino sistemos, galinčios išreikšti bet kokią galiojančią naudotojo sąsają
Sklandytuvai (judantys raštai)Pakartotinai naudojami raštai, plintantys visuose produktuose
Stabilūs raštai (still lifes)Nusistovėję komponentai, kurie nesikeičia
OsciliatoriaiAnimuoti komponentai, įkėlimo būsenos, perėjimai

Daugiau nei metafora: tikra konvergencija

Tačiau tai ne šiaip metafora. Konvergencija yra tikra ir vyksta dabar:

  • Storybook MCP paverčia komponentų bibliotekas mašininiu būdu skaitomomis instrukcijomis, kurias vykdo agentai
  • Model Context Protocol standartizuoja, kaip agentai pasiekia įrankius ir kontekstą, sukurdamas universalų agentinių operacijų pagrindą
  • Daugiaagentės architektūros paskirsto darbą specializuotiems agentams (architektui, programuotojui, recenzentui), kurie sąveikauja pagal protokolus, tarsi ląstelės su diferencijuotomis funkcijomis
  • Savaime gyjančios kilposleiskite agentams vykdyti testus, aptikti klaidas ir kartoti ciklą – tuos pačius grįžtamojo ryšio mechanizmus, kuriais ląstelinių automatų sistemos išugdo stabilias konfigūracijas
  • Schema.org Blueprints paverčia turinio struktūras mašinai suprantamomis ir semantiškai prasmingomis
  • Drupal AI suteikia infrastruktūrą, kad DI agentai galėtų savarankiškai kurti, keisti ir valdyti turinį

Požiūrio „dizainas yra kodas“ nelaikome filosofine pozicija. Mes jį kuriame kaip techninę infrastruktūrą.


Pasekmės ir kelias į priekį

Dizaineriams

Dizainerio vaidmuo kinta: iš „stačiakampių kūrėjo“ jis tampa „taisyklių apibrėžėju“. Kaip pastebėjo Bradas Frostas:

„Dizaineriams ir kūrėjams, kurie savo darbą suvokia kaip stačiakampių braižymą, yra dėl ko nerimauti. O tie, kurie savo darbą supranta kaip problemų sprendimą – ir tik tarp kitko, spręsdami jas, turi sukurti ar pavaldyti kokį stačiakampį, – turi mažiau ko bijoti.“

– Bradas Frostas

Agentų ateityje dizaineriai:

  • apibrėš semantinius žetonus (tokenus) ir jų tarpusavio ryšius
  • nustatys kompozicijos apribojimus ir šablonus
  • kurs patikros taisykles, kurias agentai privalės tenkinti
  • prižiūrės ir tobulins taisykles, valdančias spontanišką atsiradimą (emergenciją)
  • suprojektuos grįžtamojo ryšio mechanizmus, leidžiančius save taisyti
  • formuos „tinkamumo funkcijas“, nulemiančias, kokie rezultatai priimtini

 

Man in blue shirt examines colorful flowchart.

 

 

Tai dizainas aukštesniu abstrakcijos lygiu: projektuojamos ne pačios dizaino išraiškos, o taisyklės, iš kurių jos gimsta. Tarsi apibrėžtum ląstelinio automato taisykles, užuot piešęs kiekvieną ląstelę atskirai.

 

Programuotojams

Programuotojai tampa agentų sistemų architektais. Kaip teigia Anthropic:

„Programinės įrangos kūrimo sritis atskleidė puikų DLM funkcijų potencialą – nuo kodo užbaigimo iki savarankiško problemų sprendimo.“

Programuotojams reikės:

  • kurti mašinai suprantamas sąsajas tarp agentų ir sistemų
  • projektuoti grįžtamojo ryšio kilpas ir patikros mechanizmus
  • statyti karkasą, kurio ribose atsiranda spontaniškas elgesys
  • išlaikyti žmogaus priežiūrą kaip galutinį sprendėją
  • apibrėžti protokolus, kuriais agentai bendrauja tarpusavyje
  • įgyvendinti „klijų kodą“, jungiantį skirtingas agentų sistemas
Man with laptop amidst web development icons and chatbot graphic.

 

Žiniatinklio kūrimui ir TVS platformoms

DI integravimas į tokias platformas kaip Drupal rodo ateitį, kurioje:

  • Turinio modeliai tampa tinkami agentams per tokius standartus kaip Schema.org
  • Redakciniai darbo procesai gauna agentų pagalbą – DI padeda rengti juodraščius, moderuoti ir optimizuoti
  • Paieška keičiasi – nuo raktažodžių atitikimo pereinama prie semantinio supratimo, paremto įterpiniais (embeddings) ir vektorinėmis duomenų bazėmis
  • Personalizavimas tampa savarankiškas – agentai mokosi vartotojų pageidavimų ir realiu laiku pritaiko turinį
  • Kūrimas įsibėgėja nes agentai generuoja komponentus, testus ir dokumentaciją

Tai, kaip Drupal ekosistema priima DI – per tokius modulius kaip Drupal AI, Drupal Canvas, Schema.org Blueprints ir DI tiekėjų integracija – rodo, kad ši ateitis jau kuriama.

 

 

 

Organizacijoms

Konkurencinį pranašumą turės organizacijos, kurių dizaino sistemos labiausiai „paruoštos agentams“. Tokioms sistemoms būdinga:

  • visapusiškas komponentų būsenų ir variantų aprėpimas
  • semantiniai pavadinimai, perteikiantys paskirtį
  • mašinai suprantama dokumentacija ir kontekstas
  • patikros ir testavimo infrastruktūra
  • aiškūs apribojimai, nubrėžiantys leistinų rezultatų ribas
  • agentų vartojimui sukurtos API (AX-first)
  • Schema.org-first turinio architektūros

 

 

 

Skirta skaitmeninių produktų ateičiai

Galutinė būsena primena skaitmeninę ekologiją: begalė agentų, veikiančių pagal vietines taisykles, kuria kylančias (emergentines) sąsajas, kurių niekas – nei dizaineris, nei kūrėjas – neplanavo, bet kurios kažkaip dera tarpusavyje, nes jų pagrindu esančios taisyklės yra tvirtos.

Tai skamba ne taip jau fantastiškai, kaip gali pasirodyti. Būtent taip veikia biologinės sistemos, auga miestai, funkcionuoja rinkos. Klausimas ne tas, ar pasieksime šią būseną, o tai, kaip įveiksime perėjimą.

 

Išvada: kodas gyvas

Johnas von Neumannas, erudicijos šviesulys, išradęs ląstelinius automatus, vadovavosi esminiu klausimu: Kokio minimalaus sudėtingumo reikia savaiminiam atgaminimui? Jo atsakymas – von Neumanno universalusis konstruktorius – parodė, kad savireplikacijai nereikia biologinio mechanizmo. Pakanka taisyklių, kurios užkoduoja savo pačių taikymą.

Po septyniasdešimties metų atrandame, kad tas pats principas galioja ir dizaino sistemoms. Minimalus autonominio sąsajų generavimo reikalavimas – ne dirbtinis bendrasis intelektas ir ne žmogaus lygio kūrybiškumas. Tai išsamus, nuoseklus, mašinai suprantamas taisyklių rinkinys, kurį agentai gali vykdyti.

Kai Langtono kilpos dauginasi ląstelių tinklelyje, nesakome, kad kilpos „projektuoja“ naujas kilpas. Dauginimasis tiesiog yra tai, ką sukuria taisyklės. Vis dėlto rezultatas – nuolat plečiamos panašių į save darinių kolonijos – neabejotinai generatyvus, tam tikra funkcine prasme kūrybiškas.

Kai dirbtinio intelekto agentai surenka sąsajas iš dizaino sistemos komponentų, laikydamiesi semantinių žetonų ir kompozicijos apribojimų, jie daro kai ką panašaus. „Kūrybiškumas“ slypi ne agentuose, o taisyklėse, kurias jie vykdo – taisyklėse, kurias sukūrė žmonės, bet kurios dabar veikia savarankiškai.

Giliausia prasmė

Tai giliausia posakio „dizainas yra kodas“ prasmė: ne tik tai, kad dizaino specifikacijos tampa vykdomos, bet ir tai, kad dizaino sistemos tampa panašios į gyvas. Jos auga. Jos dauginasi savo raštais. Jos vystosi naudojamos. Jos pasižymi elgesiu, kurio niekas aiškiai neprogramavo.

Stovime naujos skaitmeninės kūrybos eros slenksčio. Agentai jau čia. Protokolai formuojasi. Dizaino sistemos tampa dirbtinės gyvybės substratu.

Dizainas yra kodas.
O kodas atgyja.

 

Pagrindiniai straipsniai ir projektai

Drupal AI ištekliai

Ląstelinių automatų ištekliai


Nagrinėtos idėjos skaičiavimo teorijos, dizaino sistemų, dirbtinio intelekto ir interneto kūrimo sankirtoje.

 Išsakyti požiūriai yra spekuliatyvūs naujų tendencijų apmąstymai, o ne tam tikros ateities prognozės.

 

Matau, kad kuriame dirbtinio intelekto agentus, kurie veikia ciklu ir kitais ciklais sąveikauja su kitais dirbtinio intelekto agentais.

Dizainas yra kodas, kai sistema veikia cikle, tarsi gyvenimo ciklas pasirinktame audinyje ir taisyklių rinkinyje.

The Design is the Code