Files
CyberStrikeAI/tools
2025-11-08 20:32:50 +08:00
..
2025-11-08 20:32:50 +08:00
2025-11-08 20:32:50 +08:00
2025-11-08 20:32:50 +08:00
2025-11-08 20:32:50 +08:00
2025-11-08 20:32:50 +08:00
2025-11-08 20:32:50 +08:00

工具配置文件说明

概述

每个工具现在都有独立的配置文件,存放在 tools/ 目录下。这种方式使得工具配置更加清晰、易于维护和管理。

配置文件格式

每个工具配置文件是一个 YAML 文件,包含以下字段:

必需字段

  • name: 工具名称(唯一标识符)
  • command: 要执行的命令
  • enabled: 是否启用true/false

可选字段

  • args: 固定参数列表(数组)
  • short_description: 简短描述一句话说明工具用途用于工具列表减少token消耗
  • description: 工具详细描述(支持多行文本,用于工具文档和详细说明)
  • parameters: 参数定义列表

工具描述

简短描述 (short_description)

  • 用途用于工具列表减少发送给大模型的token消耗
  • 要求一句话20-50字说明工具的核心用途
  • 示例"网络扫描工具,用于发现网络主机、开放端口和服务"

详细描述 (description)

支持多行文本,应该包含:

  1. 工具功能说明:工具的主要功能
  2. 使用场景:什么情况下使用这个工具
  3. 注意事项:使用时的注意事项和警告
  4. 示例:使用示例(可选)

重要说明

  • 工具列表发送给大模型时,使用 short_description(如果存在)
  • 如果没有 short_description,系统会自动从 description 中提取第一行或前100个字符
  • 详细描述可以通过 MCP 的 resources/read 接口获取URI: tool://tool_name

这样可以大幅减少token消耗特别是当工具数量很多时如100个工具

参数定义

每个参数可以包含以下字段:

  • name: 参数名称
  • type: 参数类型string, int, bool, array
  • description: 参数详细描述(支持多行)
  • required: 是否必需true/false
  • default: 默认值
  • flag: 命令行标志(如 "-u", "--url"
  • position: 位置参数的位置(整数)
  • format: 参数格式("flag", "positional", "combined", "template"
  • template: 模板字符串(用于 format="template"
  • options: 可选值列表(用于枚举类型)

参数描述要求

参数描述应该包含:

  1. 参数用途:这个参数是做什么的
  2. 格式要求:参数值的格式要求
  3. 示例值:具体的示例值
  4. 注意事项:使用时需要注意的事项

示例

参考 tools/ 目录下的现有工具配置文件:

  • nmap.yaml: 网络扫描工具
  • sqlmap.yaml: SQL注入检测工具
  • nikto.yaml: Web服务器扫描工具
  • dirb.yaml: Web目录扫描工具
  • exec.yaml: 系统命令执行工具

添加新工具

要添加新工具,只需在 tools/ 目录下创建一个新的 YAML 文件,例如 my_tool.yaml

name: "my_tool"
command: "my-command"
enabled: true
short_description: "一句话说明工具用途"  # 简短描述(推荐)
description: |
  工具详细描述...
  
  **功能:**
  - 功能1
  - 功能2
  
  **使用场景:**
  - 场景1
  - 场景2

parameters:
  - name: "param1"
    type: "string"
    description: |
      参数详细描述...
      
      **示例值:**
      - "value1"
      - "value2"
    required: true
    flag: "-p"
    format: "flag"

保存文件后,重启服务即可自动加载新工具。

禁用工具

要禁用某个工具,只需将配置文件中的 enabled 字段设置为 false,或者直接删除/重命名配置文件。