Filtering Precedence
Input Filter Precedence¶
Python | |
---|---|
The precedence logic is implemented in the execute_handoffs
method where it first checks for a handoff-specific input_filter
, and only falls back to the global run_config.handoff_input_filter
if no specific filter is defined
This means:
1. If handoff.input_filter
is set, it takes precedence and is used
2. If handoff.input_filter
is None
, then run_config.handoff_input_filter
is used as a fallback
3. Only one filter is applied - they are not applied in parallel or combined
Notes¶
The handoff input filtering system provides a mechanism to transform conversation state data before it's passed to the target agent during handoffs. The HandoffInputData structure is a frozen dataclass that encapsulates three distinct components of the conversation state:
-
input_history
: The original input provided to Runner.run() (either a string or tuple of input items) -
pre_handoff_items
: Items generated before the current agent turn, that triggered the handoff -
new_items
: Items generated during the current turn, including the handoff trigger and handoff output message
The filter function receives this complete HandoffInputData object and must return a modified HandoffInputData object
The filtered data then replaces the original conversation state that gets passed to the target agent, The filtering happens during handoff execution in RunImpl.execute_handoffs().
Input Filter in Red Box 🔴