Älä anna AI-agentin rikkoa Odoota
Jatkuva riippuvuusanalyysi antaa koodausagentillesi elävän kartan Odoo-koodikannastasi — agentti voi kysyä "mikä hajoaa?" ennen jokaista muokkausta.
AI-agentit kirjoittavat nyt Odoo-moduuleja — ja rikkovat asioita itsevarmasti
AI-koodausagentit ovat aidosti hyödyllisiä Odoo-kehityksessä: ne luovat moduulirunkoja, laajentavat malleja ja kirjoittavat näkymiä ja testejä. Mutta jokainen kokenut Odoo-kehittäjä on nähnyt kolikon toisen puolen: agentti muokkaa itsevarmasti perittyä mallia, poistaa kentän tai muotoilee näkymän uusiksi — ja jokin hajoaa kahden moduulin päässä, koodissa, jota agentti ei koskaan avannut.
Tämä ei ole prompt-ongelma. Se on rakenteellinen ongelma.
Odoo-koodikanta on graafi, ei puu
Odoon voima tulee sen periytymiskoneistosta — ja juuri sama koneisto tekee siitä läpinäkymättömän AI-agentille:
_inherit- ja_inherits-delegointi laajentaa malleja moduulirajojen yli- näkymäperintä (XPath) muokkaa toisissa moduuleissa määriteltyjä näkymiä
- manifestin
depends-ketjut vetävät mukaan moduuleja, joita et koskaan avaa @api.depends-laskennalliset kentät luovat näkymättömiä datariippuvuuksia- OCA- ja community-addonit kytkeytyvät kaikkeen edellä mainittuun
Lopputulos: riippuvuudet ulottuvat moduuleihin, joita kukaan ei koskaan avannut. Koko graafi ei mahdu mihinkään konteksti-ikkunaan, eikä grep löydä epäsuoria kytköksiä. Kun agentti muokkaa perittyä mallia tai poistaa kentän, se ei näe muutoksen vaikutusaluetta — mitkä näkymät hajoavat, mitkä ohitukset (override) lakkaavat toimimasta, mitkä ketjun päässä olevat moduulit alkavat käyttäytyä väärin kaikessa hiljaisuudessa.
Ja koska koodi muuttuu joka minuutti agentin työskennellessä, kertaluonteinen analyysi vanhenee lähes heti.
Ratkaisu: elävä riippuvuusgraafi agentille MCP:n yli
Jatkuva riippuvuusanalyysi muuttaa koodikannan kyseltäväksi riippuvuusgraafiksi, joka pysyy ajan tasalla koodin muuttuessa. Graafi tarjoillaan koodausagentille Model Context Protocolin (MCP) yli, joten ennen jokaista muokkausta agentti voi kysyä rakenteellisia kysymyksiä:
- Mikä kutsuu tätä metodia — ja mikä ohittaa sen?
- Mitkä näkymät perivät tämän näkymän?
- Mikä hajoaa, jos muutan tätä kenttää?
- Mikä on tämän migraatioaskeleen vaikutus (esimerkiksi Odoo 19 → 20)?
Konkreettinen esimerkki: agenttia pyydetään poistamaan kenttä, josta tusina moduulia riippuu. Sokkona se poistaa kentän, ja vahinko paljastuu vasta ajon aikana. Graafin kanssa se selvittää ensin muutoksen vaikutuksen, näkee riippuvat näkymät ja laskennalliset kentät ja joko korjaa ne kaikki — tai kertoo, miksi muutos on luultua riskialttiimpi. Graafi pysäyttää virheen ennen muokkausta, ei vasta kaatumisen jälkeen.
Toimii agentilla, jota jo käytät
Toimintamalli on agenttiriippumaton: sama MCP-rajapinta toimii Claude Coden, Codexin ja Gemini CLI:n kanssa. Ei toimittajalukkoa — tiimisi käyttämä agentti, mikä tahansa niistä, saa pohjakseen Odoo-instanssisi ja sen addonien todellisen, ajantasaisen arkkitehtuurin.
Rehellisesti rajoista
Dynaamisen sovelluskehyksen staattinen analyysi on aina likiarvo. Dynaaminen kutsujen välitys ja ajonaikainen periytymisjärjestys ovat arvioita, eivät todistettuja tosiasioita. Mutta 90 % vaikutusalueesta ennen muokkausta voittaa siistin kaatumisen sen jälkeen.
Käytämme tätä itse
Softagram pyörittää omaa toimintaansa Odoolla, ja kehitämme omat moduulimme juuri näin: Softagram Analyzer rakentaa riippuvuusgraafin, MCP-palvelin tarjoilee sen koodausagenteillemme, ja uudelleenanalyysi pitää graafin ajan tasalla koodin muuttuessa. Tämä sivu kuvaa päivittäistä työtapaamme, ei konseptia.
Haluatko nähdä omat addonisi graafina?
Jos rakennat Odoo-moduuleja — integraattorina, kumppanina tai omassa tiimissä — näytämme mielellämme, mitä jatkuva riippuvuusanalyysi näkee sinun koodikannassasi.