Ensemble relationships — çok karakterli sahnenin grafiği
Persona'lar arasında tipli, yönlü kenarlar — arkadaş, eski sevgili, mentor, rakip, ebeveyn-çocuk — sohbet çalışma zamanı bunları çok karakterli sahne istemlerine enjekte eder.
Ensemble (karakter topluluğu), Moonborn'un çok karakterli sahneleri nasıl ele aldığı katmandır. Açık ilişkiler olmadan, aynı oturumdaki iki persona birbirine doğru kayar — sesleri yakınsar, ayırt edilemez hale gelir. Ensemble katmanı, sohbet çalışma zamanına tur başına istemi oluştururken danışacağı bir grafik vererek bunu önler.
Bu sayfayı bitirdiğinde
- Bir ilişki kenarının JSON şeklini ve yerleşik 20 ilişki tipini bileceksin.
- Çalışma zamanının bir tur sırasında ilişki kenarını isteme nasıl enjekte ettiğini anlayacaksın.
- Asimetrik kenarları (A→B "mentor", B→A "öğrenci") ne zaman kullanacağını bileceksin.
- Ensemble katmanının ne yaptığı ve ne yapmadığı (sahne motoru değil) arasındaki sınırı görebileceksin.
Ön koşul: Soul/Self/Mask/Surface — ilişkiler persona'lar arasında kurulur.
Bir ilişki kenarının şekli
{
"personaId": "per_mert",
"with": "per_leyla",
"type": "ex-lover",
"note": "Aynı çeyrekte hem bir şirketi hem bir ortaklığı bölen iki kurucu.",
"bidirectional": true
}| Alan | Anlamı |
|---|---|
personaId | Kenarın çıkış noktası |
with | Kenarın hedef persona'sı |
type | Yerleşik veya özel ilişki tipi |
note | LLM'e enjekte edilen düz-yazı bağlam |
bidirectional | true ise B→A da aynı kenar; false ise asimetrik |
Yerleşik 20 ilişki tipi
| Kategori | Tipler (İngilizce kimlikler) |
|---|---|
| Yakın bağ | friend (arkadaş), ex-friend, acquaintance (tanış) |
| Aile | family, parent-child, sibling (kardeş) |
| Romantik | romantic-partner, ex-lover, spouse (eş) |
| İş | colleague (iş arkadaşı), boss (patron), subordinate (ast) |
| Mentor / öğrenci | mentor, mentee (öğrenci) |
| Çatışma | rival (rakip), adversary (hasım), enemy (düşman) |
| Mesafe | stranger (yabancı), acquaintance-once-met |
Özel tipler: engine.ensemble.types.{name} yapılandırma maddeleriyle (Team ve üzeri). Örn. co-founder, therapist-client, gm-pc (masaüstü RPG'lerde oyun yöneticisi ↔ oyuncu karakteri).
Asimetrik kenarlar — ne zaman
Çoğu ilişki simetriktir: arkadaşlık, kardeşlik, ortaklık. Ama bazı ilişkiler yönlüdür:
[
{ "personaId": "per_obi_wan", "with": "per_luke", "type": "mentor", "bidirectional": false },
{ "personaId": "per_luke", "with": "per_obi_wan", "type": "mentee", "bidirectional": false }
]mentor ↔ mentee, boss ↔ subordinate, parent-child (ebeveyn veya çocuk bakış açısı) — asimetrik. İki ayrı kenar oluştur; bidirectional: false ile.
Çalışma zamanı nasıl kullanır
Birden fazla persona ile oturum açtığında (ensemble: [...]), çalışma zamanı her tur istemi oluştururken:
- Mevcut konuşmacıyı belirler (örn. Mert).
- Bitişik ilişki kenarlarını çıkarır (Mert → Leyla
ex-lover, Mert → Alicolleague). - Sistem istemine düz yazı olarak enjekte eder:
Mert is currently speaking. Context for this scene:
- Mert and Leyla are ex-lovers. Note: "Aynı çeyrekte hem bir şirketi hem bir ortaklığı bölen iki kurucu."
- Mert and Ali are colleagues.LLM ilişkiyi düz yazı olarak görür, vektör olarak değil. Bu bilinçli olarak hafiftir — sahne durumu, sıra yönetimi, dallanan anlatı çalışma zamanına düşmez.
Kullanım örnekleri
Masaüstü RPG / interaktif kurgu
const session = await client.chat.sessions.create({
ensemble: ['per_detective', 'per_witness', 'per_lawyer'],
});Üç karakter aynı sahnede. Dedektif ↔ Tanık suspicious-of; Avukat ↔ Tanık protective-of; Dedektif ↔ Avukat rival. Sahne 30 tur sürer; karakterler kendi seslerinde kalır.
Sentetik kullanıcı paneli
const session = await client.chat.sessions.create({
ensemble: ['per_designer', 'per_dev', 'per_pm', 'per_marketer', 'per_support'],
});5 farklı kullanıcı persona'sı bir ürün özelliği hakkında görüş bildirir. Aralarında ilişki yok (stranger veya kenarsız) — her biri bağımsız bakış açısı. Detay: Sentetik kullanıcı paneli.
Marka temsilcileri
const session = await client.chat.sessions.create({
ensemble: ['per_support_agent', 'per_brand_voice'],
});Destek temsilcisi kullanıcıyla konuşur; marka sesi arka planda persona'ya "gölge inceleme" yapar. Asimetrik kenar: brand_voice → support_agent: reviewer.
Ensemble ile lineage — karıştırma
| Ensemble | Lineage | |
|---|---|---|
| Ne | Persona'lar arası ilişki grafiği | Persona'lar arası inşa zinciri |
| Ne zaman | Çalışma zamanı (çok karakterli oturum) | Üretim / refine |
| Kenar anlamı | "Bu iki persona aynı sahnede şu ilişkide" | "Bu persona şuradan fork'landı" |
| Kullanım | Karakterler birbirini tanır | Varyant aile yönetimi |
İkisi de grafiktir, ama farklı sorulara cevap verir.
API yüzeyi
POST /v1/personas/{id}/relationships— kenar oluşturGET /v1/personas/{id}/relationships— persona'nın topluluğunu listeleDELETE /v1/personas/{id}/relationships/{otherId}— kenar kaldırGET /v1/personas/{id}/ensemble— bu persona'dan erişilebilir tam alt grafikPOST /v1/chat/sessionsgövdesinde{ ensemble: [...] }— çok karakterli oturum
Plan gereksinimi
İlişki grafiği + çok karakterli sohbet: Pro ve üzeri. Özel ilişki tipleri: Team ve üzeri.
Dürüst kapsam
İlgili
İki veya daha çok persona aynı sahnede — uçtan uca eğitim.
Topluluğun deneyim araştırma paneli olarak kullanımı.
Sahne motoru entegrasyonu — Moonborn'un sınırı dışında ne yazılır.
Üretim-hazır topluluk — kenar ağırlığı, distinctiveness denetimi.