Guardrails
GuardrailFunctionOutput
dataclass
guardrail 函数的输出。
Source code in agents/guardrail.py
InputGuardrailResult
dataclass
guardrail 执行的结果。
Source code in agents/guardrail.py
OutputGuardrailResult
dataclass
guardrail 执行的结果。
Source code in agents/guardrail.py
InputGuardrail
dataclass
Bases: Generic[TContext]
输入 guardrail 是与 agent 执行并行运行的检查。 它们可以用于如下场景: - 检查输入消息是否偏离主题 - 如果检测到意外输入,则接管 agent 的执行控制
你可以使用 @input_guardrail()
装饰器将函数转换为 InputGuardrail
,或者手动创建一个 InputGuardrail
。
guardrail 返回一个 GuardrailResult
。如果 result.tripwire_triggered
为 True
,agent
的执行将会立即停止,并抛出 InputGuardrailTripwireTriggered
异常。
Source code in agents/guardrail.py
guardrail_function
instance-attribute
guardrail_function: Callable[[RunContextWrapper[TContext], Agent[Any], str | list[TResponseInputItem]], MaybeAwaitable[GuardrailFunctionOutput]]
一个接收 agent 输入和上下文的函数,并返回
GuardrailResult
。结果标记 tripwire 是否被触发,并可选地包含 guardrail 输出的信息。
OutputGuardrail
dataclass
Bases: Generic[TContext]
输出 guardrail 是在 agent 最终输出上运行的检查。 它们可以用于检查输出是否通过某些验证标准。
你可以使用 @output_guardrail()
装饰器将函数转换为 OutputGuardrail
,
或者手动创建一个 OutputGuardrail
。
guardrail 返回一个 GuardrailResult
。如果 result.tripwire_triggered
为 True
,
将抛出 OutputGuardrailTripwireTriggered
异常。
Source code in agents/guardrail.py
guardrail_function
instance-attribute
guardrail_function: Callable[[RunContextWrapper[TContext], Agent[Any], Any], MaybeAwaitable[GuardrailFunctionOutput]]
一个接收最终 agent、其输出和上下文的函数,并返回
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) -> 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) -> 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")
async def my_async_guardrail(...): ...
Source code in 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(...): ...