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 CodeCLAUDE.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.