Skip to content

SDK How-To Guides

Practical, task-focused guides for common SDK operations.

  • Manage Context - Configure token budgets and relevance-based truncation
  • Preprocess Images - Automatically resize and optimize images before sending to LLM providers
conv, err := sdk.Open("./app.pack.json", "assistant")
if err != nil {
log.Fatal(err)
}
defer conv.Close()
resp, err := conv.Send(ctx, "Hello!")
fmt.Println(resp.Text())
for chunk := range conv.Stream(ctx, "Tell me a story") {
if chunk.Type == sdk.ChunkDone {
break
}
fmt.Print(chunk.Text)
}
conv.OnTool("get_time", func(args map[string]any) (any, error) {
return time.Now().Format(time.RFC3339), nil
})
conv.SetVar("user_name", "Alice")
conv.SetVars(map[string]any{
"role": "admin",
"language": "en",
})
conv.Subscribe(hooks.EventSend, func(e hooks.Event) {
log.Printf("Sent: %v", e.Data["message"])
})
  1. Open a Conversation
  2. Send Messages
  3. Manage Variables
  1. Register Tools
  2. HTTP Tools (for external APIs)
  1. HITL Workflows
  2. Monitor Events