mirror of
https://github.com/Ed1s0nZ/CyberStrikeAI.git
synced 2026-03-31 00:09:29 +02:00
工具配置文件说明
概述
每个工具现在都有独立的配置文件,存放在 tools/ 目录下。这种方式使得工具配置更加清晰、易于维护和管理。
配置文件格式
每个工具配置文件是一个 YAML 文件,包含以下字段:
必需字段
name: 工具名称(唯一标识符)command: 要执行的命令enabled: 是否启用(true/false)
可选字段
args: 固定参数列表(数组)short_description: 简短描述(一句话说明工具用途,用于工具列表,减少token消耗)description: 工具详细描述(支持多行文本,用于工具文档和详细说明)parameters: 参数定义列表
工具描述
简短描述 (short_description)
- 用途:用于工具列表,减少发送给大模型的token消耗
- 要求:一句话(20-50字)说明工具的核心用途
- 示例:
"网络扫描工具,用于发现网络主机、开放端口和服务"
详细描述 (description)
支持多行文本,应该包含:
- 工具功能说明:工具的主要功能
- 使用场景:什么情况下使用这个工具
- 注意事项:使用时的注意事项和警告
- 示例:使用示例(可选)
重要说明:
- 工具列表发送给大模型时,使用
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: 可选值列表(用于枚举类型)
参数描述要求
参数描述应该包含:
- 参数用途:这个参数是做什么的
- 格式要求:参数值的格式要求
- 示例值:具体的示例值
- 注意事项:使用时需要注意的事项
示例
参考 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,或者直接删除/重命名配置文件。