Yksi agentti on yksikkö, jonka AiHummer asettaa keskustelun eteen. Jokaisella agentilla on persoona, oma malli, strukturoitu kehotus ja joukko taitoja, ja kaikki siihen tehtävät muutokset versioidaan. Agenteja hallitaan verkkohallintaliittymän kautta ja hallinta-API:n kautta osoitteessa /v1/admin/agents/*.
Tämä sivu käsittelee, mistä agentti koostuu, miten rakenteellinen “G3”-kehotus kootaan ja miten agentti voi turvallisesti muokata omaa profiiliaan.
Agenttirekisteri
Rekisteri on täydellinen CRUD-katalogi agenteista. Jokaiselle agentille määritellään identiteetti, persoonallisuus, malli, jolla se toimii, ja taidot, joita se voi käyttää. Koska portti on monivuokralaisratkaisu, agentit sijaitsevat työtilassa ja ne on eristetty kuten kaikki muutkin vuokralaisaineistot.
Persoona — agentin ääni ja käytös, muunnettuna talliksi,
välimuistille ystävällinen kerros järjestelmän kehotteessa.
Agenttikohtainen malli — jokainen agentti voi kiinnittää oman mallinsa ja tarjoajansa, joten
Halpa agentti ja lippulaiva-agentti voivat olla samassa työtilassa.
Taidot — agenttikohtaiset ja jaetut taidot muuttavat “Taidot”-lohkon muotoon
kehotus; ne kuvaavat kykyjä, eivät painoja.
[!NOTE]
Yksittäinen agenttimalli on riippumaton reitityksestä. Mallitasoinen reititys (yksinkertainen /
standardi / monimutkainen) valitsee malliluokan kierrokselle, kun taas yksittäinen agentti
malli on agentin oma oletus. Katso
Reititys.
Versiot, palautus ja kloonaus
Jokainen merkityksellinen muutos agenttiin tallennetaan muodossa versio. Tämä tekee agentin määrityksestä tarkastettavan ja palautettavan: voit tarkastella, mitä on muuttunut, peruuta aiempaan versioon, tai klooni agentti käyttää sitä uuden luomisen lähtökohtana. Versio- ja profiiliresurssit sijaitsevat alla /v1/admin/agents/* (profiili, osiot, taidot, versiot).
[!TIP]
Kloonaa toimiva agentti ennen suurta persoona- tai kehotteen uudelleenkirjoitusta. Jos uusi
jos suunta ei pidäkään paikkaansa, alkuperäinen on silti yhden palautuksen päässä.
Rakenteellinen “G3”-kehote
Yhden vapaatekstijärjestelmän kehotteen sijasta, AiHummer käyttää jäsennelty agenttiprofiili (sisäisesti “G3”). Henkilöllisyys on pilkkoutunut kenttiin sen sijaan että se olisi haudattu proosaan, ja loput kehotteesta on rakennettu nimetyistä osiot plus yksi perehdyttäminen lohko. Orkestroija muuntaa nämä kerrokselliseksi järjestelmäkehotteeksi, pitäen vakaat osat (identiteetti, persoona, osiot) välimuistiin tallennettavassa etuliitteessä ja lisäämällä muuttuvat tiedot viimeiseksi.
Rakenne tekee profiilin muokkaamisesta kenttä kerrallaan helppoa, version välisten erojen tarkastelusta yksinkertaista ja renderöinnistä ennustettavaa — piilotettua keittokirjamaisia kehotteita ei ole.
Asiakasta voidaan sallia muokata omaa profiiliaan käyttämällä itsekorjaustyökaluja — esimerkiksi osion hienosäätämiseksi tai sen perehdytyksen päivittämiseksi. Tämä on tarkoituksella suojattu:
Itse tehdyt muokkaukset käyvät läpi hyväksyntäportti: ehdotettu muutos kirjataan ja
on hyväksyttävä ihmiseltä ennen kuin se tulee voimaan. Hylätty muutos ei koskaan
sovellettiin.
Muutos tallennetaan uutena versio, joten itse muokkaus on yhtä tarkastettavissa
ja peruutettavissa kuten mikä tahansa manuaalinen muokkaus.
[!WARNING]
Itseeditointi on voimakasta. Pidä se hyväksyntäportin takana, jotta agentti ei voi
uudelleenkirjoittaa hiljaisesti omaa identiteettiään. Tarkastele ehdotettuja itse-editsauksia samalla tavalla kuin sinä
tarkistaa kaikki etuoikeutetut muutokset.
Sähköpostin salasanat menevät holviin
Jos agentin asetuksiin sisältyy sähköpostitunnuksia (mail-työkalua varten), salasana kirjoitetaan salattu tunnistetietovarasto, ei tallenneta profiiliin eikä lisätä kehotteeseen. Salaisuudet eivät koskaan päädy mallin kontekstiin.
Suorituskäytäntö: konteksti, istunnot ja lapsiagentit
Versiosta 1.3 alkaen agentilla on suorituskäytäntö — kenttä
runtime_policy hallinta-API:ssa (/v1/admin/agents luotaessa ja
päivitettäessä). Se on tiukasti validoitu JSON-olio, jossa "version": 1:
tyhjä {} palauttaa oletukset, kentän pois jättäminen päivityksessä säilyttää
aiemman käytännön, ja tuntemattomat kentät tai rajojen ulkopuoliset arvot
hylätään. Käytäntö ei myönnä työkaluja eikä laajenna oikeuksia — se asettaa
vain budjetit ja aikarajat. Agentin kloonaus ja vuoron siirto sille perivät
sen.
context — historiabudjetti: max_tokens, reserve_tokens ja
history_share määräävät, kuinka paljon historiaa pyyntöön sisältyy;
max_history_messages rajaa viesti-ikkunan, bootstrap_max_chars
profiililohkon koon. Kun konteksti on määritetty nimenomaisesti, vanhemmat
viestit tiivistetään yhteenvedoksi erissä ennen nykyisen pyynnön kokoamista.
pruning — vanhentuneiden työkalutulosten karsinta: iän mukaan
(ttl_seconds), viimeisimpiä vastauksia suojaten (keep_last_assistants),
pehmeä lyhennys (soft_trim_ratio, head_chars, tail_chars) ja täysi
korvaus placeholder-tekstillä, kun hard_clear_ratio ylittyy. Käyttäjän
tekstiin, kuviin ja tietokannan koko historiaan ei kosketa.
memory_flush — ennen tiivistystä työkaluton agentti kirjoittaa
lyhyen muistiinpanon tavoitteista, päätöksistä ja avoimista asioista
(soft_threshold_tokens); saman keskustelun kolme viimeisintä
muistiinpanoa lisätään kontekstiin tarkistamattomana viitteenä.
session — keskustelun elinkaari: idle_reset_minutes aloittaa uuden
kontekstin tauon jälkeen (raakahistoria säilyy), index_prune_after_days ja
index_max_entries poistavat vanhat keskustelut oletusluettelosta
poistamatta niitä. scope = per-peer (yksi keskustelu vahvistettua
käyttäjää kohden kaikissa kanavissa) tai per-channel-peer (erillinen
keskustelu kanavaa kohden).
children — lapsiagentit: max_depth (enintään 4), max_concurrent
(enintään 8 ajopuuta kohden), max_per_parent (enintään 5),
timeout_seconds (enintään 48 tuntia, ei koskaan pidempään kuin vanhempi) ja
archive_after_minutes — milloin päättyneet ajot poistuvat
oletusluettelosta. Arvot ohittavat tämän agentin osalta globaalit
AIHUMMER_SUBAGENT_MAX_DEPTH- ja AIHUMMER_SUBAGENT_TIMEOUT_SEC-asetukset.
max_iterations (1–256) — funktiokutsusilmukan askelraja tarkistetuille
skenaarioille, joissa on paljon delegointeja.
app — vain AiHummer-sovellukselle: reasoning_effort, service_tier
ja lyhyen vastauksen tila direct_completion (auto tai always, kun
max_tokens on enintään 4096 ja timeout_ms enintään 60 000).
interaction — nimenomaiset istunto-oikeudet: user_ids,
session_agent_ids, spawn_agent_ids, näkyvyys session_visibility
(self, agent tai granted), session_send, lapsikutsujen
työkalukiellot (child_tool_deny, child_leaf_tool_deny) ja
elevated_telegram_user_ids — user_ids-joukon osajoukko, joka saa pyytää
nimenomaisesti korotettua code_exec-suoritusta (hyväksyntöjä ei ohiteta).
Jokerimerkkejä tai koko vuokralaisen laajuisia oikeuksia ei ole.
Ylläpitäjän API
Agentteja ja heidän rakenteellisia profiilejaan hallinnoidaan admin-API:n kautta, joka on OIDC-suojattu ja tarkastettu:
Yksi **agentti** on yksikkö, jonka AiHummer asettaa keskustelun eteen. Jokaisella agentilla on persoona, oma malli, strukturoitu kehotus ja joukko taitoja, ja kaikki siihen tehtävät muutokset versioidaan. Agenteja hallitaan verkkohallintaliittymän kautta ja hallinta-API:n kautta osoitteessa `/v1/admin/agents/*`.
Tämä sivu käsittelee, mistä agentti koostuu, miten rakenteellinen "G3"-kehotus kootaan ja miten agentti voi turvallisesti muokata omaa profiiliaan.
## Agenttirekisteri
Rekisteri on täydellinen CRUD-katalogi agenteista. Jokaiselle agentille määritellään identiteetti, persoonallisuus, malli, jolla se toimii, ja taidot, joita se voi käyttää. Koska portti on monivuokralaisratkaisu, agentit sijaitsevat työtilassa ja ne on eristetty kuten kaikki muutkin vuokralaisaineistot.
- **Persoona** — agentin ääni ja käytös, muunnettuna talliksi,
välimuistille ystävällinen kerros järjestelmän kehotteessa.
- **Agenttikohtainen malli** — jokainen agentti voi kiinnittää oman mallinsa ja tarjoajansa, joten
Halpa agentti ja lippulaiva-agentti voivat olla samassa työtilassa.
- **Taidot** — agenttikohtaiset ja jaetut taidot muuttavat "Taidot"-lohkon muotoon
kehotus; ne kuvaavat kykyjä, eivät painoja.
> [!NOTE]
> Yksittäinen agenttimalli on riippumaton reitityksestä. Mallitasoinen reititys (yksinkertainen /
> standardi / monimutkainen) valitsee malliluokan kierrokselle, kun taas yksittäinen agentti
> malli on agentin oma oletus. Katso
> [Reititys](/fi/v1.0/concepts/routing).
## Versiot, palautus ja kloonaus
Jokainen merkityksellinen muutos agenttiin tallennetaan muodossa **versio**. Tämä tekee agentin määrityksestä tarkastettavan ja palautettavan: voit tarkastella, mitä on muuttunut, **peruuta** aiempaan versioon, tai **klooni** agentti käyttää sitä uuden luomisen lähtökohtana. Versio- ja profiiliresurssit sijaitsevat alla `/v1/admin/agents/*` (profiili, osiot, taidot, versiot).
> [!TIP]
> Kloonaa toimiva agentti ennen suurta persoona- tai kehotteen uudelleenkirjoitusta. Jos uusi
> jos suunta ei pidäkään paikkaansa, alkuperäinen on silti yhden palautuksen päässä.
## Rakenteellinen "G3"-kehote
Yhden vapaatekstijärjestelmän kehotteen sijasta, AiHummer käyttää **jäsennelty agenttiprofiili** (sisäisesti "G3"). Henkilöllisyys on **pilkkoutunut kenttiin** sen sijaan että se olisi haudattu proosaan, ja loput kehotteesta on rakennettu nimetyistä **osiot** plus yksi **perehdyttäminen** lohko. Orkestroija muuntaa nämä kerrokselliseksi järjestelmäkehotteeksi, pitäen vakaat osat (identiteetti, persoona, osiot) välimuistiin tallennettavassa etuliitteessä ja lisäämällä muuttuvat tiedot viimeiseksi.
Rakenne tekee profiilin muokkaamisesta kenttä kerrallaan helppoa, version välisten erojen tarkastelusta yksinkertaista ja renderöinnistä ennustettavaa — piilotettua keittokirjamaisia kehotteita ei ole.
```text
G3 profile
├── identity fields (decomposed: name, role, ...)
├── sections (named, ordered prompt blocks)
└── onboarding (first-run guidance)
```
## Itsensä muokkaaminen hyväksyntäportin takana
Asiakasta voidaan sallia **muokata omaa profiiliaan** käyttämällä itsekorjaustyökaluja — esimerkiksi osion hienosäätämiseksi tai sen perehdytyksen päivittämiseksi. Tämä on tarkoituksella suojattu:
- Itse tehdyt muokkaukset käyvät läpi **hyväksyntäportti**: ehdotettu muutos kirjataan ja
on hyväksyttävä ihmiseltä ennen kuin se tulee voimaan. Hylätty muutos ei koskaan
sovellettiin.
- Muutos tallennetaan uutena **versio**, joten itse muokkaus on yhtä tarkastettavissa
ja peruutettavissa kuten mikä tahansa manuaalinen muokkaus.
> [!WARNING]
> Itseeditointi on voimakasta. Pidä se hyväksyntäportin takana, jotta agentti ei voi
> uudelleenkirjoittaa hiljaisesti omaa identiteettiään. Tarkastele ehdotettuja itse-editsauksia samalla tavalla kuin sinä
> tarkistaa kaikki etuoikeutetut muutokset.
### Sähköpostin salasanat menevät holviin
Jos agentin asetuksiin sisältyy sähköpostitunnuksia (`mail`-työkalua varten), salasana kirjoitetaan **salattu tunnistetietovarasto**, ei tallenneta profiiliin eikä lisätä kehotteeseen. Salaisuudet eivät koskaan päädy mallin kontekstiin.
## Suorituskäytäntö: konteksti, istunnot ja lapsiagentit
Versiosta 1.3 alkaen agentilla on **suorituskäytäntö** — kenttä
`runtime_policy` hallinta-API:ssa (`/v1/admin/agents` luotaessa ja
päivitettäessä). Se on tiukasti validoitu JSON-olio, jossa `"version": 1`:
tyhjä `{}` palauttaa oletukset, kentän pois jättäminen päivityksessä säilyttää
aiemman käytännön, ja tuntemattomat kentät tai rajojen ulkopuoliset arvot
hylätään. Käytäntö ei myönnä työkaluja eikä laajenna oikeuksia — se asettaa
vain budjetit ja aikarajat. Agentin kloonaus ja vuoron siirto sille perivät
sen.
- **`context`** — historiabudjetti: `max_tokens`, `reserve_tokens` ja
`history_share` määräävät, kuinka paljon historiaa pyyntöön sisältyy;
`max_history_messages` rajaa viesti-ikkunan, `bootstrap_max_chars`
profiililohkon koon. Kun konteksti on määritetty nimenomaisesti, vanhemmat
viestit tiivistetään yhteenvedoksi erissä ennen nykyisen pyynnön kokoamista.
- **`pruning`** — vanhentuneiden työkalutulosten karsinta: iän mukaan
(`ttl_seconds`), viimeisimpiä vastauksia suojaten (`keep_last_assistants`),
pehmeä lyhennys (`soft_trim_ratio`, `head_chars`, `tail_chars`) ja täysi
korvaus `placeholder`-tekstillä, kun `hard_clear_ratio` ylittyy. Käyttäjän
tekstiin, kuviin ja tietokannan koko historiaan ei kosketa.
- **`memory_flush`** — ennen tiivistystä työkaluton agentti kirjoittaa
lyhyen muistiinpanon tavoitteista, päätöksistä ja avoimista asioista
(`soft_threshold_tokens`); saman keskustelun kolme viimeisintä
muistiinpanoa lisätään kontekstiin tarkistamattomana viitteenä.
- **`session`** — keskustelun elinkaari: `idle_reset_minutes` aloittaa uuden
kontekstin tauon jälkeen (raakahistoria säilyy), `index_prune_after_days` ja
`index_max_entries` poistavat vanhat keskustelut oletusluettelosta
poistamatta niitä. `scope` = `per-peer` (yksi keskustelu vahvistettua
käyttäjää kohden kaikissa kanavissa) tai `per-channel-peer` (erillinen
keskustelu kanavaa kohden).
- **`children`** — lapsiagentit: `max_depth` (enintään 4), `max_concurrent`
(enintään 8 ajopuuta kohden), `max_per_parent` (enintään 5),
`timeout_seconds` (enintään 48 tuntia, ei koskaan pidempään kuin vanhempi) ja
`archive_after_minutes` — milloin päättyneet ajot poistuvat
oletusluettelosta. Arvot ohittavat tämän agentin osalta globaalit
`AIHUMMER_SUBAGENT_MAX_DEPTH`- ja `AIHUMMER_SUBAGENT_TIMEOUT_SEC`-asetukset.
- **`max_iterations`** (1–256) — funktiokutsusilmukan askelraja tarkistetuille
skenaarioille, joissa on paljon delegointeja.
- **`app`** — vain AiHummer-sovellukselle: `reasoning_effort`, `service_tier`
ja lyhyen vastauksen tila `direct_completion` (`auto` tai `always`, kun
`max_tokens` on enintään 4096 ja `timeout_ms` enintään 60 000).
- **`interaction`** — nimenomaiset istunto-oikeudet: `user_ids`,
`session_agent_ids`, `spawn_agent_ids`, näkyvyys `session_visibility`
(`self`, `agent` tai `granted`), `session_send`, lapsikutsujen
työkalukiellot (`child_tool_deny`, `child_leaf_tool_deny`) ja
`elevated_telegram_user_ids` — `user_ids`-joukon osajoukko, joka saa pyytää
nimenomaisesti korotettua `code_exec`-suoritusta (hyväksyntöjä ei ohiteta).
Jokerimerkkejä tai koko vuokralaisen laajuisia oikeuksia ei ole.
## Ylläpitäjän API
Agentteja ja heidän rakenteellisia profiilejaan hallinnoidaan admin-API:n kautta, joka on OIDC-suojattu ja tarkastettu:
| Resurssi | Tarkoitus |
|---|---|
| `/v1/admin/agents` | Listaa, luo, päivitä, poista agentteja (CRUD) |
| `/v1/admin/agents/.../profile` | Rakenteellinen G3-profiili (identiteettikentät) |
| `/v1/admin/agents/.../sections` | Nimetyt kehotteen osiot |
| `/v1/admin/agents/.../skills` | Agenttikohtaiset taidot |
| `/v1/admin/agents/.../versions` | Versiohistoria, palautus ja kloonaus |
## Minne seuraavaksi
- Ymmärrä, miten agentit suorittavat vuoron ja luovat avustajia
[Orkestrointi ja aliedustajat](/fi/v1.0/concepts/orchestration-subagents).
- Katso, kuinka saapuva viesti saavuttaa tietyn agentin kohteessa
[Reititys](/fi/v1.0/concepts/routing).
- Anna agenteillesi pitkäkestoinen muisti
[Muisti (Einstein)](/fi/v1.0/concepts/memory-einstein).