AiHummer
Suomi
Kirjaudu sisäänTili
v1.2.x
{ }Swagger

Verkkosilta ja kääntömoottori

v1.2.x · päivitetty 2026-06-26

AiHummerin sydän on yksi yhdyskäytäväpalvelu. Se on samalla ohjaustaso (ylläpitäjän API, asetukset, kanavan kytkentä, markkinapaikka) ja käännä moottori (funktiokutsusilmukka, joka tuottaa vastauksen). Tyypillinen käyttöönotto on siis juuri tuo yksi palvelu plus PostgreSQL — erillistä työntekijäkerrosta ei tarvitse ajaa.

Yksi palvelu, kaksi roolia

Portti kuuntelee osoitteessa julkinen satama :8780 oletuksena, hallitsema AIHUMMER_GATEWAY_ADDR — tämä portti kuljettaa kaiken ulkoisen liikenteen (API, pairaus, WS/SSE, saapuvat webhookit, sovellus/tasku-proxy ja terveystarkastukset). Hallinta-Web-käyttöliittymä toimii portissa erillinen, yksityinen kuuntelija (oletus :8781, AIHUMMER_WEBUI_ADDR), tarjoillaan juuripolussa / ja mieluiten sidottuna vain sisäiseen rajapintaan. Joka tapauksessa prosessi on aina sama yksittäinen palvelu.

# gateway.env — the only required setting
AIHUMMER_DATABASE_URL=postgres://user:pass@localhost:5432/aihummer?sslmode=disable
# Admin Web UI after start at http://localhost:8781/ (the private Web UI listener)

Se ainoa kova riippuvuus on PostgreSQL. Postgres on ainoa totuuden lähde agenteille, asetuksille, keskusteluille, muistille, toimitustilalle ja tarkastukselle. Kaikki muu — valinnaiset palvelut, vektorivarasto ja mallintoimittajat — liitetään vain, kun määrität ne.

[!NOTE] Ilman tietokantaa portti käynnistyy vain terveystila: se vastaa GET /healthz joten orkestroija tai kuormantasaaja voi nähdä prosessin olevan elossa, mutta se ei palvele tarkoituksia. GET /readyz tarkistaa PostgreSQL:n ja palauttaa 503 sillä aikaa kun tietokantaan ei päästä.

Mitä tapahtuu käynnistyksessä

Käynnistyksen yhteydessä portti suorittaa muutamia vaiheita tiukassa järjestyksessä:

  1. avaaa tietokantayhteyspoolin,
  2. soveltaa kaikkia odottavia migraatioita Postgresin neuvoa-antavan lukon alaisena,
  3. ratkaisee määrityksen (tietokannan arvo → ympäristömuuttuja → sisäänrakennettu) oletus), ja
  4. kytkee palvelut — reitittimen, orkestroijan, kanavat, työkalut, muistin, toimitus — käynnissä olevaan porttiin.

Tärkeä seuraus on se, että useimmat ominaisuudet ovat valinnaisia asetusten avaimen kautta. Ominaisuus, jota ei ole määritetty, ei yksinkertaisesti aktivoidu, mikä pitää oletusajonaikaisen suoritusympäristön pienenä ja ennustettavana. Voit ottaa ominaisuuksia käyttöön verkkohallinta-UI:n kautta tai AIHUMMER_* muuttuja, ja portti ratkaisee ne seuraavassa käynnistyksessä (tai kuumana niille nupille, jotka tukevat sitä).

Käännömoottori

Kun viesti saavuttaa portin, kääntömoottori ottaa ohjat. Se suorittaa funktion kutsumisen silmukka: mallille annetaan järjestelmän kehotus ja keskustelu, se voi käyttää työkaluja (tai luoda aliedustajia), kunkin työkalun tulos palautetaan, ja silmukka jatkuu, kunnes malli tuottaa lopullisen vastauksen. Tämä vastaus luovutetaan sitten toimituskerrokselle.

inbound message
   └─▶ turn engine
         ├─ assemble layered system prompt
         ├─ call model ──▶ tool calls / sub-agents ──▶ tool results ─┐
         │       ▲                                                    │
         │       └────────────────────────────────────────────────-─┘
         └─ final answer ─▶ reliable delivery ─▶ originating channel

Koska silmukka on deterministinen sen suhteen, mistä kukin syöte tulee, vastaukset ratkaistaan keskusteluhistoriasta ja työkalujen tuloksista — ei koskaan lisäämällä epäluotettavaa tekstiä ohjeisiin. Tämä ominaisuus tekee myös alla olevasta kehotteen kerrostamisesta turvallisen sekä nopean.

Monikerroksinen, välimuistia suosiva järjestelmäkehotus

Järjestelmän kehotetta ei ole yhdessä kappaleessa. Se koostetaan kerroksittain, tarkoituksellisesti järjestettynä siten, että vakaat osat tulevat ensin ja epävakaat osat tulevat viimeiseksi. Tämä on tärkeää, koska mallin tarjoajat välimuistittavat kehotteen sen etuliitteen perusteella: kunhan kehotteen alku on tavu tavu -identtinen, välimuistissa olevaa etuliitettä käytetään uudelleen ja vain loppuosa käsitellään uudelleen.

Vyöhyke Kerrokset (järjestyksessä) Muutokset…
Vakaa etuliite (välimuistissa säilytettävä) perusidentiteetti + työkalu/muistio-opas → vuokralainen → persoona → taidot harvoin — per agentti/vuokralainen
Haihtuva häntä (liitetty viimeiseksi) perehdytystila → muistin täyttö → julkaisupäivä jokaisessa käännöksessä

Vakaa etuliite sisältää kaiken, mikä määrittää kuka agentti on: sisäänrakennetun identiteetin ja ohjeen siitä, miten työkalut ja muisti toimivat, sitten vuokralaiskerroksen, agentin persoonan ja renderöidyn taitolohkon. Mikään näistä ei muutu kahden peräkkäisen saman agentin vuorotuksen välillä, joten siitä muodostuu uudelleenkäytettävä välimuistissa oleva etuliite.

Heikkohäntä liitetään jälkeen vakio-etuosa tarkasti niin, että se ei koskaan kumoa välimuistia: perehdyttämistila, tälle tietylle keskustelulle ladattu muisti ja nykyinen päivämäärä muuttuvat vuorosta toiseen, mutta koska ne ovat lopussa, ne maksavat vain sen, mitä ne lisäävät.

[!TIP] Tämä järjestys on syy siihen, miksi live-tiedot, kuten tämän päivän päivämäärä, voivat olla läsnä jokaisen käännöksen ilman, että maksaisin koko identiteetin uudelleenkoodaamisesta joka kerta. Säilytä räätälöityä agenttikohtaista sisältöä vakaissa kerroksissa (persoonallisuus, taidot) ja anna moottori omistaa epävakaan hännän.

Minne seuraavaksi