Regressa

SDKs

All SDKs share the same wire format and behavior: buffered, batched, retried on 429/5xx, and never throw into your application. Each declares the prompt template so Regressa can version it.

Node · @regressa/node

import OpenAI from "openai";
import { Regressa, wrapOpenAI } from "@regressa/node";

const regressa = new Regressa({ apiKey: process.env.REGRESSA_API_KEY });
const openai = wrapOpenAI(new OpenAI(), regressa);

await openai.chat.completions.create({
  model: "gpt-4o-mini",
  messages: [{ role: "system", content: prompt }, { role: "user", content: q }],
  regressa: { promptTemplate: { name: "support-agent", raw: PROMPT_TEMPLATE }, metadata: { tenant } },
});
await regressa.shutdown();

Also: wrapAnthropic, regressa.trace() for manual calls, regressa.span() for any async call, streaming support for both providers, redact hook, defaultMetadata. CLI: npx @regressa/node gate (see CI gate).

Python · regressa-sdk

from openai import OpenAI
from regressa import Regressa, wrap_openai

regressa = Regressa()  # REGRESSA_API_KEY
openai = wrap_openai(OpenAI(), regressa)
openai.chat.completions.create(model="gpt-4o-mini", messages=msgs,
    regressa_prompt_template={"name": "support-agent", "raw": PROMPT_TEMPLATE})

Also wrap_anthropic, streaming, redact, default_metadata, atexit flush.

Go · github.com/dwarka-prasad/regressa-go

client := regressa.New(regressa.Options{})
defer client.Shutdown(ctx)
span := client.Start("gpt-4o-mini", regressa.OpenAI, msgs, regressa.WithTemplate("support-agent", tmpl))
resp, err := provider.Call(ctx, req)
span.End(resp.Text, resp.PromptTokens, resp.CompletionTokens, err)

Java · dev.regressa:regressa-sdk

Regressa regressa = Regressa.builder().build();
Regressa.Span span = regressa.start("gpt-4o-mini", "openai").message("system", prompt).message("user", q).template("support-agent", TEMPLATE);
try { span.end(out, promptTokens, completionTokens); } catch (Exception e) { span.fail(e); throw e; }

OpenTelemetry

Point your OTLP/HTTP exporter at POST /v1/otlp/traces with the X-Regressa-Project-Key header. Spans with gen_ai.request.model are mapped; see governance.md.

Environment variables (all SDKs)

Variable Meaning
REGRESSA_API_KEY rgsa_live_... or rgsa_test_...
REGRESSA_BASE_URL Ingest URL (default https://ingest.regressa.dev; http://localhost:4100 locally)
REGRESSA_DISABLED=1 Turn tracing off