AI Privacy & Capture
Blyp AI tracing is intentionally conservative by default.
Prompt text, outputs, reasoning, tool payloads, raw provider payloads, and detailed stream data are opt-in. The default trace focuses on provider, model, operation, usage, finish reason, timing, and best-effort tool metadata.
Capture controls
Use capture to explicitly enable content recording:
import OpenAI from "openai";
import { wrapOpenAI } from "@blyp/core/ai/openai";
const openai = wrapOpenAI(
new OpenAI({ apiKey: process.env.OPENAI_API_KEY }),
{
operation: "review_patch",
capture: {
input: true,
output: true,
toolInputs: false,
toolOutputs: false,
reasoning: false,
streamEvents: false,
streamChunks: false,
rawProviderPayload: false,
},
}
);Supported capture options:
capture.inputcapture.outputcapture.toolInputscapture.toolOutputscapture.reasoningcapture.streamEventscapture.streamChunkscapture.rawProviderPayload
Exclusions
Use exclude to remove selected fields even when capture is enabled:
const client = wrapOpenAI(new OpenAI({ apiKey: process.env.OPENAI_API_KEY }), {
operation: "review_patch",
capture: {
input: true,
output: true,
},
exclude: {
providerOptions: true,
requestPaths: ["input.0.content"],
responsePaths: ["output_text"],
metadataPaths: ["tenant.secret"],
toolNames: ["internalAdminTool"],
},
});Supported exclude options:
exclude.providerOptionsexclude.requestPathsexclude.responsePathsexclude.metadataPathsexclude.toolNames
Size and event limits
Use limits to bound what Blyp records:
const client = wrapOpenAI(new OpenAI({ apiKey: process.env.OPENAI_API_KEY }), {
operation: "review_patch",
limits: {
maxContentBytes: 16_384,
maxEvents: 100,
maxToolCalls: 20,
},
});Supported limits options:
limits.maxContentByteslimits.maxEventslimits.maxToolCalls
Redaction still applies
Blyp redaction still runs across emitted log output, including AI traces. That helps with known sensitive keys and pattern scanning, but it is not a reason to over-capture prompts or model outputs.
Recommended default:
- keep AI content capture off unless a debugging workflow truly needs it
- enable only the specific fields needed for that workflow
- pair AI capture with
redact.keys,redact.paths, orredact.patternswhen your metadata contains tenant-specific secrets
See Configuration for the global redact config.