tooluniverse.tool_finder_llm 模块¶
基于大型语言模型的工具查找器 —— 一款利用大型语言模型根据描述查找相关工具的工具。
该工具利用 AgenticTool 的大型语言模型(LLM)功能,创建了一个智能工具查找器,仅在提示中包含必要的工具信息(名称和描述),以最大限度地降低上下文窗口成本,同时让 LLM 根据查询决定返回哪些工具。
关键优化: - 仅向大型语言模型发送工具名称和描述(不包含参数、配置等) - 使用紧凑格式以减少令牌数量 - 缓存工具描述以避免重复处理 - 从提示中排除无关工具
- class tooluniverse.tool_finder_llm.ToolFinderLLM[源代码]¶
基类:
BaseTool基于大型语言模型的工具查找器,利用自然语言处理技术选择相关工具。
该类利用 AgenticTool 的大型语言模型(LLM)能力,分析工具描述并将其与用户查询进行匹配。通过仅向 LLM 发送必要的信息(工具名称和描述),实现了最小化上下文窗口成本的优化,提供了一种智能替代基于嵌入的相似度搜索的方法。
成本优化: - 仅在大型语言模型提示中包含工具名称和描述 - 使用紧凑格式以最小化令牌使用量 - 排除不必要的工具元数据和参数 - 实施缓存以避免重复处理工具
- __init__(tool_config, tooluniverse=None)[源代码]¶
初始化基于大型语言模型的工具查找器。
- 参数:
tool_config (
dict) – 包含LLM设置和提示的配置字典tooluniverse – 引用包含所有工具的 ToolUniverse 实例
- find_tools_llm(query, limit=5, include_reasoning=False, categories=None)[源代码]¶
使用基于LLM的选择功能查找相关工具。
- 参数:
- 退货
dict: Dictionary containing selected tools and metadata
- find_tools(message=None, picked_tool_names=None, rag_num=5, return_call_result=False, categories=None, return_list_only=None)[源代码]¶
根据消息或预先选择的工具名称查找相关工具。
此方法与原始的 ToolFinderEmbedding 接口保持一致,以确保无缝替换。它使用基于 LLM 的选择方式,而非嵌入相似性。
- 参数:
message (
str, optional) – 查询消息以查找工具。如果 picked_tool_names 为 None,则此项为必填。picked_tool_names (
list, optional) – 预先选择的工具名称以进行处理。如果消息为 None,则此项为必填。rag_num (
int, optional) – 过滤后返回的工具数量。默认为 5。return_call_result (
bool, optional) – 如果为 True,则返回提示和工具名称。默认为 False。categories (
list, optional) – 工具类别筛选列表。在选择LLM之前应用。return_list_only (
bool, optional) – 如果为 True,则仅返回工具规格列表。此设置会覆盖其他返回选项。
- 退货
- str, tuple, or list:
如果 return_list_only 为 True:工具规格列表
如果 return_call_result 为 False:工具将以格式化字符串的形式提示
如果 return_call_result 为 True:返回一个元组 (tool_prompts, tool_names)
- 抛出:
AssertionError – 如果 message 和 picked_tool_names 均为 None
- run(arguments)[源代码]¶
按照标准工具接口,使用给定参数运行工具查找器。
此方法现默认返回 JSON 格式,以确保与其他搜索工具的一致性并简化与 SMCP 的集成。
- 参数:
arguments (
dict) – 包含字典: - description(字符串,可选):用于查找工具的查询消息(对应 ‘message’) - limit(整数,可选):返回的工具数量(对应 ‘rag_num’),默认值为5 - picked_tool_names(列表,可选):预先选择的工具名称列表以供处理 - return_call_result(布尔值,可选):是否返回提示和名称,默认值为False - return_format(字符串,可选):’json’(默认)或用于旧格式的 ‘legacy’ - return_list_only(布尔值,可选):是否仅以列表形式返回工具规格 - categories(列表,可选):用于筛选的工具类别列表