Värav ja pöörlemismootor
AiHummeri süda on üksainus väravateenus. See on samal ajal ka juhtimistasand (admin API, seaded, kanali ühendamine, turuplats) ja keerake mootor (funktsiooni-kutsumise tsükkel, mis annab vastuse). Tavapärane juurutus on seega lihtsalt see üks teenus ja PostgreSQL — eraldi töölise kihti ei ole vaja käivitada.
Üks teenus, kaks rolli
Sild kuulab aadressil avalik port :8780 vaikimisi, kontrollitud AIHUMMER_GATEWAY_ADDR — see port kannab kogu välisliiklust (API, paaristamine, WS/SSE, sissetulevad webhookid, rakenduse/tasku vahendaja ja tervisekontrollid). Administraatori veebiliides töötab port eraldatud, privaatne kuulaja (vaikeväärtus :8781, AIHUMMER_WEBUI_ADDR), serveeritakse juurtee teel / ja ideaalis seotud ainult sisemise liidesega. Mõlemal juhul on protsess alati sama ühtne teenus.
# 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)
See ainus karm sõltuvus on PostgreSQL. Postgres on ainus tõeallikas agentide, seadete, vestluste, mälu, kohaletoimetamise staatuse ja auditi jaoks. Kõik muu — vabatahtlikud teenused, vektoripood ja mudelite pakkujad — on ühendatud ainult siis, kui te selle seadistate.
[!NOTE] Ilma andmebaasita käivitub värav ainult terviserežiim: see vastab
GET /healthznii et orkestreerija või koormuse tasakaalustaja saab näha, et protsess on elus, kuid see ei tee teenet.GET /readyzkontrollib PostgreSQL-i ja tagastab503kui andmebaas on kättesaamatu.
Mis juhtub käivitamisel
Käivitamisel teostab väravapunkt mõningaid samme rangelt kindlas järjekorras:
- avab andmebaasi ühenduse voo,
- rakendab kõiki ootel migratsioone Postgresi nõuandva lukustuse all,
- lahendab konfiguratsiooni (andmebaasi väärtus → keskkonnamuutuja → sisseehitatud) vaikimisi), ja
- ühendab teenused — ruuter, orkestreerija, kanalid, tööriistad, mälu, kohaletoimetamine — tööle suunatud väravasse.
Oluline tagajärg on see, et enamik funktsioone on valikulised ja neid saab lubada seadete võtme kaudu. Funktsioon, mis ei ole konfigureeritud, ei aktiveeru lihtsalt, mis hoiab vaikimisi käitamise väikese ja ennustatavana. Sa saad asju sisse lülitada veebihalduse kasutajaliidesest või AIHUMMER_* muutuja, ja värav lahendab need järgmisel käivitamisel (või kuumalt, nende nupude puhul, mis seda toetavad).
Pöördemootor
Kui sõnum jõuab väravasse, võtab pöördemootor üle. See töötab funktsiooni kutsumise tsükkel: mudelile antakse süsteemi käsklus ja vestlus, see võib kasutada tööriistu (või luua alamagente), iga tööriista tulemust süstematiseeritakse tagasi mudelile ning tsükkel jätkub, kuni mudel annab lõpliku vastuse. Seejärel antakse see vastuse edastamise kihile.
inbound message
└─▶ turn engine
├─ assemble layered system prompt
├─ call model ──▶ tool calls / sub-agents ──▶ tool results ─┐
│ ▲ │
│ └────────────────────────────────────────────────-─┘
└─ final answer ─▶ reliable delivery ─▶ originating channel
Kuna silmus on deterministlik selle suhtes, kust iga sisend pärineb, lahendatakse vastused vestluse ajaloost ja tööriistade tulemustest — mitte kunagi usaldamatut teksti juhiste hulka sisestades. See omadus teeb allpool oleva promptide kihistamise nii turvaliseks kui ka kiirendatud.
Kihiline, vahemällu sõbralik süsteemne prompt
Süsteemi käsk ei ole üksainus plokk. See on koostatud kihtidena, teadlikult järjestatult nii, et stabiilsed osad tulevad esimesena ja kõikuvad osad tulevad viimases. See on oluline, sest mudelitootjad salvestavad vahemällu prompti selle eesliite alusel: nii kaua kui prompti algus on bait baiti järel identne, kasutatakse vahemällu salvestatud eesliidet uuesti ja töödeldakse ainult lõppu.
| Tsoon | Kihid (järjekorras) | Muutused… |
|---|---|---|
| Stabiilne eesliide (vahemällu salvestatav) | põhiidentiteet + tööriista/mälu juhend → üürnik → isik → oskused | harva — agendi/üürniku kohta |
| Häiriv saba (lisas viimane) | töötajate sisseelamise staadium → mälu hüdreerimine → live-kuupäev | iga pöörde |
Stabiilne prefiks kannab kõike, mis määratleb kes agent on: sisseehitatud identiteeti ja juhiseid selle kohta, kuidas tööriistad ja mälu töötavad, seejärel üürnikukihi, agendi isiku ja renderdatud oskuste blocki. Ükski sellest ei muutu kahe järjestikuse sama agendi käigu vahel, seega moodustab see taaskasutatava vahemällu salvestatud prefiksi.
Volatiilne saba lisatakse pärast stabiilne eesliide täpselt nii, et see kunagi vahemälu ei tühistaks: sisseelamise olek, mälu, mis on selle konkreetse vestluse jaoks hüdreeritud, ja praegune kuupäev muutuvad kõiki kordi, kuid kuna need asuvad lõpus, maksavad nad ainult seda, mida lisavad.
[!TIP] See järjestus on põhjus, miks sellised reaalajas andmed nagu tänane kuupäev võivad esineda iga pöörde ilma kogu identiteeti uuesti kodeerimata iga kord. Hoia kohandatud igaagendi sisu stabiilsetes kihtides (persona, oskused) ja lase mootor omab volatiilset saba.
Kuhu järgmine
- Vaadake, kuidas üürnikud on isoleeritud Mitmeinimelisus ja idempotentsus.
- Õppige, kuidas vastuseid tagastatakse Usaldusväärne kohaletoimetamine ja taastamine.
- Valikulised funktsioonid töötavad kui Külgkorvid.