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