App öffnen
Moonborn — Developers

Baue deine erste Persona

Vom Einzeiler-Intent zu einer voll auditierten, vierschichtigen Persona mit aufgezeichnetem Voice Fingerprint — in fünf Minuten.

Dieses Tutorial zeigt POST /v1/personas von Anfang bis Ende: einen API-Key bekommen, einen Intent senden, die Response lesen und die Persona später wiederfinden. Alles andere in den Docs baut auf diesem Loop auf.

1. Einen API-Key holen

Melde dich in deinem Workspace an, öffne Settings → API keys → New key. Zwei Prefix-Konventionen:

  • sk_test_* — an einen Test-Workspace gebunden; isoliert von Produktionsdaten.
  • sk_live_* — Produktion. Behandle ihn wie ein Datenbank-Passwort.

Speichere den Key in einer Environment-Variable, damit er nicht in deiner Shell-History landet:

export MOONBORN_API_KEY=sk_live_xxxxxxxxxxxxxxxx

2. Eine Persona generieren

Ein einzelner POST-Call übergibt einen Intent an die sechsstufige Generation Pipeline. workspaceId ist das einzige andere Pflichtfeld; alles andere hat einen vertretbaren Default.

curl -X POST https://api.moonborn.co/v1/personas \
  -H "Authorization: Bearer $MOONBORN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "intent": "Ein 34-jähriger Gründer aus Istanbul. Brillant, aber rastlos. Versteckt Imposter-Syndrom hinter unermüdlichem Momentum.",
    "workspaceId": "ws_..."
  }'
import Moonborn from '@moonborn/sdk';
 
const client = new Moonborn({ apiKey: process.env.MOONBORN_API_KEY });
 
const persona = await client.personas.createPersona({
  intent:
    'Ein 34-jähriger Gründer aus Istanbul. Brillant, aber rastlos. Versteckt Imposter-Syndrom hinter unermüdlichem Momentum.',
  workspaceId: 'ws_...',
});
 
console.log(persona.id, persona.status, persona.pipelineRunId);
import os
from moonborn import Moonborn
 
client = Moonborn(api_key=os.environ["MOONBORN_API_KEY"])
 
persona = client.personas.create_persona(
    intent="Ein 34-jähriger Gründer aus Istanbul. Brillant, aber rastlos.",
    workspace_id="ws_...",
)
 
print(persona.id, persona.status, persona.pipeline_run_id)

Die Response ist bewusst schlank:

{
  "id": "persona_01H...",
  "status": "active",
  "pipelineRunId": "run_01H..."
}

Die Persona selbst — Soul, Self, Mask, Surface — ist jetzt in deinem Workspace. Die pipelineRunId ist die Brotkrume zur Audit-Spur, falls du Step-Latenzen und Provider-Routen sehen willst.

3. Die Persona zurücklesen

const detail = await client.personas.getPersona({ id: persona.id });
console.log(detail.surface.name.display);
console.log(detail.mask.signaturePhrases);
console.log(detail.voiceFingerprintId);

Was du zurückbekommst, ist das volle vierschichtige Dokument plus Runtime-Hints (Voice Fingerprint ID, Distinctiveness-Score, Audit-Verdict). Für das Schema siehe den GET /v1/personas/{id}-Endpoint.

4. Pipeline streamen (optional)

Für eine UX, die den Pipeline-Fortschritt zeigt, gib stream: true mit. Die Response wird ein SSE-Stream von step.started / step.completed / pipeline.completed-Events. Den Read-Loop findest du im Streaming patterns guide.

Was du nicht tun musstest

  • Ein Modell wählen. Moonborn nahm claude-opus-4-7 für den Soul-Draft und claude-sonnet-4-6 für den Rest, beide konfigurierbar auf Org/Workspace-Scope.
  • Den Audit fahren. Er lief automatisch; ein 4.2/5-Verdict wurde zusammen mit der Persona gespeichert.
  • Einen Voice Fingerprint berechnen. Fünfzig Kurzszenarios liefen post-Generation; das Embedding ist abfragbar.

Weiter