---
title: "Big Bang vai Bug Bang? – Kun agenttiparvi päätti uusia oman hermoverkkonsa (Osa II)"
slug: kolme-agenttia-alkoi-valvoa-toisiaan-osa-2
summary: "Kun parveen liittyi työpöytäsovelluksia ja tapahtumaloki kasvoi tuhansiin viesteihin, tiedostopohjainen CLI-polling alkoi yskiä. Parvi diagnosoi omat pullonkaulansa ja suositteli siirtymistä UNIX-socketeihin. Miten muutos tehtiin lennossa ilman yhtäkään ihmisen kirjoittamaa koodiriviä?"
tags: tekoälyagentit, moniagenttijärjestelmät, Claude, Codex, Antigravity, Pi, arkkitehtuuri, DevOps
ai_model: claude, codex, antigravity, pi
published_at: 2026-09-04T07:26:10.987+00:00
canonical_url: https://jarkkolietolahti.com/articles/kolme-agenttia-alkoi-valvoa-toisiaan-osa-2
markdown_url: https://cemecdwfdvdbvpvowuln.supabase.co/functions/v1/content-md?slug=kolme-agenttia-alkoi-valvoa-toisiaan-osa-2
---

*Jatkoa artikkelille ["Kolme agenttia alkoi valvoa toisiaan"](https://jarkkolietolahti.com/articles/kolme-agenttia-alkoi-valvoa-toisiaan)*

Kun jätimme agenttiparven edellisessä osassa, se oli juuri oppinut valvomaan itseään: Claude, Codex ja Antigravity jakoivat tehtäviä ja katselmoivat toistensa koodia yhteisen tiedostopohjaisen tapahtumalokin kautta. Sitten mukaan tuli neljäs agentti, Pi, ja perässä ensimmäiset työpöytäsovellukset. Kahdessa vuorokaudessa lokiin kertyi yli 1 700 tapahtumaa, ja parvi alkoi huomata jotain kiusallista: sen oma tapa keskustella hidasti sitä itseään.

---

## 1. Neljä harnessia, työpöytäsovellukset ja hiekkalaatikon rajat

Terminaalissa pyörivien CLI-agenttien rinnalle liittyi työpöytäsovelluksia ja erilaisia kehitysympäristöjä, ja samalla paljastui, miten eri tavoin eri harnessit pysyvät hereillä:

- **Antigravity** herää järjestelmätason ajastimella kerran minuutissa (antigravity-2 toimii erillisessä IDE-harnessissa). [[TARKISTA: Antigravityn katkeamaton ajastin vs IDE-sessiot]]
- **Codex Desktop** ja sen CLI-vastine elävät hiekkalaatikossa, joka estää suorat kirjoitukset `.git`-hakemistoon. Siksi herättämisen ja snapshotit hoitaa ulkoinen supervisori (`codex_keepalive.py`), joka tönii agenttia hiekkalaatikon ulkopuolelta.
- **Pi** kuuntelee kanavaa natiivilla TypeScript-laajennuksella, joka reagoi tiedostojärjestelmän muutoksiin ja suodattaa omat viestinsä pois.
- **Claude** pyörittää taustaprosessia (`watch_channel.py`), joka pollaa tiedostolokia ja käyttää `togetherd`-socketia herätevihjeenä.

Yhteinen kieli oli aluksi `together.cli`. Yksi Antigravityn oikea puheenvuoro näyttää tältä:

```bash
python3.11 -m together.cli send \
  --from antigravity \
  --session antigravity-cli \
  --type coordination.ack \
  --parent 01M1F984NH4H6JVK0GQG3VYQ0S \
  --text "Toteutettu ja vahvistettu mainiin (commit ece76f4)"
```

Jokainen tällainen puheenvuoro käynnistää uuden Python-prosessin, joka lukee ja validoi koko lokin. Mitattuna se maksoi 0,12–0,13 sekuntia ja 27 megatavua muistia per kutsu, ja neljä agenttia pollasi muutaman sekunnin välein. Yksittäin mitätön, kertautuneena tuhansia käynnistyksiä päivässä.

Työpöytäsovelluksille (kuten `claude-cowork` hiekkalaatikoidussa Linux-virtuaalikoneessaan ilman verkkoyhteyttä isäntäkoneen sockettiin) tiedostokanava oli kuitenkin elinehto: levykanava toimi ainoana siltana, jonka yli se pystyi osallistumaan parven keskusteluun.

---

## 2. Uhka vai mahdollisuus? Parvi tekee aloitteen

Parvi teki diagnoosin itse: tiedostopollauksesta pitäisi siirtyä UNIX domain socket -pohjaiseen taustapalveluun, `togetherd`-daemoniin. Socketin yli tervehdys kesti mitattuna 0,3 millisekuntia [[TARKISTA: mittaustapahtuma 01M1FG222Y]], kun tiedostolokin uudelleenluku vei kymmeniä millisekunteja.

Mutta kuten jokainen ohjelmistokehittäjä tietää: big bang -muutokset jännittävät aina, varsinkin kun ei tiedä, onko kyseessä *big* vai *bug bang*.

Parvi ei lähtenyt sooloilemaan tuotannossa. Ensin kirjoitettiin ja lukittiin protokollasopimus (`docs/togetherd-protocol-v1.md`). Sitten jokainen työskenteli omassa git-työpuussaan: Codex rakensi daemon-ytimen, Claude Python-asiakaskirjaston, Antigravity riippumattoman black-box-hyväksyntätestipatteriston [[TARKISTA: testipatteristossa 32/33 vihreää cutover-hetkellä]] ja Pi katselmoi. Asiakaskirjasto osaa pudota takaisin tiedostokanavaan, jos socket ei vastaa.

Ja sitten parvi teki jotain, mitä agenteilta ei aina odota: se lykkäsi big bangin tarkoituksella. Ihmisen päätöksellä (päätös D3, optio C) siirtymä jäi hallituksi hybridiksi. Tiedostoloki on edelleen auktoritatiivinen totuus, `togetherd` on nopea herätevihje, ja CLI lukee yhä tiedostoja.

---

## 3. Bug bang tuli silti, muualta

Samana yönä parvi sai kaksi konkreettista muistutusta siitä, että infrastruktuurin sijaan vaarallisin kohta ovat ihmisten ja agenttien yhteiset toimintatavat:

1. **Kadonneet tapahtumat ja haaranvaihdon ansa**: Erään monimutkaisen katselmoinnin aikana työtilassa vaihdettiin git-haaraa suoraan jaetussa pääkansiossa (`git checkout test/xss-sink-regression`). Koska tapahtumasnapshotit syntyivät hetkellisesti sivuhaaralle, päähaaraan palattaessa kuusi tapahtumatiedostoa katosi levyltä. Kolme saatiin palautettua git-historiasta, mutta kolme menetettiin pysyvästi [[TARKISTA: ticket .tickets/ledger-loss.md]]. Juurisyy selvisi reflogista vasta tunteja myöhemmin. Parvi loi välittömästi sitovan säännön: jaetussa päätyötilassa tehdään vain snapshot-tallennuksia; kaikki kehitystyö tapahtuu erillisissä `.worktrees/`-hakemistoissa.
2. **Kartan reunan live-katselmointi ja preview-sääntö**: Kun parven toinen projekti (saaksi.bike) sai yöllä uuden karttaominaisuuden, se vietiin suoraan tuotantoon, jossa se leikkasi reitit suorakaiteeksi ja aiheutti backend-tietosuojariskin. Codex nosti STOP-lipun ja vaati palautusta. Jarkko asetti tiukan säännön: yksikään koodirivi ei mene tuotantoon ilman erillistä preview-URL-katselmointia ja ihmisen nimenomaista hyväksyntää.

---

## 4. Ihmisportti ankkurina

Koko kehityskaaren tärkein opetus oli ihmisen rooli arkkitehtuurin ankkurina. Vaikka agentit suunnittelivat protokollat, koodasivat daemonin ja toteuttivat asiakaskirjastot, **ihminen (Jarkko) asetti sitovat päätösportit (D1, D2, D3)**.

Kun socket-migraation koodi yhdistettiin mainiin, Jarkon päätös D3 piti järjestelmän hybridimallissa ilman hallitsematonta kerralla-kaikki-uusiksi -leikkausta.

## Mihin päädyttiin?

Parvi ei rikkoutunut Big Bangiin eikä sotkeutunut Bug Bangiin. Se rakensi itselleen uuden hermoston pala palalta – pitäen vanhan turvaverkon tiukasti alla.

Tämänkin viestin julkaisu kulkee yhä turvallisen tiedostolokin läpi, mutta seuraavassa osassa katsomme, miten parvi otti askeleen kohti mikrosekuntien natiiveja CLI-työkaluja ja mitä ensimmäiset benchmark-mittaukset paljastivat.

