Skip to main content

Function: wrapOutputGuardrails()

wrapOutputGuardrails(service, context, stream, options): AsyncGenerator<AgentOSResponse, void, undefined>

Defined in: packages/agentos/src/core/guardrails/guardrailDispatcher.ts:274

Wrap a response stream with guardrail filtering.

Creates an async generator that evaluates each chunk through registered guardrails before yielding to the client. Supports both real-time streaming evaluation and final-only evaluation based on guardrail configuration.

Evaluation Strategy:

  • Guardrails with config.evaluateStreamingChunks === true evaluate TEXT_DELTA chunks
  • All guardrails evaluate FINAL_RESPONSE chunks (final safety check)
  • Rate limiting via config.maxStreamingEvaluations per guardrail

Actions:

Parameters

service

Single guardrail or array of guardrails

IGuardrailService | IGuardrailService[] | undefined

context

GuardrailContext

Conversation context for policy decisions

stream

AsyncGenerator<AgentOSResponse, void, undefined>

Source response stream to wrap

options

GuardrailOutputOptions

Stream options and input evaluations to attach

Returns

AsyncGenerator<AgentOSResponse, void, undefined>

Wrapped stream with guardrail filtering applied

Example

// Wrap output stream with PII redaction
const safeStream = wrapOutputGuardrails(
[piiRedactor, contentFilter],
guardrailContext,
orchestratorStream,
{ streamId: 'stream-123', inputEvaluations }
);

for await (const chunk of safeStream) {
// Chunks are filtered/sanitized before reaching here
yield chunk;
}