FLYsecAgent
这是一个基于大语言模型和MCP(Model-Controller-Plugin)和Rag架构的网络安全智能助手项目。它旨在通过自然语言交互,帮助用户执行渗透测试任务、查询安全信息、分析流量包等。
功能特性
- 自然语言交互: 用户可以通过自然语言向AI助手提问和下达指令。
- MCP服务器集成: 通过
mcp.json
配置文件,可以灵活集成和管理多个MCP服务器,扩展助手的能力。 - 工具调用: AI助手能够根据用户请求,调用配置的MCP服务器提供的工具(例如:nmap, gobuster, fofa, tavily-search等)。
- 对话历史记忆: 支持多轮对话,能够记住之前的交互内容。
- 流式输出: AI的回答可以流式输出,提供更好的用户体验。
- 知识库增强 (可选): 支持通过本地知识库Rag(
knowledge_base_docs
目录)来增强AI的回答质量。 - 可配置模型: 支持配置不同的语言模型参数。
- 启动效果
sqlmap调用效果:
此外还可以调用dirsearch,nmap等工具
安装指南
-
克隆仓库:
git clone https://github.com/hnking-star/FlySecAgent.git cd agent
-
创建并激活虚拟环境 (推荐):
python -m venv .venv
- Windows:
.venv\Scripts\acti
- Windows:
vate - macOS/Linux:
bash source .venv/bin/activate ```
- 安装依赖:
pip install -r requirements.txt
-
安装
uv
(重要): 本项目使用uv
作为 Python 包的运行器和部分场景下的安装器。start.bat
脚本会自动尝试为您安装uv
。-
如果您希望手动安装或在其他环境中使用,可以运行:
pip install uv
或者参考
uv
的官方文档进行安装。 确保uv
已成功安装并可以从命令行调用。
使用方法
- 配置MCP服务器: 修改
mcp.json
文件,根据您的环境和需求配置MCP服务器。确保每个服务器的启动命令和参数正确无误。例如,您可能需要更新TAVILY_API_KEY
或其他服务器特定的路径/参数。 - 准备知识库 (可选): 如果您希望使用知识库增强功能,请将相关的文本文件(例如
.txt
)放入knowledge_base_docs
文件夹中。 -
运行主程序:
python main.py
程序启动后,您可以根据提示输入您的问题或指令。
文件结构
agent/
├── .venv/ # Python虚拟环境 (被.gitignore忽略)
├── knowledge_base_docs/ # 知识库文档存放目录
│ └── ...
├── .gitignore # Git忽略文件配置
├── main.py # 主程序入口
├── mcp.json # MCP服务器配置文件
├── rag_embedding.py # RAG嵌入相关 (如果使用)
├── rag_split.py # RAG文本分割相关 (如果使用)
├── README.md # 项目说明文件
├── requirements.txt # Python依赖列表
├── LICENSE # 项目许可证
└── ... (其他脚本或配置文件)
配置文件 (.env
)
BASE_URL=https://api.302.ai
API_KEY=your_r_api_key
MODEL_NAME=gpt-4o
EMBEDDING_API_KEY=your_embedding_api_key
OPENAI_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
上面对应的是所用模型api和key,下面对应的是embedding的key和url(使用阿里云的)
配置文件 (mcp.json
)
此文件用于定义AI助手可以连接和使用的MCP服务器。每个服务器条目应包含:
name
: 服务器的唯一名称。params
: 启动服务器所需的参数,通常包括command
和args
。cache_tools_list
: 是否缓存工具列表。
MCP示例服务器配置:
stdio
{
"name": "tavily-search",
"params": {
"command": "uv",
"args": [
"--directory",
"F:\\ai\\mcp\\mcp_tool\\mcp-server-tavily",
"run",
"tavily-search"
],
"env": {
"TAVILY_API_KEY": "your_tavily_api_key_here",
"PYTHONIOENCODING": "utf-8"
}
},
"cache_tools_list": true
}
请确保将示例中的路径和API密钥替换为您自己的配置。
sse
{"name":"mcpname",
"url":"http://127.0.0.1:8009/sse"
},
知识库配置
在knowledge_base_docs添加相应的文件即可
温馨提示:本文最后更新于2025年5月14日 12:17,若内容或图片失效,请在下方留言或联系博主。