Guardrails
GuardrailFunctionOutput dataclass
The output of a guardrail function.
源代码位于 src/agents/guardrail.py
InputGuardrailResult dataclass
guardrail 运行的结果。
源代码位于 src/agents/guardrail.py
OutputGuardrailResult dataclass
guardrail 运行的结果。
源代码位于 src/agents/guardrail.py
InputGuardrail dataclass
基类: Generic[TContext]
输入 guardrail 是在与代理并行运行或在代理启动之前运行的检查。它们可用于执行以下操作:- 检查输入消息是否偏离主题 - 如果检测到意外输入,则接管代理执行的控制权
您可以使用 @input_guardrail() 装饰器将函数转换为 InputGuardrail,或手动创建 InputGuardrail。
Guardrails 返回一个 GuardrailResult。如果 result.tripwire_triggered 为 True,代理的执行将立即停止,并引发 InputGuardrailTripwireTriggered 异常
源代码位于 src/agents/guardrail.py
guardrail_function instance-attribute
guardrail_function: Callable[
[
RunContextWrapper[TContext],
Agent[Any],
str | list[TResponseInputItem],
],
MaybeAwaitable[GuardrailFunctionOutput],
]
接收代理输入和上下文,并返回 GuardrailResult 的函数。结果标记 tripwire 是否被触发,并可以包含有关 guardrail 输出的信息。
name class-attribute instance-attribute
guardrail 的名称,用于跟踪。如果未提供,我们将使用 guardrail 函数的名称。
OutputGuardrail dataclass
基类: Generic[TContext]
输出 guardrail 是在代理的最终输出上运行的检查。它们可用于检查输出是否通过某些验证标准
您可以使用 @output_guardrail() 装饰器将函数转换为 OutputGuardrail,或手动创建 OutputGuardrail。
Guardrails 返回一个 GuardrailResult。如果 result.tripwire_triggered 为 True,将引发 OutputGuardrailTripwireTriggered 异常。
源代码位于 src/agents/guardrail.py
guardrail_function instance-attribute
guardrail_function: Callable[
[RunContextWrapper[TContext], Agent[Any], Any],
MaybeAwaitable[GuardrailFunctionOutput],
]
接收最终代理、其输出和上下文,并返回 GuardrailResult 的函数。结果标记 tripwire 是否被触发,并可以包含有关 guardrail 输出的信息。
input_guardrail
input_guardrail(
func: _InputGuardrailFuncSync[TContext_co],
) -> InputGuardrail[TContext_co]
input_guardrail(
func: _InputGuardrailFuncAsync[TContext_co],
) -> InputGuardrail[TContext_co]
input_guardrail(
*, name: str | None = None, run_in_parallel: bool = True
) -> Callable[
[
_InputGuardrailFuncSync[TContext_co]
| _InputGuardrailFuncAsync[TContext_co]
],
InputGuardrail[TContext_co],
]
input_guardrail(
func: _InputGuardrailFuncSync[TContext_co]
| _InputGuardrailFuncAsync[TContext_co]
| None = None,
*,
name: str | None = None,
run_in_parallel: bool = True,
) -> (
InputGuardrail[TContext_co]
| Callable[
[
_InputGuardrailFuncSync[TContext_co]
| _InputGuardrailFuncAsync[TContext_co]
],
InputGuardrail[TContext_co],
]
)
将同步或异步函数转换为 InputGuardrail 的装饰器。可以直接使用(无括号),也可以使用关键字参数,例如:
@input_guardrail
def my_sync_guardrail(...): ...
@input_guardrail(name="guardrail_name", run_in_parallel=False)
async def my_async_guardrail(...): ...
参数
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
func
|
_InputGuardrailFuncSync[TContext_co] | _InputGuardrailFuncAsync[TContext_co] | None
|
要包装的 guardrail 函数。 |
None
|
name
|
str | None
|
guardrail 的可选名称。如果未提供,则使用函数的名称。 |
None
|
run_in_parallel
|
bool
|
是否与代理并行运行 guardrail(True,默认)或在代理启动之前运行(False)。 |
True
|
源代码位于 src/agents/guardrail.py
output_guardrail
output_guardrail(
func: _OutputGuardrailFuncSync[TContext_co],
) -> OutputGuardrail[TContext_co]
output_guardrail(
func: _OutputGuardrailFuncAsync[TContext_co],
) -> OutputGuardrail[TContext_co]
output_guardrail(
*, name: str | None = None
) -> Callable[
[
_OutputGuardrailFuncSync[TContext_co]
| _OutputGuardrailFuncAsync[TContext_co]
],
OutputGuardrail[TContext_co],
]
output_guardrail(
func: _OutputGuardrailFuncSync[TContext_co]
| _OutputGuardrailFuncAsync[TContext_co]
| None = None,
*,
name: str | None = None,
) -> (
OutputGuardrail[TContext_co]
| Callable[
[
_OutputGuardrailFuncSync[TContext_co]
| _OutputGuardrailFuncAsync[TContext_co]
],
OutputGuardrail[TContext_co],
]
)
将同步或异步函数转换为 OutputGuardrail 的装饰器。可以直接使用(无括号),也可以使用关键字参数,例如:
@output_guardrail
def my_sync_guardrail(...): ...
@output_guardrail(name="guardrail_name")
async def my_async_guardrail(...): ...