Kun AI-koodausavustaja ei osaa päättää: debuggausmatkani helvetissä
Kun AI-koodausavustaja ei osaa päättää
Olet varmaan huomannut tämän, jos olet käyttänyt tuoreimpia AI-koodausapureita. Kysyt yksinkertaisen asian. Se lähtee luottavaisesti selittämään. Sitten se alkaa epäröidä. Vaihtaa mieltä. Ja taas.
Ei tämä johdu AI:n tyhmyydestä. Se on kuin kuuntelisi jonkun pohtivan ääneen ilman sensuuria. Hauskaakin on seurata, mutta samalla se kertoo paljon siitä, miten rakennamme työkaluja AI-aikaan.
Epäröivän apurin syndrooma
Keissit kehittäjiltä, jotka testasivat Claude Opus -mallia GitHub Copilotin kanssa, nostavat tämän esiin. Yksi porukka debuggasi GoAWK:ta – AWK-tulkkia Go-kielellä. Ohjelma tulosti väärin "0\n0\n" sen sijaan, että olisi antanut "x 1\n" tietyssä AWK-koodissa.
AI nappasi vian heti. Ongelma oli, että NR-tyyppiset erikoismuuttujat tallentuivat Go-intteinä, jolloin merkkijonot katosivat.
Sitten tuli korjausvaihe. Muutaman minuutin ajan AI heitti esiin seitsemän erilaista ratkaisua. Ja koukeroi niiden välillä ainakin 25 kertaa. Jatkuvasti kyseenalaisti itseään.
Seitsemän ratkaisua, jotka paisuivat 25:een
Tässä AI:n kierrokset:
- Vaihtoehto A: Pidä erikoismuuttujien merkkijonot tallessa
- Vaihtoehto B: Tallenna ne value typeina
- Vaihtoehto C: Lisää string-ohitukset määrittelyille
- Vaihtoehto D: Paikallakorjaus ForIn-opcodelle
- Vaihtoehto E: Sivukenttä alkuperäisille arvoille
- Vaihtoehto F: Muuta vain lineNum ja fileLineNum value typeiksi
- Vaihtoehto G: Erikoismappa ohituksille value typeissa
Mielenkiintoista oli AI:n sisäinen monologi. Joka toinen sekunti: "Yksinkertaisin tapa on…" "Odota, todellinen syy on…" "Ei, ensimmäinen ajatus oli paras…"
Miksi näin käy?
Claude-tyyppiset mallit on koulutettu näkemään monia kulmia. Ne tunnistavat, että ongelmalla voi olla useita toimivia ratkaisuja. Tässä tapauksessa useampi olisi uponnut.
Ongelma on puuttuva arviointikriteeri, kuten "vähiten muutoksia" tai "yhteensopivuus vanhan kanssa". AI pyörii loputtomasti vaihtoehdoissa. Se ei ole hidas – se on liiankin perusteellinen, mikä hidastaa.
Mitä lopulta tehtiin
Hyvä puoli: AI piti parhaana vaihtoehtoa B eniten (11/26 kertaa). Kehittäjä otti sen käyttöön – erikoismuuttujat value typeina – ja se toimi.
Tässä AI:n voima näkyy:
- Vianlöytö nopeammin kuin manuaalisesti
- Optimiratkaisun esiin kaivaminen (vaikka monen mutkan takaa)
- Reunaehtojen ja vaihtoehtojen läpikäynti
- Valmiit koodiehdotukset
Vinkkejä AI-avustajiin
Claude, ChatGPT tai muut apurit toimivat näin:
Diagnostiikka on vahvaa, päätökset heikompia. Kun se toistaa "mutta itse asiassa…", se tutkii tilaa. Hyödynnä – saat näkökulmia.
Aseta rajat etukäteen. Älä kysy "miten korjaan?", vaan "miten korjaan vähimmillä muutoksilla?" tai "mikä pienin fix toimii?". Se ohjaa AI:ta.
Kumppani, ei oraakkeli. Arvo on sen logiikassa, ei ensimmäisessä ehdotuksessa. Epäröinti on merkki: paneudu vaihtoehtoihin.
Tulevaisuus: vibekoodaus eteenpäin
NameOceanin Vibe Hostingissa pohdimme, miten upottaa AI saumattomammin workflowhun. Ei siksi, että AI päättäisi kaiken. Sen homma on avata mahdollisuuksia, kehittäjän valita.
Tulevat systeemit rankkaavat ratkaisuja projektin perusteella. Kuvatkaa: "B on paras, sopii arkkitehtuuriinne" eikä loputonta pyöritystä.
Yhteenveto
Epäröivä AI ei ollut rikki. Se vain pohti ääneen ilman päätöskehikkoa. Katso tuloksia: nopea diagnoosi, vaihtoehdot, paras fix. "Epäröinti" on läpinäkyvyyttä.
AI-avusteinen kehitys ei kaipaa täydellistä päättäväisyyttä. Tarvitaan syväsukellusta, selkeää logiikkaa ja luottamusta kehittäjään.
Seuraavalla kerralla, kun apuri vaihtaa mieltä, pysähdy. Se tekee juuri sitä, mitä siltä odotat: purkaa ongelman monelta kantilta.