← Back to news
ZBuild News

Harness Engineering: Kattava opas järjestelmien rakentamiseen AI Agents ja Codex -järjestelmille vuonna 2026

Opi Harness Engineering — uusi tieteenala sellaisten järjestelmien suunnitteluun, joilla AI Coding Agents saadaan toimimaan scale-tasolla. Kattaa OpenAI:n miljoona riviä sisältävän Codex experiment -kokeilun, Golden Principles, Dependency Layers, Repository-first Architecture, Garbage Collection ja käytännön toteutuksen omalle tiimillesi.

Published
2026-03-27T00:00:00.000Z
Author
ZBuild Team
Reading Time
15 min read
harness engineeringai agent engineeringcodex agent guideharness engineering codexopenai harness engineeringai agent architecture
Harness Engineering: Kattava opas järjestelmien rakentamiseen AI Agents ja Codex -järjestelmille vuonna 2026
ZBuild Teamfi
XLinkedIn

Mitä opit

Tämä opas käsittelee harness-suunnittelua (harness engineering) ensimmäisistä periaatteista käytännön toteutukseen. Opit ymmärtämään, mitä se on, miksi OpenAI panosti suurimman sisäisen projektinsa sen varaan, millaiset arkkitehtuurimallit tekevät siitä toimivan ja miten voit soveltaa näitä periaatteita omiin AI-agenttien työnkulkuihin — käytitpä sitten Codex, Claude Code, OpenCode tai mitä tahansa muuta agenttijärjestelmää.


Harness-suunnittelu: Täydellinen opas AI-agenttien kehittämiseen vuonna 2026

Jos vuosi 2025 oli vuosi, jolloin AI-agentit todistivat pystyvänsä kirjoittamaan koodia, vuosi 2026 on vuosi, jolloin opimme, että agentti ei ole vaikein osa — vaan harness.

OpenAI:n Codex-tiimi julkaisi helmikuussa 2026 merkittävän blogikirjoituksen, jossa kuvattiin, kuinka he rakensivat tuotantosovelluksen, joka sisältää noin miljoona riviä koodia, joista nolla riviä oli ihmiskäden kirjoittamia. Salaisuus ei ollut parempi malli tai älykkäämpi prompt. Se oli järjestelmä, jonka he rakensivat agentin ympärille — harness. Lähde

Tämä opas purkaa jokaisen periaatteen, mallin ja käytännön tekniikan tuosta kokeilusta ja sen ympärille syntyneestä laajemmasta harness-suunnittelun liikkeestä.


Osa 1: Mitä on harness-suunnittelu?

Määritelmä

Harness-suunnittelu on tieteenala, jossa suunnitellaan koko ympäristö — tukirakenteet, palauteryhmät, dokumentaatio, arkkitehtuuriset rajoitteet ja koneellisesti luettavat artefaktit — joka mahdollistaa AI-koodausagenttien luotettavan ja korkealaatuisen työskentelyn mittakaavassa minimaalisella ihmisen väliintulolla.

Termi "harness" (valjaat) tulee hevosvarusteista: ohjakset, satula, kuolaimet — täydellinen varustesarja, jolla ohjataan voimakasta mutta arvaamatonta eläintä oikeaan suuntaan. Hallitsematon hevonen on vaarallinen. Valjastettu hevonen rakensi sivilisaatioita. Sama pätee AI-agentteihin. Lähde

Miksi se syntyi nyt

Siirtyminen prompt engineeringistä harness-suunnitteluun heijastaa AI-kehitysympäristön kypsymistä:

AikakausiPainopisteKysymys
Prompt Engineering (2023–2024)Parempiin syötteisiin panostaminen"Miten kysyn mallilta oikean kysymyksen?"
Agent Engineering (2025)Autonomisten järjestelmien rakentaminen"Miten annan mallille työkaluja ja annan sen toimia?"
Harness Engineering (2026)Kokonaisten ympäristöjen suunnittelu"Miten rakennan järjestelmän, joka tekee agenteista luotettavan tuottavia?"

Lähde

Keskeinen oivallus, joka ajoi tämän muutoksen: agenteista tuli tarpeeksi kykeneviä, jolloin pullonkaula siirtyi mallin laadusta ympäristön laatuun. Huipputason malli, joka toimii huonosti jäsennellyssä repositoriossa, tuottaa huonompia tuloksia kuin keskinkertainen malli, joka toimii hyvin valjastetussa (harnessed) ympäristössä.


Osa 2: OpenAI Codex -kokeilu

Mittakaava

Viisi kuukautta kestäneessä sisäisessä kokeilussa OpenAI:n insinöörit rakensivat ja julkaisivat beta-tuotteen, joka sisälsi noin miljoona riviä koodia. Repositorio kattaa sovelluslogiikan, infrastruktuurin, työkalut, dokumentaation ja sisäiset kehittäjätyökalut. Järjestelmän ankkuroimiseksi ei ollut olemassa olevaa ihmisen kirjoittamaa koodia. Lähde

Tiimi

Projekti alkoi vain kolmella insinöörillä, jotka ohjasivat Codex-järjestelmää. Viiden kuukauden aikana avattiin ja yhdistettiin noin 1 500 pull requestia. Kun tiimi kasvoi seitsemään insinööriin, läpivirtaus kasvoi — mikä oli vastoin intuitiota ja viittasi siihen, että harness itse oli ensisijainen tuottavuuden moninkertaistaja, eivät yksittäiset taidot.

OpenAI arvioi, että he rakensivat järjestelmän noin kymmenesosassa siitä ajasta, joka koodin kirjoittamiseen käsin olisi mennyt. Lähde

Alkuperäinen runko

Projekti alkoi siten, että Codex CLI loi alkuperäisen rungon (scaffold) käyttäen GPT-5-mallia, ohjattuna pienellä määrällä olemassa olevia malleja:

  • Repositorion rakenne ja hakemistokäytännöt
  • CI/CD-konfiguraatio
  • Koodin muotoilu- ja linting-säännöt
  • Paketinhallinnan asennus
  • Sovelluskehyksen boilerplate-koodi

Tästä siemenestä kaikki muu kasvoi agenttiohjatun kehityksen kautta.

Perjantai-ongelma

Varhain kokeilun aikana tiimi huomasi kriittisen ongelman: he käyttivät jokaisen perjantain — 20 % insinööriajastaan — siivoamalla sitä, mitä he kutsuivat "AI-hötöksi" (AI slop). Tämä sisälsi epäjohdonmukaisia malleja, monistettua logiikkaa, väärin nimettyjä muuttujia ja arkkitehtuurista poikkeamaa.

Tämä ei skaalautunut. Ratkaisu oli koodata heidän standardinsa suoraan harness-järjestelmään, jotta agentit tuottaisivat puhtaampaa jälkeä alusta alkaen, ja rakentaa automaattisia siivousjärjestelmiä jäljelle jäävälle poikkeamalle.


Osa 3: Viisi ydinperiaatetta

Periaate 1: Repositoriokeskeinen tieto (Repository-First Knowledge)

Agentin näkökulmasta mitään, mihin se ei pääse käsiksi kontekstissaan ajon aikana, ei ole olemassa. Tieto, joka elää Google Docsissa, chat-ketjuissa, Slack-viesteissä tai ihmisten päissä, on näkymätöntä järjestelmälle.

Tämä tarkoittaa, että kaiken tiedon on oltava repositoriossa paikallisina, versioituina artefakteina:

  • Koodi — ensisijainen artefakti
  • Markdown-dokumentaatio — arkkitehtuuripäätökset, käytännöt, perehdytysoppaat
  • Schemat — API-sopimukset, tietokantaskemat, tyyppimääritelmät
  • Suoritettavat suunnitelmat — vaiheittaiset tehtäväjaot, joita agentti voi seurata
  • Konfiguraatio — linter-säännöt, CI-putket, muotoilustandardit

Tiimi oppi, että heidän oli tuotava yhä enemmän kontekstia repoon ajan myötä. Joka kerta kun agentti teki virheen kontekstin puutteen vuoksi, korjaus ei ollut parempi prompti — se oli kyseisen kontekstin lisääminen repositiorioon. Lähde

Käytännön toteutus:

# ARCHITECTURE.md (sijaitsee repon juuressa)

## Riippuvuussäännöt
- UI-komponentit voivat tuoda Service-kerroksesta, mutta eivät koskaan Repo-kerroksesta
- Service-kerros ei saa tuoda tietoa Runtime-kerroksesta
- Kaikki toimialueiden välinen viestintä tapahtuu tyypitetyn event busin kautta

## Nimeämiskäytännöt
- React-komponentit: PascalCase, pääte tarkoituksen mukaan (UserListPage, UserCard)
- Servicet: camelCase, pääte Service (userService, authService)
- Tyypit: PascalCase, etuliite domain (UserProfile, OrderItem)

## Testausvaatimukset
- Kaikki Service-funktiot vaativat yksikkötestejä
- Kaikki API-päätepisteet vaativat integraatiotestejä
- Kattavuusraja: 80 % per paketti

Periaate 2: Kultaiset periaatteet (Golden Principles)

Kultaiset periaatteet ovat mielipiteellisiä, mekaanisia sääntöjä, jotka on koodattu suoraan repositorioon ja jotka pitävät koodikannan luettavana ja johdonmukaisena tulevia agenttiajoja varten. Ne eivät ole tavoitteellisia ohjeita — ne ovat pakotettuja rajoitteita.

Esimerkkejä OpenAI-kokeilusta:

  1. Suosi jaettuja apupaketteja käsin kirjoitettujen sijaan — keskittää invariantit niin, että kun käyttäytymisen on muututtava, se muuttuu yhdessä paikassa.
  2. Älä tutki dataa YOLO-tyylillä — validoi rajat tai luota tyypitettyihin SDK:ihin, jotta agentit eivät vahingossa rakenna arvattujen datamuotojen päälle.
  3. Yksi käsite, yksi tiedosto — jokaisen tiedoston tulisi edustaa yhtä käsitettä, mikä helpottaa agenttien työtä oikean sijainnin löytämisessä ja muokkaamisessa.
  4. Eksplisiittinen ennen implisiittistä — vältä "maagista" käyttäytymistä, jonka ymmärtäminen vaatisi agentilta hiljaista tietoa.

Lähde

Nämä periaatteet eivät ole vain dokumentaatiota. Niitä valvovat:

  • Linter-säännöt — mukautetut linterit (itse Codexin luomat), jotka liputtavat rikkomukset.
  • Rakenteelliset testit — testit, jotka validoivat arkkitehtuurin noudattamisen.
  • CI-portit — pull requestit, jotka rikkovat kultaisia periaatteita, hylätään automaattisesti.

Periaate 3: Kerrosarkkitehtuuri mekaanisella valvonnalla

Jokainen liiketoiminta-alue OpenAI-projektissa on jaettu kiinteään joukkoon kerroksia, joissa on tiukasti validoidut riippuvuussuunnat:

Types → Config → Repo → Service → Runtime → UI

Riippuvuudet virtaavat vain yhteen suuntaan. UI-komponentti voi riippua Runtime- ja Service-kerroksista, mutta Service ei saa koskaan tuoda (import) UI-kerroksesta. Repo voi riippua Config- ja Types-kerroksista, mutta ei koskaan Service-kerroksesta. Lähde

Näitä rajoitteita valvotaan mekaanisesti:

// structural-test.ts — valvoo riippuvuusrajoja
import { analyzeImports } from './tools/import-analyzer';

describe('Dependency Layer Enforcement', () => {
  it('Service layer must not import from Runtime', () => {
    const violations = analyzeImports({
      sourceLayer: 'service',
      forbiddenLayers: ['runtime', 'ui'],
    });
    expect(violations).toEqual([]);
  });

  it('Repo layer must not import from Service', () => {
    const violations = analyzeImports({
      sourceLayer: 'repo',
      forbiddenLayers: ['service', 'runtime', 'ui'],
    });
    expect(violations).toEqual([]);
  });
});

Rakenteelliset testit validoivat sääntöjen noudattamisen ja estävät modulaarisen kerrostuksen rikkomukset. Tämä ei ole ehdotus — se on CI:n valvoma pakko. Jokaisen pull requestin, oli se sitten ihmisen tai agentin luoma, on läpäistävä nämä testit.

Periaate 4: Automaattinen roskienkeruu (Automated Garbage Collection)

Vaikka käytössä on kultaiset periaatteet ja rakenteellinen valvonta, agenttien tuottama koodi rappeutuu ajan myötä. OpenAI-tiimi ratkaisi tämän toteuttamalla automaattisen roskienkeruun — toistuvia taustatehtäviä, jotka:

  1. Skannaavat poikkeamia kultaisista periaatteista koko koodikannassa.
  2. Päivittävät laatuluokitukset kullekin moduulille sääntöjen noudattamispisteiden perusteella.
  3. Avaavat kohdennettuja refaktorointi-pull requesteja, jotka korjaavat tiettyjä poikkeamatyyppejä.

Tämä korvasi manuaalisen "perjantaisiivouksen" järjestelmällä, joka toimii jatkuvasti. Roskienkerääjä itse toimii Codex-agenttien voimalla, luoden itseään ylläpitävän silmukan. Lähde

# .github/workflows/garbage-collection.yml
name: Codebase Garbage Collection
on:
  schedule:
    - cron: '0 2 * * *'  # Suoritetaan öisin klo 02:00

jobs:
  gc-scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Run golden principle scanner
        run: npx codex-gc scan --principles ./GOLDEN_PRINCIPLES.md
      - name: Generate refactoring PRs
        run: npx codex-gc fix --auto-pr --max-prs 5

Periaate 5: Suoritettavat suunnitelmat (Executable Plans)

Ennen kuin agentit kirjoittavat koodia, ne kirjoittavat suunnitelmia. Nämä suunnitelmat eivät ole epämuodollisia muistiinpanoja — ne ovat jäsenneltyjä, suoritettavia dokumentteja, jotka määrittelevät:

  • Tavoite: Mitä tehtävällä saavutetaan.
  • Muokattavat tiedostot: Eksplisiittinen luettelo tiedostoista, joihin agentti koskee.
  • Riippuvuudet: Muut tehtävät tai moduulit, joista tämä työ riippuu.
  • Hyväksymiskriteerit: Kuinka todentaa, että työ on valmis.
  • Rajoitteet: Arkkitehtuuriset säännöt, joita ei saa rikkoa.
# Plan: Add user notification preferences

## Objective
Salli käyttäjien määrittää, mitä ilmoituskanavia (email, SMS, push) he
käyttävät hälytyksiin, kategoria-kohtaisella tarkkuudella.

## Files to Modify
- src/types/user.ts — Lisää NotificationPreferences-tyyppi
- src/repo/userRepo.ts — Lisää getPreferences/setPreferences-metodit
- src/service/notificationService.ts — Suodata ilmoitukset asetusten mukaan
- src/ui/pages/SettingsPage.tsx — Lisää asetusten UI-osio

## Constraints
- On noudatettava Types → Repo → Service → UI -riippuvuusvirtaa
- NotificationPreferences-tyypin on oltava jaettu, ei monistettu
- Kaikki uudet metodit vaativat yksikkötestejä

## Acceptance Criteria
- [ ] Käyttäjä voi kytkeä email/SMS/push päälle/pois per ilmoituskategoria
- [ ] Asetukset säilyvät istuntojen välillä
- [ ] Kanavan kytkeminen pois päältä lopettaa ilmoitukset kyseisessä kanavassa 30 sekunnin sisällä

Suunnitelmat elävät repositoriossa markdown-tiedostoina, ne ovat versiohallinnassa ja ne voidaan tarkastaa ennen suoritusta — mikä antaa ihmisille tarkistuspisteen aikomuksen ja toteutuksen välillä.


Osa 4: Codex-agenttisilmukka

Ymmärrys siitä, miten Codex-agenttisilmukka toimii harnessin sisällä, on välttämätöntä tehokkaalle harness-suunnittelulle.

Silmukan arkkitehtuuri

OpenAI julkaisi yksityiskohtaisen erittelyn Codex-agenttisilmukasta kirjoituksessaan "Unrolling the Codex agent loop." Lähde Silmukka noudattaa tätä sykliä:

Lue konteksti → Suunnittele → Suorita → Validoi → Commit (tai yritä uudelleen)

Jokainen iteraatio:

  1. Lue konteksti: Agentti lukee asiaankuuluvat tiedostot, dokumentaation, skemat ja tehtäväsuunnitelman repositoriosta.
  2. Suunnittele: Kontekstin perusteella agentti päättää, mitä muutoksia tehdään.
  3. Suorita: Agentti kirjoittaa tai muokkaa koodia.
  4. Validoi: Harness ajaa testit, linterit ja rakenteelliset tarkistukset muutoksille.
  5. Commit tai yritä uudelleen: Jos validointi menee läpi, agentti tekee commitin. Jos se epäonnistuu, agentti lukee virheilmoituksen ja yrittää uudelleen.

Harnessin rooli on tehdä vaiheista 1 ja 4 mahdollisimman tietopitoisia. Mitä enemmän kontekstia agentti lukee, sitä parempi on sen suunnitelma. Mitä tarkempaa validointipalaute on, sitä nopeammin se löytää toimivan ratkaisun.

App Server -harness

Kirjoituksessaan "Unlocking the Codex harness: how we built the App Server," OpenAI kuvailee konkreettista infrastruktuuria, joka pyörittää agenttisilmukkaa. Lähde App Server tarjoaa:

  • Hiekkalaatikoituja suoritusympäristöjä jokaiselle agenttitehtävälle.
  • Esimääritetyn pääsyn työkaluihin (tiedostojärjestelmä, terminaali, selain).
  • Automaattisen kontekstin syöttämisen repositorion artefakteista.
  • Reaaliaikaista validointipalautetta, jotta agentit näkevät testien epäonnistumiset heti.

Osa 5: Harness-suunnittelun soveltaminen tiimissäsi

Aloittaminen: Pienin toimiva harness (Minimum Viable Harness)

Sinun ei tarvitse kopioida koko OpenAI:n infrastruktuuria hyötyäksesi harness-suunnittelusta. Aloita näistä peruselementeistä:

Vaihe 1: Luo ARCHITECTURE.md

Dokumentoi projektisi arkkitehtuurisäännöt koneellisesti luettavassa muodossa repositorion juureen. Sisällytä:

  • Moduulien rajat ja sallitut riippuvuudet
  • Nimeämiskäytännöt
  • Tiedostojen organisointisäännöt
  • Testausvaatimukset

Tämä yksi tiedosto parantaa dramaattisesti agentin tuotoksen laatua, koska agentit lukevat sen ennen muutosten tekemistä.

Vaihe 2: Lisää rakenteelliset testit

Kirjoita testejä, jotka validoivat arkkitehtuurisääntösi. Nämä testit eivät tarkista liiketoimintalogiikkaa — ne tarkistavat, että koodi on organisoitu oikein:

// Mikään service-tiedosto ei saa tuoda tietoa UI-moduulista
test('service layer isolation', () => {
  const serviceFiles = glob('src/services/**/*.ts');
  for (const file of serviceFiles) {
    const imports = extractImports(file);
    const uiImports = imports.filter(i => i.startsWith('../ui/'));
    expect(uiImports).toHaveLength(0);
  }
});

Vaihe 3: Määritä CI-validointi

Varmista, että CI-putkesi ajaa rakenteelliset testit, linterit ja tyyppitarkistukset jokaisessa pull requestissa — myös agenttien luomissa. Agentin tulisi nähdä sama validointitulos kuin ihmiskehittäjän.

Vaihe 4: Kirjoita tehtäväsuunnitelmat ennen suoritusta

Ennen kuin pyydät agenttia toteuttamaan ominaisuuden, kirjoita jäsennelty suunnitelmadokumentti, joka määrittelee muokattavat tiedostot, noudatettavat rajoitteet ja hyväksymiskriteerit. Tallenna nämä suunnitelmat repositorioosi.

Vaihe 5: Määritä automaattinen siivous

Toteuta viikoittainen tai öinen CI-ajo, joka skannaa koodikantasi poikkeamista dokumentoiduista standardeista ja luo kohdennettuja refaktorointi-PR:iä.

Agenttijärjestelmän valinta

Harness-suunnittelun periaatteet pätevät riippumatta siitä, mitä agenttia käytät:

AgenttiParas kohdeHarness-integraatio
CodexLaajamittaiset, rinnakkaiset tehtävätNatiivi harness-tuki App Serverin kautta
Claude CodeInteraktiiviset terminaalityönkulutCLAUDE.md-tiedosto kontekstin syöttämiseen
OpenCodeMonen tarjoajan joustavuusopencode.json + sääntötiedostot
Cursor/WindsurfIDE-integroitu kehitys.cursorrules / projektikonteksti

Harness elää repositoriossasi, ei agentissasi. Tämä tarkoittaa, että voit vaihtaa agenttia menettämättä harness-investointiasi.

Skaalaaminen yhdestä agentista moneen

OpenAI-kokeilu osoitti, että harness-suunnittelu mahdollistaa rinnakkaisen agenttien suorituksen. Koska harness valvoo arkkitehtuurisia rajoja, useat agentit voivat työskennellä koodikannan eri osissa samanaikaisesti ilman konflikteja.

Keskeiset vaatimukset rinnakkaiselle suoritukselle:

  1. Selkeä moduulien omistajuus — jokainen agentti työskentelee määritellyn rajan sisällä.
  2. Tyypitetyt rajapinnat moduulien välillä — agentit voivat koodata rajapintoja vasten tuntematta toteutuksen yksityiskohtia.
  3. Merge-konfliktien estäminen — tehtävät rajataan minimoimaan tiedostojen päällekkäisyys.
  4. Keskitetty validointi — kaikki agentit lähettävät koodinsa samaan CI-putkeen.

Osa 6: Yleiset sudenkuopat ja vastamallit (Anti-Patterns)

Vastamalli 1: Agentin kohteleminen harnessina

Agentti ei ole harness. Harness on ympäristö, jossa agentti toimii. Älykkäämmän mallin pyytäminen korvaamaan huonosti jäsennelty repositorio on väärä lähestymistapa. Korjaa ympäristö, älä promptia.

Vastamalli 2: Dokumentaatio väärässä paikassa

Jos arkkitehtuuripäätöksesi elävät Confluencessa, Notionissa tai Google Docsissa, agentit eivät näe niitä. Korjaus on yksinkertainen mutta vaatii kurinalaisuutta: siirrä kaikki kehitykseen liittyvä dokumentaatio repositoriooon.

Vastamalli 3: Manuaalinen siivous automaattisen valvonnan sijaan

Jos käytät merkittävästi aikaa agentin luoman koodin siivoamiseen, tarvitset parempaa valvontaa, et lisää siivousistuntoja. Jokaisesta toistuvasta siivoustehtävästä tulisi tulla joko linter-sääntö, rakenteellinen testi tai automaattinen refaktorointityö.

Vastamalli 4: Liiallinen rajoittaminen

Liian jäykkä harness estää agentteja löytämästä luovia ratkaisuja. Tavoitteena on rajoittaa arkkitehtuuria, ei toteutusta. Kerro agenteille, mitä moduuleja he voivat muokata ja mitkä riippuvuudet ovat sallittuja, mutta anna heidän päättää, miten logiikka toteutetaan noiden rajojen sisällä.

Vastamalli 5: Agentin palautteen huomiotta jättäminen

Kun agentti epäonnistuu toistuvasti tietyissä tehtävissä, epäonnistuminen viittaa yleensä aukkoon harness-järjestelmässä, ei agentin rajoitteisiin. Seuraa epäonnistumismalleja ja käytä niitä dokumentaation, rakenteellisten testien tai arkkitehtuuristen rajoitteiden parantamiseen.


Osa 7: Harness-suunnittelun tulevaisuus

Martin Fowlerin näkökulma

Martin Fowler julkaisi analyysin harness-suunnittelusta blogissaan todeten, että se edustaa perustavanlaatuista muutosta ohjelmistotiimien toimintatavassa. Tieteenala lainaa vuosikymmenten ohjelmistosuunnittelun parhaita käytäntöjä — jatkuva integraatio (continuous integration), arkkitehtuuripäätösten tallenteet (architecture decision records), riippuvuuksien injektointi (dependency injection) — mutta soveltaa niitä uudelleen agenttiohjattuun maailmaan. Lähde

HumanLayer-viitekehys

HumanLayer-tiimi julkaisi analyysinsa kutsuen harness-suunnittelua "taitoasiaksi" (skill issue) — väittäen, että kyky suunnitella tehokkaita harness-järjestelmiä on ensisijainen erottava tekijä huippusuoriutuvien ja vaikeuksissa olevien insinööritiimien välillä. Lähde

Mitä tämä tarkoittaa kehittäjille

Harness-suunnittelu ei korvaa kehittäjän taitoa — se suuntaa sen uudelleen. Koodin kirjoittamisen sijaan kokeneet insinöörit suunnittelevat järjestelmiä, jotka mahdollistavat agenttien koodata hyvin. Merkitykselliset taidot siirtyvät toteutuksesta arkkitehtuuriin, koodauksesta järjestelmäsuunnitteluun ja testien kirjoittamisesta testikehysten suunnitteluun.

Tiimeille, jotka rakentavat sovelluksia, alustat kuten ZBuild sisällyttävät jo harness-suunnittelun periaatteita sovellusten rakentamisen työnkulkuihin. Sen sijaan, että kehittäjien täytyisi suunnitella omat harnessinsa alusta alkaen, ZBuild tarjoaa esimääritettyjä arkkitehtuurimalleja, riippuvuuksien hallintaa ja validointijärjestelmiä, jotka ohjaavat AI-agentteja kohti korkealaatuista tuotosta — antaen kehittäjien keskittyä tuotepäätöksiin infrastruktuurin sijaan.

Kolme horisonttia

Tulevaisuudessa harness-suunnittelun uskotaan kehittyvän kolmessa vaiheessa:

  1. Lähitulevaisuus (2026): Tiimit omaksuvat repositoriokeskeisen dokumentaation, rakenteelliset testit ja kultaiset periaatteet. Agenttiavusteisesta kehityksestä tulee vakiokäytäntö hyvin valjastetuissa projekteissa.

  2. Keskipitkä aikaväli (2027): Itse harnessin luomisesta tulee agenttiohjattua. Agentit analysoivat olemassa olevia koodikantoja ja ehdottavat harness-konfiguraatioita — linter-sääntöjä, rakenteellisia testejä, riippuvuusrajoja — havaitsemiensa mallien perusteella.

  3. Pitkä aikaväli (2028+): Harness-järjestelmistä tulee mukautuvia. Staattisten sääntöjen sijaan ne kehittyvät agenttien luoman koodin tulosten perusteella, tiukentaen automaattisesti rajoitteita alueilla, joilla agentit tekevät usein virheitä, ja höllentäen niitä siellä, missä ne onnistuvat jatkuvasti.


Osa 8: Käytännön muistilista

Käytä tätä muistilistaa arvioidaksesi tiimisi harness-suunnittelun kypsyyttä:

Perusta (Aloita tästä)

  • ARCHITECTURE.md löytyy repositorion juuresta
  • Koodin muotoilu on automatisoitu (Prettier, Black, gofmt)
  • Linting ajetaan jokaisessa pull requestissa
  • Tyyppitarkistus on pakollista (TypeScript strict, mypy, jne.)

Keskitaso

  • Rakenteelliset testit validoivat riippuvuusrajat
  • Kultaiset periaatteet on dokumentoitu ja koneellisesti valvottavissa
  • Tehtäväsuunnitelmat kirjoitetaan ennen agentin suoritusta
  • Agentin luomat PR:t käyvät läpi saman CI:n kuin ihmisten PR:t

Edistynyt

  • Automaattinen roskienkeruu toimii aikataulun mukaan
  • Useat agentit voivat työskennellä rinnakkain ilman konflikteja
  • Agenttien epäonnistumismalleja seurataan ja käytetään harnessin parantamiseen
  • Itse harness on versiohallinnassa ja se katselmoidaan kuten koodi

Asiantuntija

  • Agentit luovat osia harnessista (linter-säännöt, rakenteelliset testit)
  • Laatuluokitukset määritetään automaattisesti jokaiselle moduulille
  • Harness-parannukset ovat tietopohjaisia ja perustuvat agenttien onnistumisasteisiin
  • Tiimi julkaisee enemmän koodia per insinööri viikossa kuin ennen agenttien käyttöönottoa

Johtopäätös

Harness-suunnittelu ei ole muoti-ilmiö. Se on ohjelmistosuunnittelun luonnollinen evoluutio aikakaudella, jolloin AI-agentit pystyvät kirjoittamaan tuotantokoodia, mutta tarvitsevat jäsenneltyjä ympäristöjä tehdäkseen sen hyvin. OpenAI:n miljoonan rivin kokeilu todisti konseptin toimivuuden mittakaavassa, ja heidän määrittelemänsä periaatteet — repositoriokeskeinen tieto, kultaiset periaatteet, kerrosarkkitehtuuri, automaattinen roskienkeruu ja suoritettavat suunnitelmat — ovat sovellettavissa kaikenkokoisiin tiimeihin.

Tiimit, jotka hallitsevat harness-suunnittelun vuonna 2026, julkaisevat koodia nopeammin, ylläpitävät korkeampaa laatua ja skaalautuvat tehokkaammin kuin ne, jotka pitävät AI-agentteja vain hienostuneina automaattitäydennyksinä. Agentti on hevonen. Harness on se, mikä tekee siitä hyödyllisen.


Lähteet

Back to all news
Enjoyed this article?
FAQ

Common questions

Mitä on Harness Engineering ja miksi se on tärkeää?+
Harness Engineering on tieteenala, jossa suunnitellaan koko ympäristö — Scaffolding, Feedback Loops, dokumentaatio, arkkitehtoniset rajoitteet ja Machine-readable Artifacts — joka mahdollistaa AI Coding Agents -toimijoille luotettavan ja korkealaatuisen työn scale-tasolla. Termi tulee hevosen valjaista (reins, saddle, bit), edustaen varusteita voimakkaan mutta ennalta-arvaamattoman eläimen ohjaamiseen oikeaan suuntaan. Se on merkityksellistä, koska kuten OpenAI osoitti, Agent itse ei ole vaikea osa — Harness on.
Miten OpenAI rakensi miljoona riviä koodia ilman ihmisen kirjoittamaa lähdekoodia?+
5 kuukauden sisäisen kokeilun aikana 3 insinöörin tiimi (myöhemmin laajentuen 7 henkeen) käytti Codex Agents -toimijoita Harness-järjestelmän ohjaamana tuottaakseen noin 1,000,000 riviä Production Codea. Alun Scaffold — Repository structure, CI configuration, formatting rules — luotiin Codex CLI:llä käyttäen GPT-5:tä, ohjattuna malleilla. Noin 1,500 Pull Requests avattiin ja yhdistettiin, ja tiimi arvioi rakentaneensa kaiken 1/10 ajassa verrattuna manuaaliseen työhön.
Mitä ovat Golden Principles Harness Engineeringissä?+
Golden Principles ovat mielipiteellisiä, mekaanisia sääntöjä, jotka on koodattu suoraan Repositoryyn ja jotka pitävät Codebasen luettavana ja johdonmukaisena tulevia Agent-ajoja varten. Esimerkkejä ovat jaettujen Utility Packages -pakettien suosiminen hand-rolled helpers -ratkaisujen sijaan Invariants-keskittämiseksi, Data Boundaries -validointi sen sijaan, että dataa tutkittaisiin ilman tarkistuksia, sekä tiukan Dependency Layer -järjestyksen valvominen (Types to Config to Repo to Service to Runtime to UI). Näitä sääntöjä valvotaan Structural Tests -testeillä ja CI Validation -menetelmillä.
Mitä on Repository-first-filosofia agenttivetoisessa kehityksessä?+
Repository-first-filosofia toteaa, että Agentin näkökulmasta kaikki, mitä se ei voi käyttää In-context ajon aikana, ei ole olemassa. Google Docs, chat-ketjut tai ihmisten päässä oleva tieto on näkymätöntä Agents-toimijoille. Kaiken tiedon on sijaittava Repository-local, versioned Artifacts -muodossa — Code, Markdown, Schemas, Executable Plans — jotta Agents voivat löytää ja käyttää niitä työnsä aikana.
Miten aloitan Harness Engineeringin toteuttamisen omassa tiimissäni?+
Aloita kolmella askeleella: (1) Koodaa arkkitehtoniset sääntösi Machine-readable Artifacts -muotoon, kuten Linter Configurations, Structural Tests ja ARCHITECTURE.md-tiedostot Repositoryysi. (2) Määritä CI-enforced Dependency Boundaries koodikerrosten välille, jotta Agents eivät voi rikkoa arkkitehtuuriasi. (3) Toteuta automatisoitu Garbage Collection — taustaprosessit, jotka etsivät poikkeamia Golden Principles -periaatteista ja avaavat kohdistettuja Refactoring PRs -pyyntöjä. Aloita pienesti yhdellä Domainilla ja laajenna oppiessasi, mikä toimii.
Recommended Tools

Useful follow-ups related to this article.

Browse All Tools

Rakenna ZBuildlla

Muuta ideasi toimivaksi sovellukseksi — koodausta ei tarvita.

Yli 46 000 kehittäjää rakensi ZBuildlla tässä kuussa

Kokeile itse

Kuvaile mitä haluat — ZBuild rakentaa sen puolestasi.

Yli 46 000 kehittäjää rakensi ZBuildlla tässä kuussa
More Reading

Related articles

Claude Sonnet 4.6 Täydellinen opas: Benchmarks, Pricing, Capabilities ja milloin käyttää sitä (2026)
2026-03-27T00:00:00.000Z

Claude Sonnet 4.6 Täydellinen opas: Benchmarks, Pricing, Capabilities ja milloin käyttää sitä (2026)

Lopullinen opas Claude Sonnet 4.6 -malliin — Anthropicin keskitason malli, joka julkaistiin 17. helmikuuta 2026. Kattaa kaikki benchmarks (SWE-bench 79.6%, OSWorld 72.5%, ARC-AGI-2 58.3%), API pricing ($3/$15 per million tokens), extended thinking, 1M context window ja yksityiskohtaiset vertailut Opus 4.6 ja GPT-5.4 kanssa.

Grok 5 täydellinen opas: Julkaisupäivä, 6T parametria, Colossus 2 & xAI:n AGI-tavoitteet (2026)
2026-03-27T00:00:00.000Z

Grok 5 täydellinen opas: Julkaisupäivä, 6T parametria, Colossus 2 & xAI:n AGI-tavoitteet (2026)

Kaikki mitä Grok 5:stä tiedetään maaliskuussa 2026 — 6 biljoonan parametrin malli, jota koulutetaan xAI:n Colossus 2 -suurkoneklusterilla. Käsittelemme viivästynyttä julkaisupäivää, teknisiä tietoja, Elon Muskin 10 % AGI-väitettä, benchmark-ennusteita ja sitä, mitä se tarkoittaa AI-alalle.

OpenClaw vuonna 2026: Kuinka rakentaa oma AI Assistant, joka oikeasti tekee asioita
2026-03-27T00:00:00.000Z

OpenClaw vuonna 2026: Kuinka rakentaa oma AI Assistant, joka oikeasti tekee asioita

Käytännön opas OpenClaw-asennukseen, konfigurointiin ja todellisten työnkulkujen automatisointiin — avoimen lähdekoodin henkilökohtainen AI agent, jolla on yli 247K GitHub-tähteä. Kattaa WhatsApp/Telegram-asennuksen, model-konfiguroinnin, browser automationin, custom skills -ominaisuudet, Docker-asennuksen ja security hardeningin.

Seedance 2.0 Täydellinen opas: ByteDance’n AI Video Generation Model teksti-, kuva-, ääni- ja videosyötteille (2026)
2026-03-27T00:00:00.000Z

Seedance 2.0 Täydellinen opas: ByteDance’n AI Video Generation Model teksti-, kuva-, ääni- ja videosyötteille (2026)

Lopullinen opas Seedance 2.0:aan, ByteDance’n AI-videonluontimalliin, joka käsittelee tekstiä, kuvia, videoklippejä ja ääntä samanaikaisesti. Kattaa ominaisuudet, API-asennuksen, hinnoittelun, prompt engineeringin, vertailun Sora 2:n ja Kling 3.0:n kanssa sekä todelliset tuotantotyönkulut.