Üretim hattı
Bir `intent`'i dört katmanlı bir personaya dönüştüren altı adımlı hat — Intent parse → Soul draft → Self+Mask enrich → Surface ground → Audit → Fingerprint + Test.
POST /v1/personas'a bir intent ile çağrı yaptığında, Moonborn tek
bir LLM'den karakter uydurmasını istemez. Her çıktısı personanın
kalıcı durumu olan altı adımlı bir hat çalıştırır. Her adım
yapılandırılabilir — model, sağlayıcı, sıcaklık, fallback zinciri —
config ağacındaki engine.pipeline.<step>.* üzerinden.
Adımlar
| # | Adım | Amaç | Varsayılan model |
|---|---|---|---|
| 1 | intent_parse | Brief'i oku; tür, locale, eksen ipuçlarını çıkar | claude-sonnet-4-6 |
| 2 | soul_draft | Soul yaz (istek, korku, yara, gelişim yayı) | claude-opus-4-7 |
| 3 | self_enrich | Big Five + arketip + değerler + bağlanma | claude-sonnet-4-6 |
| 4 | mask_build | Ses, ton, imza ifadeler, sosyal rol | claude-sonnet-4-6 |
| 5 | surface_ground | İsim, yaş, lokasyon, meslek, görünüş | claude-sonnet-4-6 |
| 6 | audit | Katmanlar arası tutarlılık + LLM-as-judge | claude-opus-4-7 |
Not — bu varsayılanlar
engine.pipeline.<step>.modelconfig item'larından okunur. Yukarıdaki değerler sistem-scope varsayılan; org/workspace override'ları geçerlidir.
Altı görünür adım sonrasında runtime iki post-generation iş tetikler:
- Voice fingerprint — elli kısa senaryo tamamlaması persona başına bir imzaya gömülür (Voice fingerprint).
- Test suite — yapılandırılabilir provokasyon kataloğu yeni personaya karşı koşar (Audit + provokasyon testleri).
Neden içeriden dışarıya
Surface (isim, yaş, meslek) son adım — bilinçli olarak. Surface'i ilk yazsaydık, model demografik klişeye demir atar ve uyması için Soul'u geri-doldururdu. Soul → Self → Mask → Surface taslağı her katmanın sonrakini kısıtlamasını sağlar: kurucunun huzursuzluğu yarasından gelir, stok şablondan değil.
Streaming
POST /v1/personas'a stream: true geçir, response text/event-stream
olur. Her olay şunlardan biri:
event: step.started { step: "soul_draft" }
event: step.completed { step: "soul_draft", durationMs: 4210 }
event: step.failed { step: "audit", error: { code, message } }
event: pipeline.completed { id, status, pipelineRunId }
Son olayda dönen pipeline run ID, tam izi (sağlayıcı gecikmeleri, yeniden denemeler, maliyet dökümü) sonra getirmenize izin verir — bkz. API referansı audit log endpoint'leri.
Retry + fallback
Bir adım başarısız olursa (LLM sağlayıcı hatası, eşiğin altında audit),
Moonborn engine.pipeline.<step>.max_retries (varsayılan 3) kez
yeniden dener; varsayılan fallback zinciri: Anthropic → OpenAI →
Google. Üst sınırdan sonra persona flagged durumda teslim edilir —
kullanıcı görür, ama inceleme için işaretlenmiştir.
Dürüst kapsam
Bu sunucu-tarafı hat. İstemci-tarafı adım uygulaması yok;
SDK'dan izole bir adım koşturamazsın. İstemci yüzeyi
POST /v1/personas (tüm hat) ve POST /v1/personas/{id}/regenerate
(seçilen adımdan yeniden koşum).