989tqT/tracer-mesh

GitHub: 989tqT/tracer-mesh

一个基于本地 LLM 的开源多智能体框架,用于自主扫描系统与网络威胁并生成自动化代码补丁。

Stars: 0 | Forks: 0

# 📦 Tracer Mesh (TM) [![CI Status](https://img.shields.io/github/actions/workflow/status/989tqT/tracer-mesh/ci.yml?branch=main&style=flat-square)](https://github.com/989tqT/tracer-mesh/actions) [![License](https://img.shields.io/badge/License-Apache--2.0-blue.svg?style=flat-square)](LICENSE) [![Python Version](https://img.shields.io/badge/Python-3.11%20%7C%203.12-green?style=flat-square)](https://www.python.org/) [![Local LLM](https://img.shields.io/badge/Local%20LLM-Ollama%20%7C%20vLLM-orange?style=flat-square)](https://ollama.com) **Tracer Mesh** 是一个 100% 开源、本地优先的多智能体 AI 框架,旨在扫描本地系统配置、分析网络流量、查询本地 CVE 仓库、威胁狩猎漏洞,并生成自动化的代码补丁。 ## 🚀 核心特性 * **事件驱动的 Broker 架构:** 采用异步 Redis Streams 来处理遥测数据的摄取和消费者组的分发。 * **本地 RAG 集成:** 交叉比对 SQLite 记录和通过 Ollama 在本地生成的 ChromaDB 向量嵌入。 * **结构化 LLM 评估:** 提示本地 LLM 返回已解析的 JSON 格式漏洞评估结果。 ## 🗺️ 系统架构 ``` graph TD %% Telemetry Sys[System State] -->|telemetry.system.inventory| Broker[(Redis Streams)] Net[Network Traffic] -->|telemetry.network.events| Broker %% Core Broker & Storage Broker -->|Consume Events| VulnAgent[Vulnerability Agent] VulnAgent -->|Query SQL / Vector| StateStore[(SQLite + ChromaDB)] VulnAgent -->|Structured Query| Ollama[Local Ollama / vLLM] Ollama -->|Return JSON| VulnAgent %% Remediation VulnAgent -->|analysis.vulnerability.found| Broker Broker -->|Consume Findings| PatchAgent[Patch Proposer Agent] PatchAgent -->|Generate Fix| Ollama PatchAgent -->|remediation.patch.proposed| Output[Admin Control Panel] ``` 各模块的详细说明请参阅 [docs/architecture.md](docs/architecture.md)。 ## 💻 系统要求 * **Python:** 需要 3.12+ 版本。 * **容器化:** 需要 Docker 以在本地启动 Redis 和 Ollama 实例。 * **硬件配置:** * **内存:** 至少 8GB RAM。如果运行大于 7B 的模型,建议使用 16GB RAM。TinyLlama 可以在配置较低的系统中运行。 ## ⚡ 快速开始 请按照此分步工作流来配置和运行 Tracer Mesh 编排器: ### 1. 克隆并安装依赖 获取代码仓库并安装依赖: ``` git clone https://github.com/989tqT/tracer-mesh.git cd tracer-mesh pip install ruff pytest pytest-asyncio redis httpx chromadb jinja2 pyyaml pydantic-settings ``` ### 2. 配置环境变量并拉取模型 你可以运行自动配置脚本来检测系统 RAM,推荐最合适的模型,从 Ollama 拉取它,并写入你的 `.env` 文件: ``` python scripts/setup_models.py ``` 或者,你可以手动将 `.env.example` 复制为 `.env` 并拉取模型: ``` cp .env.example .env docker exec -it ollama ollama pull tinyllama docker exec -it ollama ollama pull nomic-embed-text ``` ### 3. 模型推荐参考 根据你的系统硬件,选择匹配的推理模型: | 系统内存 | 推荐模型 | 模型大小 | 备注 | | :--- | :--- | :--- | :--- | | **低于 4GB RAM** | `tinyllama` | ~1.1GB | 响应最快,基础的安全分析 | | **4GB 到 8GB RAM** | `qwen2.5:1.5b` 或 `phi` | ~1.5GB - 2.5GB | 速度和质量之间取得了较好的平衡 | | **16GB 到 32GB RAM**
*(或更高)* | `qwen2.5-coder:32b`
`mistral-small:22b`
`qwen2.5:32b` | ~13GB - 20GB | 最高推理质量 | | **64GB RAM 或更高**
*(工作站 / 高 VRAM)* | `llama3.3:70b`
`deepseek-r1:70b`
`qwen2.5:72b`
`gpt-oss:120b` | ~40GB - 70GB | 最高本地性能 ### 4. 启动 Docker 基础设施 在后台运行 Redis 和 Ollama 容器,并下载模型: ``` docker run -d --name redis -p 6379:6379 redis:alpine docker run -d --name ollama -p 11434:11434 -v ollama_data:/root/.ollama ollama/ollama ``` ### 5. 填充 CVE 数据库 初始化并将向量嵌入加载到 SQLite 和 ChromaDB 数据存储中: ``` mkdir -p data/cve_db/chroma powershell -Command "Set-Item Env:PYTHONPATH src; python scripts/seed_cve.py" ``` ### 6. 启动系统编排器 执行主应用程序,并发运行所有 4 个 agent: ``` powershell -Command "Set-Item Env:PYTHONPATH src; python -m tracer_mesh.main --recon --network --patch" ``` 日志输出将显示每个 agent 的启动、网络端口轮询以及流监听循环。 ### 7. 通过模拟遥测数据摄取进行验证 在另一个终端中,触发模拟的系统软件包状态更新: ``` powershell -Command "Set-Item Env:PYTHONPATH src; python scripts/mock_telemetry.py" ``` 立即,你将观察到编排器日志指示出与数据库中 CVE 定义相匹配的漏洞。 使用 CLI 工具检查 Redis 内部的输出流: ``` docker exec -it redis redis-cli XREAD BLOCK 5000 STREAMS analysis.vulnerability.found remediation.patch.proposed 0-0 0-0 ``` ## 📁 项目结构与开发 ### 目录概览 ``` tracer-mesh/ ├── configs/ # Configuration files ├── data/ # SQLite and Chroma database files ├── docs/ # Technical markdown documentation ├── scripts/ # Database seeder and mock telemetry triggers │ ├── mock_telemetry.py │ └── seed_cve.py ├── src/ # Project source code │ └── tracer_mesh/ │ ├── agents/ # Base, Recon, Network, Vuln, and Patch agents │ ├── core/ # Redis broker, database client, and LLM utilities │ ├── templates/ # Jinja prompts templates │ └── main.py # Main runner orchestrator └── tests/ # Pytest test cases suite ``` ### 开发指南 #### 运行单元测试 执行全套单元测试: ``` powershell -Command "Set-Item Env:PYTHONPATH src; python -m pytest tests/" ``` #### 贡献规则 * **仅限关键字参数:** 在关键函数上始终强制使用 Python 仅限关键字参数(`*`),以保持 API 的稳健性。 * **代码格式化:** 使用 Ruff 清理并验证更改: ruff check src/ ## 📚 技术文档 * **[架构概述](docs/architecture.md):** 拓扑结构和组件说明。 * **[用户指南](docs/user-guide.md):** 安装、配置详情以及自定义规则映射。 * **[更新日志](CHANGELOG.md):** 发布历史和变更追踪。 * **[贡献指南](CONTRIBUTING.md):** 编码规范和 PR 提交说明。 * **[安全政策](SECURITY.md):** 报告安全问题的指南。 ## 📄 许可证 基于 Apache-2.0 许可证分发。查看 [LICENSE](LICENSE) 了解更多信息。
标签:AI智能体, AI风险缓解, GPT, Python, 多智能体框架, 搜索引擎查询, 无后门, 本地大模型, 漏洞管理, 自动化补丁, 请求拦截, 逆向工具