feat: 实现 Tool Search Tool 动态工具发现机制
- 新增 ToolRegistry 工具注册表,支持核心工具和延迟加载工具分离 - 新增 tool_search 元工具,支持关键词搜索发现可用工具 - 新增基于关键词的搜索算法,按相关度评分排序 - 为所有工具添加 metadata(分类、关键词、延迟加载标识) - 修改 Agent 支持动态工具注入,tool_search 结果自动添加到可用工具 - 核心工具(tool_search, bash)始终加载,其他工具按需发现
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import * as fs from 'fs/promises';
|
||||
import * as path from 'path';
|
||||
import type { Tool, ToolResult } from '../../types/index.js';
|
||||
import type { ToolResult } from '../../types/index.js';
|
||||
import type { ToolWithMetadata } from '../types.js';
|
||||
import { loadDescription } from '../load_description.js';
|
||||
import { getPermissionManager } from '../../permission/index.js';
|
||||
|
||||
@@ -18,9 +19,16 @@ async function copyRecursive(source: string, dest: string): Promise<void> {
|
||||
}
|
||||
}
|
||||
|
||||
export const copyFileTool: Tool = {
|
||||
export const copyFileTool: ToolWithMetadata = {
|
||||
name: 'copy_file',
|
||||
description: loadDescription('copy_file'),
|
||||
metadata: {
|
||||
name: 'copy_file',
|
||||
category: 'filesystem',
|
||||
description: '复制文件或目录',
|
||||
keywords: ['copy', 'file', 'cp', 'duplicate', '复制', '文件', '拷贝'],
|
||||
deferLoading: true,
|
||||
},
|
||||
parameters: {
|
||||
source: {
|
||||
type: 'string',
|
||||
|
||||
Reference in New Issue
Block a user