Moonborn — Developers
Ensemble-Beziehungs-Graphen
Deklariere typisierte Kanten zwischen Personas — rival, ex-lover, mentor — und lass Multi-Persona-Prompts den Kontext aufnehmen.
Eine Besetzung ohne Beziehungen ist eine Liste von Monologen. Moonborns Ensemble-Graph kodiert, wer was über wen weiß.
Edge-Typen
Häufige Typen (per Workspace konfigurierbar; das ist das eingebaute Set):
family— parent / sibling / child / spouse / ex-spouseromantic— partner / ex-lover / unrequited / one-nightmentor— mentor / protégé / former-mentorpeer— colleague / collaborator / rivalpower— employer / employee / patron / clientsocial— friend / acquaintance / enemy / nemesis
Eine Kante deklarieren
await client.personas.createRelationship({
personaId: mert.id,
with: leyla.id,
type: 'ex-lover',
note: 'Co-Gründer, die im selben Quartal ein Unternehmen und eine Partnerschaft getrennt haben.',
});Kanten sind per Default bidirektional — beide Personas sehen die Beziehung in Multi-Persona-Sessions.
Den Graph abfragen
const rels = await client.personas.listRelationships({ id: mert.id });
for (const r of rels) {
console.log(`${r.type} → ${r.with.name}: ${r.note}`);
}Wie Prompts den Graph nutzen
Wenn Persona B der Sprecher in einer Session ist, die Persona A einschließt:
- Die Runtime holt die A↔B-Kante (falls vorhanden).
- Der Edge-Typ + Note werden in B's System-Prompt injiziert.
- B's Antwort reflektiert die Beziehung — ohne dass du sie neu formulierst.
Asymmetrische Kanten
Für Beziehungen, in denen jede Seite die andere unterschiedlich sieht:
// Mert sieht Leyla als ex-lover.
await client.personas.createRelationship({
personaId: mert.id,
with: leyla.id,
type: 'ex-lover',
note: 'Ich respektiere sie immer noch.',
bidirectional: false,
});
// Leyla sieht Mert als rival.
await client.personas.createRelationship({
personaId: leyla.id,
with: mert.id,
type: 'rival',
note: 'Hat meine Idee übernommen, sich nie entschuldigt.',
bidirectional: false,
});Das produziert eine Szene, in der ihre Interpretationen derselben geteilten Vergangenheit divergieren — nützliche narrative Spannung.
Limits
- Max 50 Kanten pro Persona (
engine.ensemble.max_edges, konfigurierbar). - Zyklen erlaubt; die Runtime löst Edge-Lookup pro Turn, sodass keine unendliche Expansion.
Tarif
Pro und höher.