diff --git a/tools/cat.yaml b/tools/cat.yaml new file mode 100644 index 00000000..08e63309 --- /dev/null +++ b/tools/cat.yaml @@ -0,0 +1,24 @@ +name: "cat" +enabled: true +command: "cat" +short_description: "读取并输出文件内容" +description: | + 读取文件内容并输出到标准输出。用于查看文件内容。 + + **使用场景:** + - 查看文本文件内容 + - 读取配置文件 + - 查看日志文件 + + **注意事项:** + - 如果文件很大,结果可能会被保存到存储中 + - 只能读取文本文件,二进制文件可能显示乱码 + +parameters: + - name: "file" + type: "string" + description: "要读取的文件路径" + required: true + format: "positional" + position: 0 + diff --git a/tools/query-execution-result.yaml b/tools/query-execution-result.yaml new file mode 100644 index 00000000..79c5e397 --- /dev/null +++ b/tools/query-execution-result.yaml @@ -0,0 +1,159 @@ +name: "query_execution_result" +# 注意:这是一个内部工具,不执行外部命令 +# command 字段设置为特殊值,实际功能需要在代码中实现 +# 实现位置:internal/mcp/server.go 或 internal/handler/agent.go +command: "internal:query_execution_result" +enabled: true +# 简短描述(用于工具列表,减少token消耗) +short_description: "查询工具执行结果,支持分页、搜索和过滤大结果集" +# 工具详细描述 +description: | + 查询工具执行结果工具,用于查询已保存的工具执行结果。当工具返回的结果过大时,系统会自动保存完整结果,此工具用于按需查询这些结果。 + + **主要功能:** + - 分页查询:支持分页浏览大结果集,避免一次性加载过多数据 + - 全文搜索:在结果中搜索特定关键词 + - 条件过滤:根据条件过滤结果(如只显示包含"error"的行) + - 元信息查询:获取结果的基本信息(总行数、总页数等) + + **使用场景:** + - 当工具返回的结果超过阈值(如50KB)时,系统会自动保存结果 + - 需要查看完整结果时,使用此工具按需查询 + - 需要搜索特定信息时,使用搜索功能 + - 需要过滤特定类型的内容时,使用过滤功能 + + **工作流程:** + 1. 工具执行完成后,如果结果过大,系统会保存完整结果并返回执行ID + 2. 使用此工具,通过 execution_id 查询结果 + 3. 可以分页浏览、搜索关键词或过滤条件 + + **注意事项:** + - execution_id 是必需参数,从工具执行的返回消息中获取 + - 默认每页返回100行,可以通过 limit 参数调整 + - 搜索和过滤功能可以组合使用 + - 结果会保留一段时间(默认7天),之后可能被清理 + +# 参数定义 +parameters: + - name: "execution_id" + type: "string" + description: | + 工具执行的ID。从工具执行完成后的返回消息中获取。 + + **格式要求:** + - 执行ID字符串,格式通常为 "exec_xxxxx" 或 UUID + - 必需参数,不能为空 + + **示例值:** + - "exec_12345" + - "550e8400-e29b-41d4-a716-446655440000" + + **如何获取:** + - 当工具返回大结果时,系统会在消息中提供 execution_id + - 格式示例:`工具执行完成。结果已保存(ID: exec_12345)` + + **注意事项:** + - 确保 execution_id 正确,否则查询会失败 + - execution_id 区分大小写 + required: true + format: "positional" + position: 0 + + - name: "page" + type: "integer" + description: | + 要查询的页码。从1开始计数。 + + **格式要求:** + - 正整数,从1开始 + - 如果不指定,默认为1(第一页) + + **示例值:** + - 1 (第一页,默认) + - 2 (第二页) + - 10 (第十页) + + **注意事项:** + - 页码不能小于1 + - 如果指定的页码超过总页数,会返回空结果 + - 建议先查询第一页了解结果结构,再决定是否需要查看其他页 + required: false + default: 1 + + - name: "limit" + type: "integer" + description: | + 每页返回的行数。控制单次查询返回的数据量。 + + **格式要求:** + - 正整数,建议范围:10-500 + - 如果不指定,默认为100行 + + **示例值:** + - 50 (每页50行) + - 100 (每页100行,默认) + - 200 (每页200行) + + **注意事项:** + - 较小的 limit 可以减少单次查询的token消耗 + - 较大的 limit 可以减少查询次数,但会增加单次返回的数据量 + - 建议根据实际需要调整,平衡查询次数和数据量 + required: false + default: 100 + + - name: "search" + type: "string" + description: | + 搜索关键词。在结果中搜索包含此关键词的行。 + + **格式要求:** + - 任意字符串 + - 搜索是大小写敏感的 + - 支持部分匹配 + + **示例值:** + - "open" (搜索包含"open"的行,如开放端口) + - "error" (搜索包含"error"的行) + - "CVE-2023" (搜索包含CVE编号的行) + - "80/tcp" (搜索特定端口) + + **使用场景:** + - 快速定位关键信息 + - 查找特定类型的条目 + - 过滤感兴趣的内容 + + **注意事项:** + - 搜索会在所有行中进行,可能返回多页结果 + - 搜索结果也会分页返回 + - 可以结合 page 和 limit 参数控制返回结果 + - 如果同时指定 search 和 filter,会先应用 filter,再在结果中搜索 + required: false + + - name: "filter" + type: "string" + description: | + 过滤条件。只返回包含此关键词的行。 + + **格式要求:** + - 任意字符串 + - 过滤是大小写敏感的 + - 支持部分匹配 + + **示例值:** + - "error" (只返回包含"error"的行) + - "warning" (只返回包含"warning"的行) + - "open" (只返回包含"open"的行) + - "200" (只返回包含"200"的行,如HTTP状态码) + + **使用场景:** + - 只查看错误信息 + - 只查看特定状态的结果 + - 过滤掉不感兴趣的内容 + + **注意事项:** + - 过滤会在所有行中进行,可能返回多页结果 + - 过滤结果也会分页返回 + - 可以结合 page 和 limit 参数控制返回结果 + - 如果同时指定 search 和 filter,会先应用 filter,再在结果中搜索 + required: false +