Handoffs
HandoffInputFilter
模块属性
HandoffInputFilter: TypeAlias = Callable[
[HandoffInputData], HandoffInputData
]
一个用于过滤传递给下一个代理的输入数据的函数。
HandoffInputData
dataclass
Source code in src/agents/handoffs.py
输入历史
instance-attribute
input_history: str | tuple[TResponseInputItem, ...]
在调用Runner.run()之前的输入历史记录。
new_items
instance-attribute
new_items: tuple[RunItem, ...]
当前代理回合期间生成的新项目,包括触发交接的项目和代表交接输出响应的工具输出消息。
交接
dataclass
基类: Generic[TContext]
交接是指一个代理将任务委托给另一个代理的过程。 例如,在客户支持场景中,您可能会有一个"分诊代理"来确定 应该由哪个代理处理用户的请求,以及专门处理不同领域 (如账单、账户管理等)的子代理。
Source code in src/agents/handoffs.py
on_invoke_handoff
instance-attribute
on_invoke_handoff: Callable[
[RunContextWrapper[Any], str],
Awaitable[Agent[TContext]],
]
触发交接的函数。传入的参数包括: 1. 交接运行上下文 2. 来自LLM的参数,以JSON字符串形式传递。如果input_json_schema为空则为空字符串。
必须返回一个代理。
input_filter
class-attribute
instance-attribute
input_filter: HandoffInputFilter | None = None
一个用于过滤传递给下一个代理的输入的函数。默认情况下,新代理可以看到整个对话历史记录。在某些情况下,您可能希望过滤输入,例如删除较早的输入,或从现有输入中移除工具。
该函数将接收迄今为止的完整对话历史记录,包括触发转交的输入项以及代表转交工具输出的工具调用输出项。
您可以自由修改输入历史记录或新项目。下一个运行的代理将接收handoff_input_data.all_items。
重要提示:在流式传输模式下,由于此函数的结果,我们将不会传输任何内容。之前生成的项应该已经被传输过了。
交接
handoff(
agent: Agent[TContext],
*,
tool_name_override: str | None = None,
tool_description_override: str | None = None,
input_filter: Callable[
[HandoffInputData], HandoffInputData
]
| None = None,
) -> Handoff[TContext]
handoff(
agent: Agent[TContext],
*,
on_handoff: OnHandoffWithInput[THandoffInput],
input_type: type[THandoffInput],
tool_description_override: str | None = None,
tool_name_override: str | None = None,
input_filter: Callable[
[HandoffInputData], HandoffInputData
]
| None = None,
) -> Handoff[TContext]
handoff(
agent: Agent[TContext],
*,
on_handoff: OnHandoffWithoutInput,
tool_description_override: str | None = None,
tool_name_override: str | None = None,
input_filter: Callable[
[HandoffInputData], HandoffInputData
]
| None = None,
) -> Handoff[TContext]
handoff(
agent: Agent[TContext],
tool_name_override: str | None = None,
tool_description_override: str | None = None,
on_handoff: OnHandoffWithInput[THandoffInput]
| OnHandoffWithoutInput
| None = None,
input_type: type[THandoffInput] | None = None,
input_filter: Callable[
[HandoffInputData], HandoffInputData
]
| None = None,
) -> Handoff[TContext]
从代理创建交接。
参数:
| 名称 | 类型 | 描述 | 默认值 |
|---|---|---|---|
agent
|
Agent[TContext]
|
要交接给的代理,或者返回代理的函数。 |
required |
tool_name_override
|
str | None
|
用于表示交接的工具名称的可选覆盖项。 |
None
|
tool_description_override
|
str | None
|
可选覆盖,用于表示交接的工具描述。 |
None
|
on_handoff
|
OnHandoffWithInput[THandoffInput] | OnHandoffWithoutInput | None
|
当交接被调用时运行的函数。 |
None
|
input_type
|
type[THandoffInput] | None
|
交接输入的参数类型。如果提供此参数,输入将根据该类型进行验证。仅当您传递需要输入的函数时相关。 |
None
|
input_filter
|
Callable[[HandoffInputData], HandoffInputData] | None
|
一个用于过滤传递给下一个代理的输入的函数。 |
None
|
Source code in src/agents/handoffs.py
150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 | |