tooluniverse.output_hook 模块¶
ToolUniverse 输出钩子系统
该模块提供了一个基于钩子的全面输出处理系统,支持对工具输出进行智能后处理。该系统支持多种类型的钩子,包括摘要钩子、过滤钩子和转换钩子。
关键组件: - HookRule:定义钩子触发的条件 - OutputHook:所有输出钩子的基类 - SummarizationHook:用于输出摘要的专用钩子 - HookManager:管理和协调所有钩子
钩子系统与 ToolUniverse 现有架构无缝集成,利用 AgenticTool 和 ComposeTool 实现智能输出处理。
- class tooluniverse.output_hook.HookRule[源代码]¶
基类:
object定义钩子触发时机的规则。
该类评估多种条件,以确定是否应将钩子应用于工具的输出。支持多种条件类型,包括输出长度、内容类型及工具特定的标准。
- 参数:
conditions (
Dict[str, Any]) – 包含条件规格的字典
- conditions¶
条件规范
- 类型:
Dict[str, Any]
- class tooluniverse.output_hook.OutputHook[源代码]¶
基类:
object所有输出钩子的基类。
此抽象基类定义了所有输出钩子必须实现的接口。钩子用于在工具执行后处理输出,从而实现摘要、过滤、转换和验证等功能。
- 参数:
config (
Dict[str, Any]) – 钩子配置,包括名称、启用状态、优先级和条件
- config¶
钩子配置
- 类型:
Dict[str, Any]
- enabled¶
是否启用钩子
- 类型:
布尔值
- __init__(config)[源代码]¶
使用配置初始化输出钩子。
- 参数:
config (
Dict[str, Any]) – 钩子配置包含: - name:钩子标识符 - enabled:钩子是否启用 - priority:执行优先级 - conditions:触发条件
- should_trigger(result, tool_name, arguments, context)[源代码]¶
确定是否应为给定的输出触发此钩子。
- 参数:
result (
Any) – 工具输出以评估tool_name (
str) – 生成输出的工具名称arguments (
Dict[str, Any]) – 传递给工具的参数context (
Dict[str, Any]) – 附加上下文信息
- 退货
bool: True if hook should trigger, False otherwise
- process(result, tool_name=None, arguments=None, context=None)[源代码]¶
处理工具输出。
此方法必须由子类实现,以定义钩子的具体处理逻辑。
- 参数:
result (
Any) – 工具输出以处理tool_name (
str) – 生成输出的工具名称arguments (
Dict[str, Any]) – 传递给工具的参数context (
Dict[str, Any]) – 附加上下文信息
- 退货
Any: The processed output
- 抛出:
NotImplementedError – 如果未被子类实现
- class tooluniverse.output_hook.SummarizationHookConfig[源代码]¶
基类:
objectSummarizationHookConfig(composer_tool: str = ‘OutputSummarizationComposer’, chunk_size: int = 30000, focus_areas: str = ‘key_findings_and_results’, max_summary_length: int = 3000, composer_timeout_sec: int = 300)
- __init__(composer_tool='OutputSummarizationComposer', chunk_size=30000, focus_areas='key_findings_and_results', max_summary_length=3000, composer_timeout_sec=300)¶
- class tooluniverse.output_hook.SummarizationHook[源代码]¶
基类:
OutputHook用于智能输出摘要的 AI 钩子
此钩子利用ToolUniverse的AgenticTool和ComposeTool基础架构,提供对长工具输出的智能摘要功能。它支持对大型输出进行分块处理,使用AI处理每个分块,并合并结果。
- 参数:
config (
Dict[str, Any]) – 钩子配置,包括汇总参数tooluniverse – 引用 ToolUniverse 实例
- tooluniverse¶
用于工具执行的 ToolUniverse 实例
- __init__(config, tooluniverse)[源代码]¶
初始化摘要钩子。
- 参数:
config (
Dict[str, Any]) – 钩子配置tooluniverse – 用于执行摘要工具的 ToolUniverse 实例
- process(result, tool_name=None, arguments=None, context=None)[源代码]¶
使用 Compose Summarizer 工具执行摘要处理。
该方法通过以下步骤协调摘要工作流程:1. 准备 Compose Summarizer 工具的参数 2. 通过 ToolUniverse 调用该工具 3. 处理并返回摘要结果
- 参数:
result (
Any) – 工具输出摘要tool_name (
str) – 生成输出的工具名称arguments (
Dict[str, Any]) – 传递给工具的参数context (
Dict[str, Any]) – 附加上下文信息
- 退货
Any: The summarized output, or original output if summarization fails
- class tooluniverse.output_hook.HookManager[源代码]¶
基类:
object管理并协调所有输出钩子。
HookManager 负责加载钩子配置、创建钩子实例并将钩子应用于工具输出。它提供了统一的钩子管理接口,并支持动态配置更新。
- 参数:
config (
Dict[str, Any]) – 钩子管理器配置tooluniverse – 引用 ToolUniverse 实例
- config¶
钩子管理器配置
- 类型:
Dict[str, Any]
- tooluniverse¶
用于工具执行的 ToolUniverse 实例
- hooks¶
已加载的钩子实例列表
- 类型:
List[OutputHook]
- enabled¶
是否启用钩子处理
- 类型:
布尔值
- __init__(config, tooluniverse)[源代码]¶
初始化钩子管理器。
- 参数:
config (
Dict[str, Any]) – 钩子管理器配置tooluniverse – 用于执行工具的 ToolUniverse 实例
- apply_hooks(result, tool_name, arguments, context)[源代码]¶
将所有适用的钩子应用于工具输出。
该方法遍历所有已加载的钩子,检查它们是否应应用于当前输出,并按照优先级顺序通过每个适用的钩子处理输出。
- 参数:
result (
Any) – 工具输出以处理tool_name (
str) – 生成输出的工具名称arguments (
Dict[str, Any]) – 传递给工具的参数context (
Dict[str, Any]) – 附加上下文信息
- 退货
Any: The processed output after applying all applicable hooks
- class tooluniverse.output_hook.FileSaveHook[源代码]¶
基类:
OutputHook用于将工具输出保存到临时文件并返回文件信息的钩子。
此钩子将工具的输出保存到一个临时文件中,并返回有关文件路径、数据格式和数据结构的信息,而不是原始输出。这对于处理大型输出或需要将输出作为文件而非内存数据进行处理的情况非常有用。
配置选项: - temp_dir:用于保存临时文件的目录(默认值:系统临时目录) - file_prefix:生成文件名的前缀(默认值:tool_output) - include_metadata:是否在响应中包含元数据(默认值:True) - auto_cleanup:是否自动清理旧文件(默认值:False) - cleanup_age_hours:自动清理的文件年龄(以小时为单位)(默认值:24)
- __init__(config)[源代码]¶
初始化 FileSaveHook。
- 参数:
config (
Dict[str, Any]) – 钩子配置包括: - name: 钩子名称 - temp_dir: 临时文件目录 - file_prefix: 文件名前缀 - include_metadata: 是否包含元数据标志 - auto_cleanup: 是否自动清理标志 - cleanup_age_hours: 清理时间(以小时为单位)
- process(result, tool_name, arguments, context)[源代码]¶
将工具的输出保存到临时文件中进行处理。
- 参数:
result (
Any) – 工具输出以处理tool_name (
str) – 生成输出的工具名称arguments (
Dict[str, Any]) – 传递给工具的参数context (
Dict[str, Any]) – 执行上下文
- 退货
- Dict[str, Any]: Dictionary containing file information:
file_path:保存文件的路径
data_format:数据的格式(json、text、binary 等)
data_structure:关于数据的结构信息
file_size:文件的大小(以字节为单位)
created_at:文件创建的时间戳
元数据:附加元数据(如果 include_metadata 为 True)