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 === trueevaluate TEXT_DELTA chunks - All guardrails evaluate FINAL_RESPONSE chunks (final safety check)
- Rate limiting via
config.maxStreamingEvaluationsper guardrail
Actions:
- GuardrailAction.BLOCK - Terminates stream immediately with error chunk
- GuardrailAction.SANITIZE - Replaces chunk content with
modifiedText - GuardrailAction.FLAG / GuardrailAction.ALLOW - Passes through
Parameters
service
Single guardrail or array of guardrails
IGuardrailService | IGuardrailService[] | undefined
context
Conversation context for policy decisions
stream
AsyncGenerator<AgentOSResponse, void, undefined>
Source response stream to wrap
options
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;
}