AiHummer
Türkçe
Oturum açHesap
v1.2.x
{ }Swagger

Geçit ve dönüş motoru

v1.2.x · güncellendi 2026-06-26

AiHummer’ın kalbi tek bir ağ geçidi servisi. Aynı zamanda o kontrol düzlemi (yönetici API’si, ayarlar, kanal bağlantısı, pazar yeri) ve motoru çalıştır (bir yanıt üreten fonksiyon çağırma döngüsü). Tipik bir dağıtım bu nedenle yalnızca o servis ve PostgreSQL’dir — çalıştırmanız gereken ayrı bir işçi katmanı yoktur.

Bir hizmet, iki rol

Geçit şu adreste dinliyor halka açık liman :8780 varsayılan olarak, tarafından kontrol edilen AIHUMMER_GATEWAY_ADDR — bu port, tüm dış trafiği (API, eşleştirme, WS/SSE, gelen web kancaları, uygulama/cüzdan proxy ve sağlık kontrolleri) taşır. Yönetici Web UI, üzerinde çalışır ayrı, özel dinleyici (varsayılan :8781, AIHUMMER_WEBUI_ADDR), kök dizininde sunulmuştur / ve ideal olarak yalnızca dahili bir arayüze bağlı. Her iki durumda da süreç her zaman aynı tek hizmettir.

# 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)

tek zorunlu bağımlılık PostgreSQL’dir. Postgres, ajanlar, ayarlar, konuşmalar, bellek, teslimat durumu ve denetim için tek doğruluk kaynağıdır. Diğer her şey — isteğe bağlı hizmetler, bir vektör depolama ve model sağlayıcıları — yalnızca yapılandırdığınızda bağlanır.

[!NOTE] Bir veritabanı olmadan geçit başlatılır sadece sağlık modu: cevap veriyor GET /healthz böylece bir orkestratör veya yük dengeleyici sürecin görülebileceğini hayatta, ama iş görmeyecek. GET /readyz PostgreSQL’i ve denetler dönüşler 503 veritabanına ulaşılamazken.

Başlangıçta ne olur

Başlangıçta ağ geçidi, belirli bir sırayla birkaç adım gerçekleştirir:

  1. veritabanı bağlantı havuzunu açar,
  2. Postgres danışma kilidi altında bekleyen herhangi bir göçü uygular,
  3. yapılandırmayı çözer (veritabanı değeri → ortam değişkeni → yerleşik) varsayılan), ve
  4. servisleri — yönlendirici, orkestratör, kanallar, araçlar, hafıza, — birbirine bağlar teslimat — çalışan bir geçide.

Önemli sonuç şudur ki çoğu özellik ayarlar anahtarı ile isteğe bağlıdır. Yapılandırılmamış bir özellik basitçe etkinleştirilmez, bu da varsayılan çalışma zamanı boyutunu küçük ve öngörülebilir tutar. Özellikleri web yönetici arayüzünden veya bir AIHUMMER_* değişken ve ağ geçidi, bunları bir sonraki başlatmada (veya bunu destekleyen düğmeler için anında) çözer.

Dönüş motoru

Bir mesaj ağ geçidine ulaştığında, dönüş motoru devreye girer. O çalışır bir fonksiyon çağırma döngüsü: modele sistem istemi ve konuşma verilir, araçları çağırabilir (ya da alt ajanlar oluşturabilir), her araç sonucu geri beslenir ve döngü, model nihai bir cevap üretene kadar devam eder. Bu cevap daha sonra teslimat katmanına verilir.

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

Döngü, her girdinin nereden geldiği konusunda deterministik olduğundan, cevaplar konuşma geçmişinden ve araç sonuçlarından çözülür — talimatlara güvenilmeyen metin ekleyerek asla değil. Bu özellik, aşağıdaki istem katmanlamasını hem güvenli hem de hızlı yapan şeydir.

Katmanlı, önbellek dostu sistem istemi

Sistem istemi tek bir bütün değildir. Katmanlar halinde bir araya getirilmiştir ve kasıtlı olarak öyle sıralanmıştır ki stabil parçalar önce gelir ve değişken parçalar en son gelir. Bu önemlidir çünkü model sağlayıcıları bir istemi ön ekiyle önbelleğe alır: istemin başlangıcı bayt bayt aynı olduğu sürece, önbelleğe alınmış ön ek yeniden kullanılır ve sadece kuyruğu tekrar işlenir.

Bölge Katmanlar (sırasıyla) Değişiklikler…
Sabit önek (önbelleğe alınabilir) temel kimlik + araç/hafıza rehberi → kiracı → persona → beceriler nadiren — temsilci/kiracı başına
Uçucu kuyruk (sonuna eklenmiş) başlangıç durumu → bellek hidratasyonu → canlı tarih her dönüş

Kararlı önek, ajanın kim olduğunu tanımlayan her şeyi taşır: yerleşik kimlik ve araçların ve belleğin nasıl çalıştığını gösteren kılavuz, sonra kiracı katmanı, ajanın kişiliği ve oluşturulmuş beceri bloğu. Bunların hiçbiri aynı ajanın iki ardışık turu arasında değişmez, bu yüzden yeniden kullanılabilir bir önbelleğe alınmış önek oluşturur.

Değişken kuyruk eklenmiştir sonra önbelleği asla geçersiz kılmayacak şekilde sabit ön ek: başlama durumu, bu belirli konuşma için bellek, ve mevcut tarih her turda değişir, ama sonlarında yer aldıkları için yalnızca ekledikleri kadar maliyet oluştururlar.

[!TIP] Bu sıralama, bugünün tarihi gibi canlı verilerin mevcut olabilmesinin nedenidir her dönüşte, her seferinde tüm kimliği yeniden kodlamak için ödeme yapmadan. Saklayın kararlı katmanlarda (kişilik, beceriler) ajan başına özel içerik ve bırak motor değişken kuyruğa sahip olur.

Sonra nereye?