Function wrapOutputGuardrails

  • 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

    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;
    }