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]

__init__(conditions)[源代码]

使用条件初始化钩子规则。

参数:

conditions (Dict[str, Any]) – 条件规范包括 output_length、content_type、tool_type 等。

evaluate(result, tool_name, arguments, context)[源代码]

评估规则条件是否满足。

参数:
  • result (Any) – 工具输出以评估

  • tool_name (str) – 生成输出的工具名称

  • arguments (Dict[str, Any]) – 传递给工具的参数

  • context (Dict[str, Any]) – 附加上下文信息

退货

bool: True if conditions are met, False otherwise

class tooluniverse.output_hook.OutputHook[源代码]

基类:object

所有输出钩子的基类。

此抽象基类定义了所有输出钩子必须实现的接口。钩子用于在工具执行后处理输出,从而实现摘要、过滤、转换和验证等功能。

参数:

config (Dict[str, Any]) – 钩子配置,包括名称、启用状态、优先级和条件

config

钩子配置

类型:

Dict[str, Any]

name

挂钩名称

类型:

str

enabled

是否启用钩子

类型:

布尔值

priority

钩子优先级(数字越小优先执行)

类型:

int

rule

触发此钩子的规则

类型:

HookRule

__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[源代码]

基类:object

SummarizationHookConfig(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)

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
validate()[源代码]
__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 实例

composer_tool

用于摘要的ComposeTool名称

类型:

str

chunk_size

处理大输出的块大小

类型:

int

focus_areas

总结时需重点关注的领域

类型:

str

max_summary_length

最终摘要的最大长度

类型:

int

__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

是否启用钩子处理

类型:

布尔值

config_path

钩子配置文件路径

类型:

str

__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

enable_hook(hook_name)[源代码]

通过名称启用特定钩子。

参数:

hook_name (str) – 要启用的钩子名称

disable_hook(hook_name)[源代码]

通过名称禁用特定钩子。

参数:

hook_name (str) – 要禁用的钩子名称

toggle_hooks(enabled)[源代码]

全局启用或禁用所有钩子。

参数:

enabled (bool) – True 表示启用所有钩子,False 表示禁用

enable_hooks()[源代码]

启用钩子并(重新)加载配置和所需工具。

disable_hooks()[源代码]

Disable hooks and clear in-memory hook instances.

reload_config(config_path=None)[源代码]

从文件重新加载钩子配置。

参数:

config_path (Optional[str]) – 配置文件路径。若为 None,则使用当前的 config_path。

get_hook(hook_name)[源代码]

通过名称获取钩子实例。

参数:

hook_name (str) – 要检索的钩子名称

退货

Optional[OutputHook]: Hook instance if found, None otherwise

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)