Tool Guardrails
ToolInputGuardrailResult
dataclass
The result of a tool input guardrail run.
Source code in src/agents/tool_guardrails.py
ToolOutputGuardrailResult
dataclass
The result of a tool output guardrail run.
Source code in src/agents/tool_guardrails.py
RejectContentBehavior
Bases: TypedDict
Rejects the tool call/output but continues execution with a message to the model.
Source code in src/agents/tool_guardrails.py
RaiseExceptionBehavior
AllowBehavior
ToolGuardrailFunctionOutput
dataclass
The output of a tool guardrail function.
Source code in src/agents/tool_guardrails.py
output_info
instance-attribute
Optional data about checks performed. For example, the guardrail could include information about the checks it performed and granular results.
behavior
class-attribute
instance-attribute
behavior: (
RejectContentBehavior
| RaiseExceptionBehavior
| AllowBehavior
) = field(
default_factory=lambda: AllowBehavior(type="allow")
)
Defines how the system should respond when this guardrail result is processed. - allow: Allow normal tool execution to continue without interference (default) - reject_content: Reject the tool call/output but continue execution with a message to the model - raise_exception: Halt execution by raising a ToolGuardrailTripwireTriggered exception
allow
classmethod
allow(
output_info: Any = None,
) -> ToolGuardrailFunctionOutput
Create a guardrail output that allows the tool execution to continue normally.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
output_info
|
Any
|
Optional data about checks performed. |
None
|
Returns:
Type | Description |
---|---|
ToolGuardrailFunctionOutput
|
ToolGuardrailFunctionOutput configured to allow normal execution. |
Source code in src/agents/tool_guardrails.py
reject_content
classmethod
reject_content(
message: str, output_info: Any = None
) -> ToolGuardrailFunctionOutput
Create a guardrail output that rejects the tool call/output but continues execution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
message
|
str
|
Message to send to the model instead of the tool result. |
required |
output_info
|
Any
|
Optional data about checks performed. |
None
|
Returns:
Type | Description |
---|---|
ToolGuardrailFunctionOutput
|
ToolGuardrailFunctionOutput configured to reject the content. |
Source code in src/agents/tool_guardrails.py
raise_exception
classmethod
raise_exception(
output_info: Any = None,
) -> ToolGuardrailFunctionOutput
Create a guardrail output that raises an exception to halt execution.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
output_info
|
Any
|
Optional data about checks performed. |
None
|
Returns:
Type | Description |
---|---|
ToolGuardrailFunctionOutput
|
ToolGuardrailFunctionOutput configured to raise an exception. |
Source code in src/agents/tool_guardrails.py
ToolInputGuardrailData
dataclass
Input data passed to a tool input guardrail function.
Source code in src/agents/tool_guardrails.py
context
instance-attribute
context: ToolContext[Any]
The tool context containing information about the current tool execution.
ToolOutputGuardrailData
dataclass
Bases: ToolInputGuardrailData
Input data passed to a tool output guardrail function.
Extends input data with the tool's output.
Source code in src/agents/tool_guardrails.py
context
instance-attribute
context: ToolContext[Any]
The tool context containing information about the current tool execution.
ToolInputGuardrail
dataclass
Bases: Generic[TContext_co]
A guardrail that runs before a function tool is invoked.
Source code in src/agents/tool_guardrails.py
guardrail_function
instance-attribute
guardrail_function: Callable[
[ToolInputGuardrailData],
MaybeAwaitable[ToolGuardrailFunctionOutput],
]
The function that implements the guardrail logic.
ToolOutputGuardrail
dataclass
Bases: Generic[TContext_co]
A guardrail that runs after a function tool is invoked.
Source code in src/agents/tool_guardrails.py
guardrail_function
instance-attribute
guardrail_function: Callable[
[ToolOutputGuardrailData],
MaybeAwaitable[ToolGuardrailFunctionOutput],
]
The function that implements the guardrail logic.
tool_input_guardrail
tool_input_guardrail(
*, name: str | None = None
) -> Callable[
[_ToolInputFuncSync | _ToolInputFuncAsync],
ToolInputGuardrail[Any],
]
tool_input_guardrail(
func: _ToolInputFuncSync
| _ToolInputFuncAsync
| None = None,
*,
name: str | None = None,
) -> (
ToolInputGuardrail[Any]
| Callable[
[_ToolInputFuncSync | _ToolInputFuncAsync],
ToolInputGuardrail[Any],
]
)
Decorator to create a ToolInputGuardrail from a function.
Source code in src/agents/tool_guardrails.py
tool_output_guardrail
tool_output_guardrail(
*, name: str | None = None
) -> Callable[
[_ToolOutputFuncSync | _ToolOutputFuncAsync],
ToolOutputGuardrail[Any],
]
tool_output_guardrail(
func: _ToolOutputFuncSync
| _ToolOutputFuncAsync
| None = None,
*,
name: str | None = None,
) -> (
ToolOutputGuardrail[Any]
| Callable[
[_ToolOutputFuncSync | _ToolOutputFuncAsync],
ToolOutputGuardrail[Any],
]
)
Decorator to create a ToolOutputGuardrail from a function.