Uygulamayı aç
Moonborn — Developers

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
}
AlanAnlamı
personaIdKenarın çıkış noktası
withKenarın hedef persona'sı
typeYerleşik veya özel ilişki tipi
noteLLM'e enjekte edilen düz-yazı bağlam
bidirectionaltrue ise B→A da aynı kenar; false ise asimetrik

Yerleşik 20 ilişki tipi

KategoriTipler (İngilizce kimlikler)
Yakın bağfriend (arkadaş), ex-friend, acquaintance (tanış)
Ailefamily, parent-child, sibling (kardeş)
Romantikromantic-partner, ex-lover, spouse (eş)
İşcolleague (iş arkadaşı), boss (patron), subordinate (ast)
Mentor / öğrencimentor, mentee (öğrenci)
Çatışmarival (rakip), adversary (hasım), enemy (düşman)
Mesafestranger (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 }
]

mentormentee, bosssubordinate, 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:

  1. Mevcut konuşmacıyı belirler (örn. Mert).
  2. Bitişik ilişki kenarlarını çıkarır (Mert → Leyla ex-lover, Mert → Ali colleague).
  3. 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

EnsembleLineage
NePersona'lar arası ilişki grafiğiPersona'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ımKarakterler birbirini tanırVaryant aile yönetimi

İkisi de grafiktir, ama farklı sorulara cevap verir.

API yüzeyi

  • POST /v1/personas/{id}/relationships — kenar oluştur
  • GET /v1/personas/{id}/relationships — persona'nın topluluğunu listele
  • DELETE /v1/personas/{id}/relationships/{otherId} — kenar kaldır
  • GET /v1/personas/{id}/ensemble — bu persona'dan erişilebilir tam alt grafik
  • POST /v1/chat/sessions gö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

Çok karakterli sahneler

İki veya daha çok persona aynı sahnede — uçtan uca eğitim.

Open →
Sentetik kullanıcı paneli

Topluluğun deneyim araştırma paneli olarak kullanımı.

Open →
NPC sahne orkestrasyonu

Sahne motoru entegrasyonu — Moonborn'un sınırı dışında ne yazılır.

Open →
Topluluk ilişki grafikleri

Üretim-hazır topluluk — kenar ağırlığı, distinctiveness denetimi.

Open →