Skip to main content

92 - AI agentic coding — praktiline seminar

Äriinfotehnoloogia töörühma seminar, TalTech 2026.
Andres Käver — courses.taltech.akaver.com


Taust: kes ma olen ja mida ma teen​

Õpetan TalTechis 5 ainet (~300 tudengit semestris): C#/ASP.NET Core, JavaScript full-stack (Vue/React/Angular + NestJS), Native Mobile, ja uus magistrikursus "Agentic Software Development". Haldan GitLab CE instansi ~300 tudengile, kirjutasin ai-proxy mis ruudib päringuid kohalike HPC mudelite, OpenRouteri ja Azure frontier-mudelite vahel. Ja arvestab kulusi.

Isiklik kogemus numbrites: AI-ga suudan hoida töös 10 projekti 2–3 asemel. See on 3–4× kordistaja. Aga pudelikael pole enam kood — pudelikael on pea. Pealelõunaks olen vaimselt läbi. Ja ma tunnetan seda ära, sest mul on 35 aastat kogemust. Tudengil seda filtrit pole.


1. Mudelite võrdlus — mida mille jaoks kasutada​

Frontier vs lokaalne: lühike tõde​

VõimekusFrontier (Opus / GPT / Gemini)Lokaalne 32B (Qwen 3.5)Lokaalne 7B
AutocompleteOverkillHeaHea
Koodi chat / Q&ASuurepäraneHeaRahuldav
Ühe faili genereerimineSuurepäraneHeaTalutav
Mitme faili redigeerimineSuurepäraneHabrasEbausaldusväärne
Agentic (planeeri → teosta → debugi)TöötabPuruneb 3–5 sammu järelEi tööta
Kontekstiaken256k–1M tokenit32k–128k tokenit8–32k tokenit
Tool use / function callingUsaldusväärneEbaühtlaneNõrk

Praktiline soovitus: Lokaalsed mudelid autocomplete'iks ja chat'iks. Frontier API kõigeks, mis nõuab planeerimist, mitme sammu täitmist või suure koodibaasi mõistmist. See vahe pole ajutine — see on füüsika. Frontier-mudelid on 10–50× suuremad.

Miks lokaalne siiski loeb​

  • Privaatsus. Avaldamata uurimistöö, andmestikud, grantide taotlused — midagi ei lahku masinast.
  • Latentsus. Autocomplete 30–50 tokenit/sek tundub kohesena. API round-trip lisab 200–500ms.
  • Kulu. Null eurot per token. 24/7.
  • Offline. Lennukis, serverruumis, Faraday puuris.

Mudelivalik 2026 kevadel​

RiistvaraMis jookseb
16–32 GB RAM7B–14B mudelid (Qwen 3.5 Coder 7B)
48–64 GB RAM27B–32B mudelid (Qwen 3.5 27B)
128 GB+ (Mac Ultra / X*5090 vmt.)70B mudelid Q4 kvantiseerimisel

Soovitan alustada: ollama pull qwen3.5:27b-q8_0 (kui masin kannatab) või qwen3.5:27b (kui ei).

Hinnavõrdlus (frontier API)​

MudelInputOutputTüüpiline "kirjuta skript" ülesanne
Claude Opus~$5/MTok~$25/MTok€0.50–5.00
Claude Sonnet~$3/MTok~$15/MTok€0.10–1.00
Kimi K2 turbo~$1.15/MTok~$8/MTok€0.05–0.50
Deepseek 3.2~$0.25/MTok~$0.38/MTok€0.01–0.10

Benchmarkide jaoks: swe-rebench.com


2. Kulude optimeerimine​

500€/kuu on palju. See viitab Opus-tasemel mudelite intensiivsele kasutusele. Konkreetsed strateeegiad:

Mudeli routing​

Mitte kõik ülesanded ei vaja kallimat mudelit. LiteLLM proxy (või sarnane) võimaldab:

  • Opus/GPT-o1 → ainult arhitektuuri planeerimine, keerukas multi-file refactoring
  • Sonnet/GPT-4o → igapäevane agentic töö, code review, selgitused
  • Haiku/Flash/Deepseek → lihtsad küsimused, boilerplate, dokumentatsioon
  • Lokaalne Qwen 32B → autocomplete, privaatne chat, offline töö

See routing vähendab kulu 3–10×.

Praktilised meetodid​

MeetodKokkuhoid
Lokaalne mudel autocomplete'iks (ollama)~€50–100/kuu
Sonnet Opuse asemel 80% ülesannetest~€200–300/kuu
Subscription (Claude Pro $20, Copilot $10) lihtsama töö jaoksvs API kulu
Kontekstiakna haldamine (väiksemad failid, fokusseeritud @mentions)~20–30%
Azure akadeemilised krediidid (kui asutus pakub)Tasuta
OpenRouter free tier mudelid rutiinülesanneteksTasuta

Peamine printsiip: autocomplete on odav (lokaalne), chat on keskmine (Sonnet), agentic on kallis (Opus). Enamik tööst on chat-tasemel.


3. IDE-sõltumatu lähenemine​

Lühike vastus: jah, on võimalik. Cursor ja Windsurf on lock-in. Alternatiivid:

CLI tööriistad (täielikult IDE-agnostilised)​

TööriistKirjeldusMudeli tugi
Claude CodeAnthropicu CLI agent. Kõige võimekam agentic tööriist 2026 seisuga.Anthropic API
AiderAvatud lähtekood, git-integratsioon, iga muudatus = commit.Kõik suured API-d + ollama

Mõlemad töötavad terminalis. Kõrval mis tahes editor — VS Code, JetBrains, Vim, Emacs.

VS Code pluginad (avatud lähtekood, provider-agnostilised)​

TööriistTugiEripära
Kilo CodeVS CodeAgentic + approval workflow, MCP tugi, kohalikud + frontier mudelid
Continue.devVS Code + JetBrainsAutocomplete + chat, ollama integratsioon
Roo CodeVS CodeCline'i fork, avatud lähtekood

Miks MCP on oluline IDE-agnostilisuse jaoks​

MCP (Model Context Protocol) on avatud standard AI ja väliste tööriistade ühendamiseks. Tööriist on vahetatav, MCP serverid (andmebaas, failisüsteem, API-d) jäävad samaks. Spec-driven development on samuti IDE-agnostiline by design — spec on markdown, implementatsioonitööriist on vahetatav.

Mida vältida​

  • Cursor — VS Code fork. Hea toode, aga: properitaarne, subscription lock-in, sinu sõltuvus nende ärimudelist.
  • Windsurf — sama lugu.
  • Nende omad mudelipakkujad — tihti routing läbi nende serverite, lisaks privaatsusküsimused.

4. SMIT-i (e-gov) rulesetid​

SMIT (Siseministeeriumi Infotehnoloogia- ja Arenduskeskus) on avaldanud oma Cursor AI reeglid ja agendi konfiguratsioonid GitHubis:

github.com/e-gov/cursor-prompts (MIT litsents)

Mida see sisaldab​

KaustSisu
rules/common/Keele-agnostilised: turvalisus (OWASP), komponentide disain, integratsioonimustrid
rules/java-common/Java 21+ koodistiil, SLF4J logimine, auditimine, jOOQ andmebaasipääs
rules/java-spring-boot/Spring Boot mustrid, retry/circuit breaker, TestContainers testimine
agents/AGENTS.md failid: Java (Spring Boot 4 + Gradle) ja Nuxt (Vue 3 + TypeScript) agendid
commands/Korduvkasutatavad prompt-mallid: code review workflow, "deslop" (AI-genereeritud üleliigse eemaldamine)

Kuidas kasutada​

# Kopeeri reeglid oma projekti
cp -r rules/* your-project/.cursor/rules/

# Või agendi konfiguratsioon
cp agents/java/AGENTS.md your-project/AGENTS.md

Reeglid on .mdc failid (Cursor-spetsiifiline formaat), aga sisu on ülekantav. Sama loogika töötab:

  • Claude Code → CLAUDE.md fail projekti juurkaustas
  • Kilo Code → .kilocoderules fail
  • Aider → .aider.conf.yml + convention-failid

Põhimõte on universaalne: defineeri koodistandardid, turvareeglid ja arhitektuurimustrid tekstifailina, mida AI agent loeb automaatselt. Tööriist on vahetatav, reeglid on püsivad.


5. Rakenduse kvaliteedi valideerimine​

AI-genereeritud kood on confidently wrong. See ei märgista ebakindlust. Funktsioon, mis vaikselt vahetab kaks maatriksi dimensiooni, annab õige kuju ja tüübiga väljundi — lihtsalt valed väärtused.

Valideerimisstrateegiad​

Tehniline valideerimine:

  • Teadaolevad sisendid. Testi andmetega, mille tulemust saad käsitsi kontrollida.
  • Võrdlus referentsimplementatsiooniga. Kui publitseeritud väärtused on olemas — kasuta neid.
  • Assert-laused. Liberaalselt. Iga eeldus, mida AI-kood teeb, peaks olema eksplitsiitne.
  • Sünteetilised andmed. Statistilise koodi puhul: genereeri teadaolevate omadustega andmestik enne päris andmete kasutamist.
  • Loe koodi, eriti matemaatikat. Ära lihtsalt jookse seda.

Arhitektuurne valideerimine:

  • Spec-driven development. Spec on kontrakt, mille vastu valideerida. Kui AI-genereeritud kood ei vasta spec'ile — spec on source of truth, mitte kood.
  • Code review (ka AI-ga). Lase teisel mudelil üle vaadata. Erinevad mudelid leiavad erinevaid vigu.
  • Tüübid ja linterid. TypeScript strict mode, mypy, clippy — staatilise analüüsi tööriistad püüavad kinni palju, mida silmaga ei näe.

Mis EI tööta:

  • "See kompileerub" ≠ "see on õige"
  • "Testid lähevad läbi" ≠ "testid on piisavad" (AI kirjutab teste, mis läbivad tema enda koodi)
  • "See näeb mõistlik välja" ≠ peer review

METR RCT uuring (2025) — hoiatav lugu​

16 kogenud open-source arendajat, 246 ülesannet.

  • Enne: arvasid, et AI vähendab aega 24%
  • Pärast: arvasid, et AI vähendas aega 20%
  • Tegelikkus: AI-ga oldi 19% aeglasemad

Tajuline lõhe enesehinnangu ja reaalsuse vahel on massiivne — ja see eksisteerib kogenud professionaalide juures.


6. Spetsifikatsioonimallid — spec-driven development​

Põhimõte​

Enamik arendajaid kirjutab koodi enne ja dokumenteerib hiljem. Spec-driven development pöörab selle ümber: spec on source of truth, AI kirjutab koodi.

Workflow: intent → spec → plaan → implementatsioon

Kolm peamist raamistikku​

OpenSpecSpec-KitBMAD
Repogithub.com/Fission-AI/OpenSpecgithub.com/github/spec-kitgithub.com/bmad-code-org/BMAD-METHOD
Setup-aeg5 minutit30 minutitPikk
ParimOlemasolev koodibaas (brownfield)Uus projekt (greenfield)Suur ettevõtte projekt
KeerukusMadalKeskmineKõrge
Sammu arv24Multi-agent

Vali OpenSpec kui töötad legacy koodiga (90% meist). Vali Spec-Kit kui alustad nullist ja tahad GitHubi toega lihtsat struktuuri. Vali BMAD kui projekt on päriselt suur.

Näidisspetsifikatsioon teadlasele​

## Task: IMU Data Processor

**Input:** CSV files from MPU6050 IMU sensor. Columns: timestamp_ms,
accel_x, accel_y, accel_z, gyro_x, gyro_y, gyro_z.
Sample rate ~100 Hz but not perfectly regular.

**Processing:**
1. Resample to exactly 100 Hz using linear interpolation
2. Apply complementary filter (alpha=0.98) to get roll and pitch
3. Detect "impact events" where total acceleration exceeds 3g
4. For each impact event, extract ±500ms window

**Output:**
- Cleaned CSV with added roll/pitch columns
- Matplotlib plot showing acceleration magnitude over time
with impact events marked
- JSON summary: number of impacts, timestamps, peak magnitudes

**Constraints:** Must handle files up to 2 GB. Single-threaded is fine.

See spec ON prompt. Mida konkreetsem spec, seda parem tulemus. Ebamäärane spec = drift regenereerimisel.

Kolm implementatsioonitaset​

  1. Spec-first — kirjuta spec, kasuta AI-arenduses, kustuta spec pärast. Kood on source of truth.
  2. Spec-anchored — spec jääb alles ka pärast implementeerimist. Kasuta edasi evolutsiooniks ja hoolduseks.
  3. Spec-as-source — ainult spec'i redigeerib inimene. Inimene ei puutu kunagi koodi.

7. Genereeritud koodist kiire ülevaate saamine​

Diagrammid​

TööriistPlussMiinus
PlantUMLDetailne, standardiseeritud, lai tugiEraldi renderdamine, keerukam süntaks
MermaidRenderdub otse markdownis (GitHub, GitLab, Docusaurus), lihtsamVähem detailne kui PlantUML
D2Ilusam väljund, layouti kontrollVähem tuntud

Praktiline soovitus: lase AI-l genereerida Mermaid diagramme — need renderduvad otse README-s ja dokumentatsioonis ilma lisatöötluseta.

Prompt: "Generate a Mermaid class diagram showing the main entities and their relationships in this codebase."

AI-põhised ülevaate meetodid​

MeetodKäsk / prompt
Koodibaasi selgitusclaude "Explain the architecture of this project" (Claude Code)
Küsi ilma muudatustetaKilo Code Ask mode / aider /ask
ADR post-hoc"Generate Architecture Decision Records for the key design decisions in this project."
Dependency ülevaade"List all external dependencies, their versions, and what they're used for."
End-to-end flow"Trace the complete request-response flow from the API endpoint /api/users to the database and back, referencing specific files and line numbers."

"Let the AI Explain" lähenemine​

Struktureeritud promptid end-to-end selgituste saamiseks oma koodibaasi kohta. Eesmärk: mitte koodi genereerimine, vaid olemasoleva koodi mõistmine. See on eriti kasulik siis, kui keegi teine (või AI) on koodi kirjutanud ja sina pead sellest aru saama.


8. Praktiline alustamine — otsustuspuu​

Kas vajad AI abi koodiga?
│
├─ Ainult autocomplete kirjutamise ajal?
│ └─ Continue.dev + ollama (Qwen 7B) — tasuta, lokaalne.
│
├─ Tahad olemasolevat koodi mõista / debugida?
│ └─ Continue.dev chat / Kilo Code Ask mode + ollama (32B) — tasuta.
│
├─ Kirjutad ühe skripti / funktsiooni?
│ ├─ Lihtne? → Kilo Code + lokaalne 32B
│ └─ Keerukas? → Kilo Code + Sonnet API (~€0.20)
│
├─ Mitme faili projekt?
│ └─ Claude Code / Kilo Code + Sonnet/Opus API. Lokaalsed frustreerivad.
│
├─ Tundlikud / piiratud andmed?
│ └─ Ainult lokaalsed mudelid. Erandeid ei ole.
│
└─ "Tahan lihtsalt koodist rääkida"
└─ claude.ai / ChatGPT tasuta tier. Setup pole vaja.

9. Quick start (5 minutit)​

# Paigalda ollama
curl -fsSL https://ollama.ai/install.sh | sh

# Tõmba mudel (vali RAM-i järgi)
ollama pull qwen3.5:27b-q8_0 # 20+ GB RAM
# või
ollama pull qwen3.5:27b # 16+ GB RAM
# või
ollama pull qwen2.5-coder:7b # 5+ GB RAM

# Proovi kohe
ollama run qwen3.5:27b-q8_0

Seejärel paigalda VS Code'is Continue.dev ja suuna see ollama peale.

Agentic koodi jaoks: paigalda Kilo Code VS Code'is, lisa provider http://localhost:11434/v1. Alusta Ask režiimist.


Viited ja lingid​

Tööriistad​

Spec-driven raamistikud​

e-gov rulesetid​

Benchmarkid​

Kursuse materjalid​

Uuringud​

  • Bastani et al. (2025). Generative AI without guardrails can harm learning. PNAS, 122(26).
  • Becker et al. (2025). Measuring the Impact of Early-2025 AI on Experienced Open-Source Developer Productivity. arXiv:2507.09089.
  • Bjork & Bjork (2020). Desirable difficulties in theory and practice. JARMAC, 9(4).

Viimati uuendatud: märts 2026. Lokaalsete mudelite maastik muutub kiiresti — kontrolli soovitusi praeguste benchmarkide vastu enne otsustamist.