Skip to content

Integrations

Since: 1.9.0

Use Gavio as the embedded runtime governance layer beside the tools teams already use.

text
Application
  -> Gavio embedded runtime
  -> gateway / provider / framework
  -> observability, eval, and security tools through runtime events
ToolCategoryLet that tool ownLet Gavio ownExport
LiteLLMgatewayProxy, virtual keys, provider routingApp PII/policy, audit hashes, cost labelsJSONL, OTel
PortkeygatewayGateway config, org controls, routingEmbedded policy, interceptor facts, auditJSONL, OTel
Heliconegateway observabilityGateway analytics and prompt workflowsLocal runtime controls and privacy-safe labelsJSONL
LangfuseobservabilityTraces, prompts, eval datasets, review loopsRuntime facts and policy/audit contextJSONL
OpenLITobservabilityOTel-native dashboards and APM correlationRuntime event source and span attributesOTel
promptfooevalEval suites, red-team tests, CI gatesRuntime assertions and safe eval reportsJSONL
LangChainframeworkChains, agents, tools, memoryGoverned model calls and tool validationJSONL, OTel
LangGraphframeworkGraph state, nodes, checkpointsPer-node labels and replay evidenceJSONL, OTel
Vercel AI SDKframeworkStreaming UX, server actions, provider APIsServer-side governance and route labelsJSONL, OTel
OpenAI SDKprovider SDKProvider-specific APIs, files, assistantsGoverned chat shim, policy, audit/exportJSONL, OTel

Use the SDK catalog helpers to keep labels consistent:

python
from gavio import integration_metadata

metadata = integration_metadata(
    "litellm",
    tenant="acme",
    feature="support-chat",
    environment="prod",
)
ts
import { integrationMetadata } from "gavio/integrations"

const metadata = integrationMetadata("openlit", {
  tenant: "acme",
  feature: "support-chat",
  environment: "prod",
})
java
import io.gavio.integrations.IntegrationCatalog;

var metadata = IntegrationCatalog.metadata(
    "langchain",
    Map.of("tenant", "acme", "feature", "support-chat", "environment", "prod"));

These scalar labels flow into runtime events and cost dimensions without exporting raw prompt or response text.

Ecosystem trust package

Since: 2.7.0

The Ecosystem Trust Package adds a shared conformance vector and generated compatibility matrix for the integration catalog. The matrix is generated from the catalog vector, adapter payload vector, and ecosystem trust vector, then checked by the SDK tests:

bash
node scripts/gen-ecosystem-trust-matrix.mjs --check

The generated artifact is docs/integrations/compatibility-matrix.json. It records the conformance-tested trust level, metadata-only privacy boundary, adapter-payload coverage, and the offline sample production app that exercises each integration.

Adapter payloads

Since: 2.5.0

Adapter payload helpers build metadata-only fragments for ecosystem SDK calls, configs, callbacks, or telemetry wrappers. They do not import external SDKs.

ToolPayload target
LiteLLMcompletion kwargs metadata and trace headers
promptfoodefault test metadata, Gavio vars, runtime assertions
Langfusetrace and generation metadata
OpenLITOTel/OpenLIT span attributes
LangChainRunnableConfig metadata and tags
LangGraphRunnableConfig metadata, tags, and configurable ids
Vercel AI SDKrequest headers and experimental telemetry metadata

All adapter payloads share this envelope:

json
{
  "schemaVersion": "gavio.integration-adapter.v1",
  "adapter": "langfuse",
  "target": "langfuse",
  "kind": "observability",
  "payload": {}
}

Content-bearing metadata fields such as messages, content, diff, prompt, response, output, renderedPrompt, and rendered_prompt are replaced with SHA-256 hash fields. Runtime-event source content is not copied into the adapter summary.

python
from gavio import integration_adapter_payload

payload = integration_adapter_payload(
    "langfuse",
    {"traceId": "trace_123", "data": {"status": "ok", "provider": "openai"}},
    metadata={"tenant": "acme", "prompt": "raw text"},
)
ts
import { integrationAdapterPayload } from "gavio/integrations"

const payload = integrationAdapterPayload(
  "vercel-ai-sdk",
  { traceId: "trace_123", data: { status: "ok", provider: "openai" } },
  { metadata: { tenant: "acme", prompt: "raw text" } },
)
java
import io.gavio.integrations.IntegrationAdapters;

var payload = IntegrationAdapters.payload(
    "langchain",
    Map.of("traceId", "trace_123", "data", Map.of("status", "ok", "provider", "openai")),
    Map.of("tenant", "acme", "prompt", "raw text"));

Released under the MIT License.