Vartai ir posūkio variklis
AiHummer širdis yra viena vartų paslauga. Tai tuo pačiu metu yra valdymo plokštuma (administratoriaus API, nustatymai, kanalo sujungimas, turgavietė) ir sukti variklį (funkcijos kvietimo ciklas, kuris generuoja atsakymą). Tipiška diegimo schema todėl yra tiesiog ta viena paslauga plius PostgreSQL — nėra atskiros darbuotojų pakopos, kurią jūs būtumėte priversti paleisti.
Viena paslauga, dvi funkcijos
Vartai klausosi viešas uostas :8780 numatytasis, kontroliuojamas AIHUMMER_GATEWAY_ADDR — šis prievadas priima visą išorinį srautą (API, susiejimas, WS/SSE, gaunami webhook’ai, programėlės/kišenės tarpininkas ir sveikatos patikrinimai). Administratoriaus internetinė vartotojo sąsaja veikia ant atskiras, privatus klausytojas (numatytasis :8781, AIHUMMER_WEBUI_ADDR), patiekiama šakniniame kelyje / ir idealiu atveju susietas tik su vidiniu sąsajos interfeisu. Bet kuriuo atveju procesas visada yra tas pats vienas paslaugas.
# 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)
Tas vienintelė griežta priklausomybė yra PostgreSQL. Postgres yra vienintelis tiesos šaltinis agentams, nustatymams, pokalbiams, atminčiai, pristatymo būklei ir audito įrašams. Viskas kita — pasirenkamos paslaugos, vektorinis duomenų saugyklos ir modelių tiekėjai — įjungiami tik tada, kai juos sukonfigūruojate.
[!NOTE] Be duomenų bazės vartai įsijungia tik sveikatai režimas: tai atsako
GET /healthztaigi orkestratorius arba apkrovos balansavimo įrenginys gali matyti, kad procesas yra gyvas, bet tai nepravers.GET /readyztikrina PostgreSQL ir grąžina503kol duomenų bazė yra nepasiekiama.
Kas vyksta paleidžiant
Paleidimo metu vartai atlieka keletą veiksmų griežta tvarka:
- atidaro duomenų bazės ryšių fondą,
- taiko bet kokius laukiančius migravimus pagal Postgres patarimų užraktą,
- sprendžia konfigūraciją (duomenų bazės vertė → aplinkos kintamasis → įmontuota numatytasis), ir
- sujungia paslaugas — maršrutizatorių, orkestratorių, kanalus, įrankius, atmintį, pristatymas — į veikiančią vartų sistemą.
Svarbi pasekmė yra ta, kad dauguma funkcijų įjungiamos per nustatymų raktą. Nesukonfigūruota galimybė paprasčiausiai nėra aktyvuojama, todėl numatytoji vykdymo aplinka išlieka maža ir nuspėjama. Galimybes įjungiate per žiniatinklio administratoriaus sąsają arba naudojant AIHUMMER_* kintamasis, o vartai juos išsprendžia kitą kartą paleidus (arba karštai, tiems reguliatoriams, kurie tai palaiko).
Posūkio variklis
Kai žinutė pasiekia vartus, veikimo variklis perima kontrolę. Jis vykdo funkcijos kvietimo ciklas: modeliui pateikiama sistemos užklausa ir pokalbis, jis gali naudoti įrankius (arba sukurti potarėjus), kiekvieno įrankio rezultatas grąžinamas atgal, ir ciklas tęsiamas, kol modelis pateikia galutinį atsakymą. Toks atsakymas tada perduodamas pristatymo sluoksniui.
inbound message
└─▶ turn engine
├─ assemble layered system prompt
├─ call model ──▶ tool calls / sub-agents ──▶ tool results ─┐
│ ▲ │
│ └────────────────────────────────────────────────-─┘
└─ final answer ─▶ reliable delivery ─▶ originating channel
Kadangi ciklas yra deterministinis dėl to, iš kur ateina kiekviena įvestis, atsakymai yra sprendžiami iš pokalbio istorijos ir įrankių rezultatų – niekada neįtraukiant nepatikimo teksto į instrukcijas. Ši savybė taip pat užtikrina, kad žemiau pateiktas užklausų sluoksniavimas būtų saugus ir greitas.
Sluoksniuota, talpyklai draugiška sistemos užklausa
Sistemos raginimas nėra vienas vieningas blokas. Jis suformuotas sluoksniais, sąmoningai išdėstytas taip, kad stabilios dalys ateina pirmiausia, o nepastovios dalys ateina paskutinės. Tai svarbu, nes modelio teikėjai talpina užklausą pagal jos prefiksą: kol užklausos pradžia yra bitas po bito identiška, talpinamas prefiksas naudojamas pakartotinai, ir tik užklausos galas apdorojamas iš naujo.
| Zona | Sluoksniai (tvarka) | Pakeitimai… |
|---|---|---|
| Stabilus priešdėlis (gali būti talpinama talpykloje) | pagrindinė tapatybė + įrankio/atminties vadovas → nuomininkas → asmenybė → įgūdžiai | retai — vienam agentui/nuomininkui |
| Nepastovi uodega (pridėta paskutinė) | įdarbinimo būsena → atminties hidracija → tiesioginė data | kiekviename posūkyje |
Stabilus prefiksas neša viską, kas apibrėžia kas yra agentas: integruotą tapatybę ir vadovą, kaip veikia įrankiai ir atmintis, tada nuomininko sluoksnį, agentės asmenybę ir pateiktą įgūdžių bloką. Viskas tai nesikeičia tarp dviejų iš eilės vykstančių tų pačių agentų posūkių, todėl tai sudaro pakartotinai naudojamą talpinamą prefiksą.
Nepastovioji uodega yra pridėta po stabilus priešdėlis tiksliai taip, kad niekada nepanaikintų talpyklos: įvedimo būsena, atmintis, užpildyta konkrečiam pokalbiui, ir dabartinė data keičiasi nuo ėjimo iki ėjimo, bet kadangi jie yra pabaigoje, jie kainuoja tik tiek, kiek prideda.
[!TIP] Ši tvarka yra priežastis, kodėl tokie gyvi duomenys kaip šiandienos data gali būti pateikiami kiekviename posūkyje nesumokant už visos tapatybės perkodavimą kiekvieną kartą. Laikykite individualizuotas turinys pagal agentą stabiliose sluoksniuose (persona, įgūdžiai) ir leisti variklis valdo nepastovų uodegą.
Kur toliau
- Pažiūrėkite, kaip nuomininkai yra izoliuoti Daugiabūtiškumas ir nepakartojamumas.
- Sužinokite, kaip grąžinami atsakymai Patikimas pristatymas ir atkūrimas.
- Pasirenkamos funkcijos vykdomos kaip Šoninės transporto priemonės.