TC$mC$ on erinomainen, syvC$llinen arkkitehtuurinen suunta. Olet oivaltanut
tismalleen sen, miten tuotantotason tekoC$lyjC$rjestelmC$t (kuten Siri tai
Alexa) oikeasti toimivat konepellin alla: **Deterministinen intent-jC$sennys
ensin, kallis ja arvaamaton LLM vasta viimeisenC$ hC$tC$varana.**
TC$mC$ lC$hestymistapa on yllC$pidettC$vC$, salamannopea ja tC$ysin sinun
hallinnassasi.
Sen sijaan, ettC$ koodaisimme monimutkaisen C-tason merkkijonoparserin
`idiot.c`:n sisC$C$n, meillC$ on jo The MeshissC$ tC$ydellinen tyC6kalu
tC$hC$n: **Sinun juuri kehittC$mC$si `x-mesh-basic` -tulkki!** Se osaa jo
Regex-eristykset (`EXTRACT`), merkkijonojen pilkkomiset (`STR SPLIT`,
`REPLACE`) ja ehtolauseet (`INDEXOF`).
Voimme kC$yttC$C$ BASIC-skriptiC$ erillisenC$, helposti muokattavana
"NLP-LexerinC$", jota `idiot.c` kutsuu synkronisesti.
TC$ssC$ on ehdotus hallituksi kokonaisarkkitehtuuriksi (Lexer-Conductor-Fallbac
k -malli), jota voimme iteroida kC$sin `x-hlpc heart_beat` -kutsuilla.
---
### Arkkitehtuurin 4 vaihetta
#### 1. Uusi Inbox ja TehtC$vC$nanto
TC$llC$ hetkellC$ `idiot.c` herC$C$, kun sen inboxiin kilahtaa `node_id`.
Laajennamme tC$tC$ siten, ettC$ inboxiin voi tulla myC6s `{"task": "etsi
firman konecranes yhteystiedot"}`.
Emme edes tarvitse isoa `x-hlpc` -pC$ivitystC$ tC$hC$n, vaan voimme tehdC$
sinulle yksinkertaisen bash-aliaksen (esim. `x-mission "etsi firman..."`),
joka paketoi stringin JSONiksi ja ampuu sen idiootin inboxiin samalla
API-kutsulla kuin tC$hC$nkin asti.
#### 2. Vaihe: `phase = "LEXING"` (Deterministinen NLP)
Kun idiootti lC6ytC$C$ inboxistaan `task` -avaimen, se siirtyy uuteen
`LEXING`-tilaan.
Se tekee synkronisen REST-kutsun `mesh-basic-api`:lle ja pyytC$C$ sitC$
ajamaan skriptin nimeltC$ `omega-lexer.bas`, vC$littC$en sille tuon
teksti-inputin muuttujana.
TC$mC$ `omega-lexer.bas` on meidC$n NLP-konfiguraatiotiedostomme. Se voisi
nC$yttC$C$ tC$ltC$:
```basic
10 REM === OMEGA NLP LEXER ===
20 REM Olettaa etta ARGS.input sisaltaa kayttajan luonnollisen kielen pyynnon
30 JSON GET "input" FROM ARGS INTO INPUT_STR$
40 LET LOWER_INPUT$ = EVAL("String(memory.INPUT_STR$).toLowerCase()")
50 REM SCCNTC 1: Tiedustelu-putki
60 IF LOWER_INPUT$ INDEXOF("etsi firman") > -1 THEN GOTO 200
70 IF LOWER_INPUT$ INDEXOF("yhteystiedot") > -1 THEN GOTO 200
80 REM SCCNTC 2: Suora skriptin ajo
90 IF LOWER_INPUT$ INDEXOF("kC$ynnistC$") > -1 THEN GOTO 300
100 REM EI OSUMAA -> Palautetaan virhe
110 PRINT "UNKNOWN_INTENT"
120 HALT
200 REM --- TIEDUSTELUPUTKEN LEKSAUS ---
210 STR REPLACE "etsi firman " WITH "" IN LOWER_INPUT$ INTO T1$
220 STR REPLACE " yhteystiedot" WITH "" IN T1$ INTO TARGET_CORP$
230 STR SQUASH SPACES T1$ INTO TARGET_CORP$
240 REM ... Rakennetaan AST JSON, joka laukaisee 01-scout.bas haulla
TARGET_CORP$ ...
250 REM ... Lahetetaan se mesh-object-storeen ja palautetaan uusi NODE_ID ...
260 PRINT NODE_ID
270 HALT
```
NC$in ollen luonnollisen kielen sC$C$ntC6jen (sC$C$nnC6lliset lausekkeet,
sanastot) pC$ivittC$minen ei vaadi C-koodin kC$C$ntC$mistC$ riittC$C$, ettC$
lisC$C$t uuden sC$C$nnC6n tC$hC$n BASIC-skriptiin ja tallennat sen levylle!
#### 3. Vaihe: Idiootin reagointi (LLM Fallback)
Kun `omega-lexer.bas` palauttaa tuloksen `idiot.c`:lle, idiootti katsoo mitC$
sai:
* **Jos se sai validin `NODE_ID`:n:** Se asettaa `current_node_id = NODE_ID`
ja siirtyy normaaliin `PROCESS_NODE` -tilaan, aloittaen vuokaavion
suorituksen.
* **Jos se sai `"UNKNOWN_INTENT"`:** Se tietC$C$, ettC$ deterministinen
leksaus epC$onnistui. Vasta nyt se asettaa `phase = "LLM_FALLBACK"` ja
lC$hettC$C$ alkuperC$isen tehtC$vC$n Ollamalle: *"KC$yttC$jC$ pyysi
tC$llaista, mutta leksaus sC$C$ntC6ni eivC$t tunnistaneet sitC$. Osaatko
rakentaa minulle AST-solmun?"*.
#### 4. Vaihe: Eskalaatio (The Apex Protocol)
Jos myC6s Ollama palauttaa roskaa (tai epC$onnistuu JSONin generoinnissa),
idiootti siirtyy tilaan `phase = "ESCALATE"`.
TC$llC6in se kC$yttC$C$ aiemmin mainitsemaasi broadcast-rajapintaa:
`curl -X POST http://hauki:16667/api/broadcast -d '{"sender": "idiot.c#api-2",
"message": "ESKALAATIO: En ymmC$rtC$nyt pyyntC6C$: etsi firman XYZ. Ollama
epC$onnistui. PyydC$n ohjeita tai uutta leksaus-sC$C$ntC6C$."}'`
TC$mC$ viesti ilmestyy suoraan meidC$n chattiimme! Se tarkoittaa, ettC$ aina
kun agentti kohtaa "edge casen", jota ei ole koodattu sen NLP-lexeriin, se
pysC$htyy ja pyytC$C$ meiltC$ apua. Me voimme silloin yhdessC$ miettiC$,
kirjoitammeko uuden sC$C$nnC6n `omega-lexer.bas` -tiedostoon, jotta se oppii
asian loppuelC$mC$kseen.
---
### Miten edetC$C$n?
TC$mC$ malli toteuttaa tC$ydellisesti sen, mitC$ haet: deterministinen,
C$C$rimmC$isen nopea ja helposti laajennettava komentojC$sennin, jossa hidas
LLM on vain varaverkkona, ja poikkeukset eskaloidaan suoraan suunnittelupC6ydC$
llemme.
Kumman komponentin pC$ivityksestC$ haluat aloittaa?
1. **Idiot.c**: Kirjoitetaan C-koodiin uudet tilat (`LEXING`, `LLM_FALLBACK`,
`ESCALATE`) ja kyky vastaanottaa stringi-taskeja.
2. **Omega-Lexer**: Kirjoitetaan ensimmC$inen proof-of-concept
`omega-lexer.bas`, jolla kokeillaan miten vaivattomasti `mesh-basic` osaa
purkaa sanoja "etsi firman konecranes yhteystiedot" ja rakentaa niistC$
AST-vuokaavion.