Go
Das offizielle Go-SDK für Moonborn. Idiomatischer kontextbewusster Client; ein Release-Lag hinter der API.
Das Go-SDK lebt unter github.com/moon-born/sdk-go. Aus der
kanonischen OpenAPI-Spec generiert, idiomatisch für Go: Context-
first-Methoden, typisierte Errors, unter der Haube Standard
net/http.
Release-Kadenz: versendet innerhalb einer Woche jedes API- Releases. Pinne deinen
go.modauf die API-Version, die du anvisierst.
Installieren
go get github.com/moon-born/sdk-goErster Call
package main
import (
"context"
"fmt"
"os"
"github.com/moon-born/sdk-go/moonborn"
)
func main() {
client := moonborn.NewClient(moonborn.Options{
ApiKey: os.Getenv("MOONBORN_API_KEY"),
})
ctx := context.Background()
persona, err := client.Personas.CreatePersona(ctx, moonborn.CreatePersonaInput{
Intent: "Ein 34-jähriger Gründer aus Istanbul. Brillant, aber rastlos.",
WorkspaceID: "ws_...",
})
if err != nil {
panic(err)
}
fmt.Println(persona.ID, persona.Status)
}Streaming-Chat
stream, err := client.Chat.StreamMessage(ctx, moonborn.StreamMessageInput{
SessionID: session.ID,
Content: "Erzähl mir eine stille Wahrheit.",
})
if err != nil { /* ... */ }
defer stream.Close()
for chunk := range stream.Events() {
switch chunk.Type {
case moonborn.ChunkTypeToken:
fmt.Print(chunk.Delta)
case moonborn.ChunkTypeCompleted:
fmt.Printf("\ndrift: %.2f\n", chunk.DriftScore)
}
}Error-Handling
_, err := client.Personas.GetPersona(ctx, moonborn.GetPersonaInput{ID: "persona_..."})
if apiErr, ok := err.(*moonborn.APIError); ok {
switch apiErr.Code {
case "rate_limited":
// retry nach apiErr.RetryAfter
case "not_found":
// ...
}
}Der Client retry't 5xx + 429 automatisch mit Exponential Backoff
(bei 30s gekappt). Konfiguriere via Options.RetryConfig.
Idempotency
Write-Methoden (Create*, Fork*, Refine*) auto-generieren per
Default einen Idempotency-Key. Überschreibe via Per-Call-Options:
persona, err := client.Personas.CreatePersona(ctx, input, moonborn.WithIdempotencyKey("my-key-123"))Tarif
Jedes Go-SDK funktioniert auf jedem Tier — Feature-Gates werden serverseitig durchgesetzt.