Шлюз і паваротны рухавік
Сэрца AiHummer складаецца з адзін сэрвіс шлюзаАдначасова гэта плоскасць_кіравання (адмін API, налады, падключэнне канала, рынак) і павярнуць рухавік (цыкл выкліку функцый, які генеруе адказ). Таму звычайная разгортка — гэта толькі адзін сэрвіс разам з PostgreSQL, асобны ўзровень рабочых выконваць не трэба.
Адна служба, дзве ролі
Шлюз слухае на публічны порт :8780 па змоўчанні, кіруецца AIHUMMER_GATEWAY_ADDR — гэты порт апрацоўвае ўсе знешнія злучэнні (API, парыраванне, WS/SSE, ўваходныя webhooks, праксі для прыкладання/кашалька і праверкі стану). Вэб-інтэрфейс адміністратара працуе на адмысловы, прыватны слухач (па змаўчанні :8781, AIHUMMER_WEBUI_ADDR), абслугоўваецца па карневым шляху / і ў ідэале звязаны толькі з унутраным інтэрфейсам. У любым выпадку працэс заўсёды адзінаразовы для сэрвісу.
# 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)
Гэта адзіная строгая залежнасць — PostgreSQLPostgres з’яўляецца адзіным крыніцай праўды для агентаў, наладак, размоў, памяці, стану дастаўкі і аўдыту. Усё астатняе — апцыянальныя сэрвісы, сховішча вектараў і пастаўшчыкі мадэляў — падключаецца толькі тады, калі вы гэта наладжваеце.
[!NOTE] Без базы дадзеных шлюз запускаецца ў толькі рэжым здароўя: гэта адказвае
GET /healthzтак што аркестратар або балансіровачны нагрузкі могуць бачыць, што працэс жывы, але гэта не дапаможа ў патрэбны момант.GET /readyzправярае PostgreSQL і вяртае503пакуль база дадзеных недаступная.
Што адбываецца пры запуску
Пры запуску шлюз выконвае некалькі крокаў у строгім парадку:
- адкрывае пул злучэнняў базы дадзеных
- выконвае ўсе чаканыя міграцыі пад кіраўніцтвам кансультацыйнай замкі Postgres
- вырашае канфігурацыю (значэнне базы дадзеных → пераменная асяроддзя → убудаванае змоўчання), і
- падключае службы — маршрутызатар, аркестратар, каналы, інструменты, памяць пастаўка — у працуючы шлюз
Важным наступствам з’яўляецца тое, што большасць функцый патрабуе актывацыі праз ключ у наладахМагчымасць, якая не настроена, проста не актывуецца, што робіць стандартны час выканання маленькім і прадказальным. Вы ўключаеце функцыі праз вэб-інтэрфейс адміністратара або з дапамогай AIHUMMER_* зменны, і шлюз вырашае іх пры наступным запуску (ці на хаду, для ручак, якія гэта падтрымліваюць).
Паваротны рухавік
Калі паведамленне дасягае шлюза, за працу прымаецца рухавік пераключэння. Ён выконвае цыкл выкліку функцыіМадэлі даецца сістэмны запыт і размова, яна можа выклікаць інструменты (ці ствараць пад-агентаў), вынікі кожнага інструмента вяртаюцца назад, і цыкл працягваецца, пакуль мадэль не дасць канчатковы адказ. Гэты адказ затым перадаецца слою дастаўкі.
inbound message
└─▶ turn engine
├─ assemble layered system prompt
├─ call model ──▶ tool calls / sub-agents ──▶ tool results ─┐
│ ▲ │
│ └────────────────────────────────────────────────-─┘
└─ final answer ─▶ reliable delivery ─▶ originating channel
Паколькі цыкл вызначальны ў адносінах да таго, адкуль паступае кожны ўваход, адказы атрымліваюцца з гісторыі размоў і вынікаў інструментаў — ніколі не шляхам устаўкі недавернага тэксту ў інструкцыі. Гэта ўласцівасць робіць ніжэйпрыгледжаную шматслойную падрыхтоўку запытаў бяспечнай і хуткай.
Слаісты, дружалюбны да кэша сістэмны запыт
Сістэмны запыт не з’яўляецца адзіным блокам. Ён сабраны пластамі, наўмысна размешчанымі ў пэўным парадку, каб спачатку ідуць стабільныя часткі, а ў канцы — нестабільныяГэта важна, таму што пастаўшчыкі мадэляў захоўваюць падказку па яе прэфіксе: пакуль пачатак падказкі аднолькавы па байтах, захаваны прэфікс выкарыстоўваецца паўторна, а толькі хвост пераапрацоўваецца.
| Зона | Слаі (у парадку) | Змены |
|---|---|---|
| Стабільны прэфікс (запасны) | асноўная ідэнтычнасць + кіраўніцтва па інструментах/памяці → арандатар → персона → навыкі | рэдка — на агента/арэндатара |
| Непрадказальны хвост (дададзена ў канцы) | стан інтэграцыі → рэанімацыя памяці → дата прамой трансляцыі | кожны паварот |
Стабільны прэфікс змяшчае ўсё, што вызначае хто такі агент: убудаваную асобу і кіраўніцтва па працы інструментаў і памяці, затым пласт арандатара, персону агента і блок адлюстраваных навыкаў. Нішто з гэтага не змяняецца паміж двума паслядоўнымі ходамі таго ж агента, таму ён утварае паўторна выкарыстоўваемы захаваны прэфікс.
Хвалісты хвост дададзены пасля стабільны прэфікс дакладна так, каб ён ніколі не робіў кэш несапраўдным: стан адаптацыі, памяць, загружаная для канкрэтнай размовы, і бягучая дата змяняюцца з ходу ў ход, але паколькі яны знаходзяцца ў канцы, яны каштуюць толькі тое, што дадаюць.
[!TIP] Гэтым парадкам тлумачыцца, чаму ў жывы дадзены можна ўключыць такія элементы, як сённяшняя дата. кожны паварот без аплаты за паўторнае кадзіраванне ўсёй ідэнтычнасці кожны раз. Захоўвай асабісты кантэнт для кожнага агента ў стабільных пластах (персона, навыкі) і дазваляе двігаль валодае нестабільным хвастом
Куды далей
- Глядзіце, як арандатароў ізалююць у Шматкарыстальніцкі рэжым і ідэмпотэнтнасць.
- Даведайцеся, як вяртаюцца адказы ў Надзейная дастаўка і аднаўленне.
- Дадатковыя магчымасці працуюць як Бакавыя калёсы.