Skip to content

nulab/datadog-ai-guard-middleware

Repository files navigation

Datadog AI Guard Middleware

CI License: Apache-2.0

Vercel AI SDK middleware that evaluates LLM prompts, assistant responses, and tool calls through Datadog AI Guard, blocking requests based on Datadog's security policies.

Packages

Package Version Description
@nulab/datadog-ai-guard-middleware-ai-v3 npm AI SDK v6 (@ai-sdk/provider@^3)
@nulab/datadog-ai-guard-middleware-ai-v2 npm AI SDK v5 (@ai-sdk/provider@^2)
@nulab/datadog-ai-guard-middleware-core npm AI SDK-independent core logic

Which package should I use?

Your AI SDK version Install
AI SDK v6 (latest, @ai-sdk/provider@^3) @nulab/datadog-ai-guard-middleware-ai-v3
AI SDK v5 (@ai-sdk/provider@^2) @nulab/datadog-ai-guard-middleware-ai-v2

@nulab/datadog-ai-guard-middleware-core does not need to be installed directly. It is automatically installed as an internal dependency of the middleware packages.

Quick Start

Installation

npm install @nulab/datadog-ai-guard-middleware-ai-v3

Usage

import ddtracer from "dd-trace";
import { generateText, wrapLanguageModel } from "ai";
import { openai } from "@ai-sdk/openai";
import {
  AIGuardMiddleware,
  AIGuardMiddlewareAbortError,
} from "@nulab/datadog-ai-guard-middleware-ai-v3";

// Initialize dd-trace with AI Guard enabled
ddtracer.init({
  experimental: {
    aiguard: { enabled: true },
  },
});

// Create a guarded model
const guardedModel = wrapLanguageModel({
  model: openai("gpt-4o"),
  middleware: [new AIGuardMiddleware({ evaluator: ddtracer.aiguard })],
});

// Use it with generateText / streamText
try {
  const { text } = await generateText({
    model: guardedModel,
    prompt: "Hello!",
  });
  console.log(text);
} catch (err) {
  if (err instanceof AIGuardMiddlewareAbortError) {
    console.error("Blocked by AI Guard security policy");
  }
}

For detailed usage including streaming, error handling, and all configuration options, see the package README for ai-v3 or ai-v2.

Requirements

  • Node.js >= 22
  • dd-trace >= 5 with AI Guard enabled (experimental.aiguard.enabled: true)
  • AI SDK v5 (@ai-sdk/provider@^2) or v6 (@ai-sdk/provider@^3)

Contributing

Prerequisites

Setup

corepack enable
pnpm install

Build

pnpm -r run build

Test

pnpm -r run test

Lint & Format

pnpm run check

License

Apache-2.0

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors