Mikä on AI-agentti?
Moduulissa 2 käytimme aliagentteja (Documentation Agent, Spec Agent, Review Agent) — erikoistuneita rooleja selkeillä rajoilla. Nyt siirrymme täysiin AI-agentteihin, jotka suunnittelevat, toimivat ja oppivat itsenäisesti.
Aliagenteista täysiin agentteihin
AI-agentti
AI-agentti on LLM-silmukka, joka pystyy suunnittelemaan vaiheita, kutsumaan työkaluja, tallentamaan hyödyllistä tilaa ja jatkamaan kunnes tavoite on saavutettu. Toisin kuin aliagentit, jotka suorittavat yhden vaiheen, täysi agentti hallitsee koko tehtävän alusta loppuun.
Aliagentin ja täyden agentin ero
| Aspekti | Aliagentin (Moduuli 2) | Täysi agentti (Moduuli 3) |
|---|---|---|
| Laajuus | Yksi työnkulun vaihe | Koko tavoite alusta loppuun |
| Työkalut | Luku/kirjoitus tiedostot | CLI, API:t, haku, koodin suoritus |
| Muisti | Session-konteksti | Pysyvä muisti suoritusten välillä |
| Autonomia | Ihminen käynnistää jokaisen vaiheen | Suunnittelee ja suorittaa itsenäisesti |
Agentin ydinkyvykkyydet
1. Suunnittelu (Planning)
Agentti pilkkoo tavoitteen toimenpiteiksi:
"Korjaa autentikaatiobugi"
→ Tutki virheilmoitus
→ Etsi relevantti koodi
→ Ymmärrä juurisyy
→ Ehdota korjaus
→ Toteuta + testaa
2. Työkalu (Tool use)
Agentti käyttää ulkoisia työkaluja:
- Tiedoston luku/kirjoitus
- Shell-komentojen suoritus
- API-kutsut
- Tietokantakyselyt
- Web-haku
3. Muisti (Memory)
Agentti muistaa kontekstin ja aiemmat päätökset:
- Työmuisti — nykyinen tehtävä ja havainnot
- Episodinen muisti — aiemmat suoritukset ja opitut asiat
- Tietomuisti — indeksoidut dokumentit ja data (RAG)
4. Delegointi (Delegation)
Agentti voi antaa alitehtäviä erikoistuneille agenteille:
Pääagentti: "Korjaa tämä bugi"
→ Tutkija-agentti: "Kartoita koodipolku"
→ Korjaaja-agentti: "Tee muutos"
→ Testaaja-agentti: "Aja testit"
Pro-vinkki
Hyvä agentti on auditoitava: jokaiselle toiminnolle pitäisi pystyä vastaamaan "miksi agentti teki tämän?". Jos et voi seurata agentin päättelyketjua, agentti ei ole tuotantovalmis.
Milloin käyttää agenttia?
| Tilanne | Ratkaisu |
|---|---|
| Yksinkertainen koodin generointi | Copilot/Cursor riittää |
| Yksittäinen tiedoston muokkaus | AI-IDE riittää |
| Monivaiheinen tehtävä (tutkimus → toteutus → testit) | Agentti |
| Koko feature alusta loppuun | Agentti |
| Jatkuva monitorointi ja reagointi | Agentti |
Agentin turvallisuus
Autonomia tuo riskejä. Agentin turvallisuus perustuu:
- Sääntöihin — AGENTS.md rajoittaa mitä agentti saa tehdä
- Estettyihin toimintoihin — Tietyt komennot ovat kiellettyjä
- Hyväksyntäportteihin — Kriittiset toiminnot vaativat ihmisen hyväksynnän
- Iteraatiorajoihin — Agentti ei saa luupata loputtomasti
# Estetyt komentokuviot
BLOCKED_PATTERNS = [
"rm -rf",
"drop table",
"delete from",
"git push --force",
"chmod 777",
]
def is_blocked(command: str) -> bool:
"""Tarkista onko komento estetty."""
lower = command.lower()
return any(pattern in lower for pattern in BLOCKED_PATTERNS)Agentin turvallisuuskerrokset
Agentin turvallisuus rakennetaan kerroksittain: 1) Projektisäännöt (AGENTS.md), 2) Estetyt komennot (blocklist), 3) Hyväksyntäportit (kriittiset toiminnot), 4) Iteraatiorajat (max kierrokset). Jokainen kerros on itsenäinen — vaikka yksi pettäisi, muut suojaavat.
Mikä erottaa täyden AI-agentin aliagenteista?
Suunnittele oma agentti
Suunnittele AI-agentti todelliseen tarpeeseen: 1) Mikä on agentin tavoite? 2) Mitä työkaluja se tarvitsee? 3) Mitä muistia se käyttää? 4) Mitkä ovat turvallisuusrajoitteet? 5) Milloin se tarvitsee ihmisen hyväksyntää? Kirjoita suunnitelma 1 sivulle.
Yhteenveto
- AI-agentti = LLM-silmukka + suunnittelu + työkalut + muisti
- Aliagentit ovat osa agenttia, eivät sen korvike
- Autonomia vaatii turvallisuuskerroksia
- Jokaisen agentin toiminnon pitää olla auditoitava
- Seuraavaksi pureudumme agenttisilmukkaan ja sen arkkitehtuuriin