Package ai.acolite.agentsdk.core
Class GuardrailExecutor
java.lang.Object
ai.acolite.agentsdk.core.GuardrailExecutor
GuardrailExecutor
Utility class for executing guardrails with proper parallel/sequential execution patterns.
Execution patterns:
- Input guardrails: Split into blocking (sequential) and parallel groups
- Output guardrails: All execute in parallel
- Tool guardrails: All execute sequentially
Ported from TypeScript OpenAI Agents SDK Source: guardrail.ts
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classstatic class -
Method Summary
Modifier and TypeMethodDescriptionstatic <TContext> CompletableFuture<List<InputGuardrailResult>> executeInputGuardrails(List<? extends InputGuardrail<TContext>> guardrails, InputGuardrailFunctionArgs<TContext> args) Execute input guardrails with blocking and parallel groups.static <TContext,TOutput extends AgentOutputType>
CompletableFuture<List<OutputGuardrailResult>> executeOutputGuardrails(List<? extends OutputGuardrail<TContext, TOutput>> guardrails, OutputGuardrailFunctionArgs<TContext, TOutput> args) Execute output guardrails in parallel.static <TContext> CompletableFuture<GuardrailExecutor.ToolGuardrailExecutionResult> executeToolInputGuardrails(List<? extends ToolInputGuardrail<TContext>> guardrails, ToolInputGuardrailFunctionArgs<TContext> args) Execute tool input guardrails sequentially.static <TContext> CompletableFuture<GuardrailExecutor.ToolGuardrailExecutionResult> executeToolOutputGuardrails(List<? extends ToolOutputGuardrail<TContext>> guardrails, ToolOutputGuardrailFunctionArgs<TContext> args) Execute tool output guardrails sequentially.
-
Method Details
-
executeInputGuardrails
public static <TContext> CompletableFuture<List<InputGuardrailResult>> executeInputGuardrails(List<? extends InputGuardrail<TContext>> guardrails, InputGuardrailFunctionArgs<TContext> args) Execute input guardrails with blocking and parallel groups.- Parameters:
guardrails- The input guardrails to executeargs- The input arguments- Returns:
- A future with the list of results
-
executeOutputGuardrails
public static <TContext,TOutput extends AgentOutputType> CompletableFuture<List<OutputGuardrailResult>> executeOutputGuardrails(List<? extends OutputGuardrail<TContext, TOutput>> guardrails, OutputGuardrailFunctionArgs<TContext, TOutput> args) Execute output guardrails in parallel.- Parameters:
guardrails- The output guardrails to executeargs- The output arguments- Returns:
- A future with the list of results
-
executeToolInputGuardrails
public static <TContext> CompletableFuture<GuardrailExecutor.ToolGuardrailExecutionResult> executeToolInputGuardrails(List<? extends ToolInputGuardrail<TContext>> guardrails, ToolInputGuardrailFunctionArgs<TContext> args) Execute tool input guardrails sequentially.- Parameters:
guardrails- The tool input guardrails to executeargs- The tool input arguments- Returns:
- A future with the guardrail result
-
executeToolOutputGuardrails
public static <TContext> CompletableFuture<GuardrailExecutor.ToolGuardrailExecutionResult> executeToolOutputGuardrails(List<? extends ToolOutputGuardrail<TContext>> guardrails, ToolOutputGuardrailFunctionArgs<TContext> args) Execute tool output guardrails sequentially.- Parameters:
guardrails- The tool output guardrails to executeargs- The tool output arguments- Returns:
- A future with the guardrail result
-