AiHummer
Кыргызча
Кирүү
v1.0.x
{ }Swagger

Шлюз жана кезек кыймылдаткычы

v1.0.x · жаңыланды 2026-06-26

AiHummerдин жүрөгү — жалгыз шлюз кызматы. Ал бир убакта башкаруу-планы (админ API, жөндөөлөр, канал туташтыруу, маркетплейс) жана кезек кыймылдаткычы (жоопту өндүргөн функция-чакыруу циклы) болуп саналат. Демек, типтүү жайылтуу — жалаң ошол бир кызмат плюс PostgreSQL — иштетүүңүз талап кылынган өзүнчө жумушчу катмар жок.

Бир кызмат, эки роль

Шлюз демейки боюнча :8780 портун угат, AIHUMMER_GATEWAY_ADDR менен башкарылат. Орноткуч башка бош портту тандашы мүмкүн, бирок процесс дайыма ошол эле жалгыз кызмат.

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

Жалгыз катуу көз карандылык — PostgreSQL. Postgres — чындыктын жалгыз булагы: агенттер, жөндөөлөр, маектешүүлөр, эс, аутбокс жана аудит баары ошол жерде жашайт. Калгандардын баары — сайдкарлар, вектор сактагыч, билдирүү шинасы, модель провайдерлери — кошумча жана аларды конфигурациялаганда гана туташтырылат.

[!NOTE] Маалымат базасы жок болсо, шлюз ден-соолук-гана режиминде жүктөлөт: ал процесстин тирүү экенин оркестратор же жүк теңдөгүч көрө алышы үчүн GET /healthzке жооп берет, бирок кезектерди тейлебейт. GET /readyz PostgreSQLди текшерет жана маалымат базасы жетпегенде 503 кайтарат.

Иштеп баштаганда эмне болот

Иштеп баштаганда шлюз бир нече кадамды катуу тартипте аткарат:

  1. маалымат базасынын байланыш пулун ачат,
  2. Postgres advisory кулпусу астында каалаган күтүлүп жаткан миграцияларды колдонот,
  3. конфигурацияны чечет (маалымат базасынын мааниси → айлана-чөйрө өзгөрмөсү → орнотулган демейки), жана
  4. кызматтарды — роутер, оркестратор, каналдар, инструменттер, эс, жеткирүү — иштеп жаткан шлюзга туташтырат.

Маанилүү натыйжа — көпчүлүк функциялар жөндөө ачкычы аркылуу опт-ин. Конфигурацияланбаган мүмкүнчүлүк жөн гана активдештирилбейт, бул демейки рантаймды кичинекей жана болжолдуу кылат. Сиз нерселерди веб админ интерфейсинен же AIHUMMER_* өзгөрмөсү менен иштетесиз, жана шлюз аларды кийинки иштеп баштоодо чечет (же ысык, аны колдогон ынгайлаштыргычтар үчүн).

Кезек кыймылдаткычы

Билдирүү шлюзга жеткенде, кезек кыймылдаткычы милдетти өзүнө алат. Ал функция-чакыруу циклын иштетет: моделге тутум промпту жана маектешүү берилет, ал инструменттерди чакыра алат (же суб-агенттерди жаратат), ар бир инструмент натыйжасы кайра берилет, жана модель акыркы жоопту өндүргөнгө чейин цикл уланат. Ал жооп андан кийин жеткирүү катмарына берилет.

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

Цикл ар бир кириш кайдан келгенине карата детерминисттик болгондуктан, жооптор маектешүү тарыхынан жана инструмент натыйжаларынан чечилет — эч качан нускамаларга ишенимсиз текст киргизүү аркылуу эмес. Дал ушул касиет төмөндөгү промпт катмарлоосун коопсуз да, тез да кылат.

Катмарлуу, кэшке ыңгайлуу тутум промпту

Тутум промпту бир кесек эмес. Ал катмарларда чогултулат, атайылап ушундай иретте, ошондуктан туруктуу бөлүктөр биринчи, өзгөрмөлүү бөлүктөр акыркы келет. Бул маанилүү, анткени модель провайдерлери промптту анын префикси боюнча кэштешет: промпттун башы байт-байтка бирдей болсо, кэштелген префикс кайра колдонулат жана жалаң куйрук кайра иштетилет.

Зона Катмарлар (иретте) Качан өзгөрөт…
Туруктуу префикс (кэштелүүчү) базалык идентификация + инструмент/эс гиди → арендатор → персона → көндүмдөр сейрек — ар бир агент/арендатор боюнча
Өзгөрмөлүү куйрук (акыркы кошулат) онбординг абалы → эстин гидратациясы → тирүү дата ар бир кезекте

Туруктуу префикс агент ким экенин аныктаган баарын алып жүрөт: орнотулган идентификация жана инструменттер менен эс кантип иштээри жөнүндө гид, андан кийин арендатор катмары, агенттин персонасы жана рендерленген көндүмдөр блогу. Алардын эч бири бир эле агенттин эки удаалаш кезегинин ортосунда өзгөрбөйт, ошондуктан кайра колдонулуучу кэштелген префиксти түзөт.

Өзгөрмөлүү куйрук туруктуу префикстен кийин кошулат, дал ошол себептен ал эч качан кэшти жараксыз кылбайт: онбординг абалы, ушул конкреттүү маектешүү үчүн гидратацияланган эс жана учурдагы дата баары кезектен кезекке өзгөрөт, бирок алар аягында отургандыктан, алар кошкон нерсенин гана баасын төлөшөт.

[!TIP] Дал ушул ирет бүгүнкү дата сыяктуу тирүү маалымат ар бир кезекте бүтүндөй идентификацияны ар жолу кайра кодирлөөгө төлөбөстөн боло алышынын себеби. Ыңгайлаштырылган ар бир агент боюнча мазмунду туруктуу катмарларда (персона, көндүмдөр) кармаңыз жана өзгөрмөлүү куйрукту кыймылдаткычка ээ кылдырыңыз.

Андан ары кайда