wolf0x/AI_IT_AGENT
GitHub: wolf0x/AI_IT_AGENT
面向本地 IT 系统工程师的 AI 辅助运维平台,用自然语言驱动系统分析、日志调查与事件响应,完全本地运行、单二进制部署。
Stars: 1 | Forks: 0
**[English](README.en.md)** | **[中文](#)**
# RustAgent
面向本地 IT 系统工程师的 AI 辅助平台——专注于系统分析、日志调查与事件响应。完全运行在本地,单二进制部署,具备 WebSocket 网关、多模型支持、34+ 内置工具、权限管控、持久记忆与任务调度能力。面向 Windows 环境,开箱即用。
## 项目定位
RustAgent 专为本地 IT 系统工程师设计,解决日常运维中最耗时的三类工作:**系统状态分析**、**日志调查溯源**和**安全事件响应**。
传统方式下,工程师需要在多个工具间反复切换——事件查看器查日志、PowerShell 查进程、注册表编辑器查配置、netstat 查连接——每条线索都需要手动关联和判断。RustAgent 将这些能力统一到一个 AI Agent 中:工程师用自然语言描述问题现象,Agent 自动编排工具链,采集系统状态、检索相关日志、关联分析异常,最终给出结构化的调查结论和处置建议。
**典型场景**:
- **日志调查**:「最近 24 小时系统日志里有哪些错误和警告?按时间线整理出来」——Agent 自动调用事件日志工具,筛选关键级别,按时间排序,关联相关进程和服务状态
- **系统分析**:「当前有哪些异常进程在占用大量资源?检查它们的启动来源」——Agent 编排进程枚举 + 资源占用分析 + Autoruns 持久化检测,给出完整的进程链分析
- **安全排查**:「检查这台机器是否被植入了持久化后门」——Agent 串联注册表审计、计划任务枚举、服务枚举、Autoruns 检测,输出完整的持久化攻击面报告
- **故障定位**:「服务 XXX 启动失败,帮我查原因」——Agent 查询服务状态、关联事件日志、检查依赖服务、分析配置文件,定位根因
**为什么完全本地**:IT 工程师处理的日志、进程信息、注册表数据往往包含敏感的内网拓扑和凭据信息。RustAgent 的 AI 对话引擎、工具执行、数据存储全部在本地完成,API 密钥 AES-256-GCM 加密存储,只有 LLM 推理请求发往云端模型——原始系统数据不出本机。
单个 Rust 编译产物(~28MB)即包含完整的 AI 对话引擎、工具执行层、WebSocket 网关和 Web Dashboard,无需安装额外运行时或外部服务依赖。灵感来源于 Google ADK 的 Agent → LlmAgent → EventStream 架构模式,在 Rust 生态中实现了完整的 Agentic Loop。
## 核心架构
┌─────────────────────────────────────────────────┐
│ Dashboard SPA │
│ (Chat / Skills / MCP / CRON / ...) │
└──────────────────────┬──────────────────────────┘
│ WebSocket / HTTP
┌──────────────────────┴──────────────────────────┐
│ Axum 0.8 Server │
│ (REST API + WS Gateway + SSE) │
├─────────────────────────────────────────────────┤
│ Runner → LlmAgent (Agentic Loop) │
│ ├── Agent trait → EventStream (9 种事件) │
│ ├── CJK-aware token budget 历史裁剪 │
│ ├── Re-prompt 检测与自愈 │
│ └── Truncated JSON repair │
├─────────────────────────────────────────────────┤
│ Tool Layer │
│ ├── 34+ Built-in Tools │
│ ├── MCP Client (stdio + SSE) │
│ ├── Skill Manager (weighted scoring) │
│ └── External Tools (workspace/tools/) │
├─────────────────────────────────────────────────┤
│ Infrastructure │
│ ├── Memory (SQLite + FTS5) │
│ ├── Permission (category gates + bypass detect)│
│ ├── Intent Policy (Block / Audit / Pass) │
│ ├── Scheduler (CRON + interval) │
│ ├── Checkpoint (crash recovery) │
│ ├── Crypto (AES-256-GCM) │
│ └── Knowledge Distillation │
└─────────────────────────────────────────────────┘
## 核心能力
### 权限系统
RustAgent 实现了分类门控(Category-based Gates)+ 意图策略(Intent Policy)的双层安全模型:
- **五级权限分类**:read / write / delete / modify / execute,每种工具调用声明所需权限类别
- **异步用户授权**:当 Agent 请求高权限操作时,通过 WebSocket 向 Dashboard 推送授权请求,用户确认后通过 oneshot channel 返回结果,Agent 循环无阻塞等待
- **命令意图策略引擎**:替代传统黑名单,对 shell_exec 命令进行语义解析(verb + targets),三级判定:
- **Block**(绝对禁止):磁盘格式化、安全日志清除、编码命令等不可逆操作,无视任何授权状态硬拦截
- **Audit**(审计放行):文件删除、进程终止、服务停止等高危但合法操作,记录日志后正常执行
- **Pass**(静默放行):只读查询等常规操作
- **跨类别绕过检测**:当 shell_exec 已免确认(execute:true)但命令意图映射到被拒绝的权限类别(如 delete:false)时,自动升级为需要用户确认,防止 LLM 通过 shell_exec 绕过 file_delete 权限控制
- **权限拒绝强反馈**:拒绝时向 LLM 返回强措辞错误消息,禁止使用替代工具绕过
### 记忆系统
双层记忆架构,兼顾实时检索与长期调查经验积累——Agent 在每次调查中积累的经验会被蒸馏为可复用知识,下次遇到类似问题时自动参考:
**SQLite + FTS5 对话记忆**
- 4 层 Schema 版本演进:基础对话 → FTS5 全文索引 → 检查点 → 用量统计
- CJK bigram 分词:针对中文/日文/韩文优化 unicode61 tokenizer,空格插入单字符以支持 bigram 检索
- BM25 排序的全文搜索,对话历史 3 天/50 条自动清理
- conversations_fts 独立表,避免与主表耦合
**知识蒸馏(Knowledge Distillation)**
- 会话结束时自动触发:检测 WebSocket 断开,最低 4 条消息阈值
- LLM 提取结构化知识条目,写入 `workspace/knowledge/` 下的 5 个分类文件:facts / decisions / lessons / preferences / skill_hints
- Append-only 设计,只增不改,避免知识污染
- 每条记录携带丰富元数据:title、trigger、context、source、confidence
**文件记忆(MEMORY.md)**
- 由 LLM 主动维护的个人笔记,自动注入 System Prompt
- 分为 user(用户画像)、memory(环境笔记)、daily(每日日志)三类
- 与 SQLite 记忆互补:MEMORY.md 用于高优先级上下文,SQLite 用于海量历史检索
### 调度系统
内置轻量级任务调度器,支持定期巡检与自动化监控,无需依赖系统级 cron:
- **CRON 表达式**:标准 5 字段(分 时 日 月 周),支持时区
- **间隔语法**:`every 5m`、`every 2h` 等自然语言风格
- **JSON 持久化**:任务定义存储于 `cron_tasks.json`,重启不丢失
- **30 秒轮询**:调度器每 30 秒检查到期任务,通过独立 Agent 会话执行
- **心跳机制**:从 `HEARTBEAT.md` 读取周期性健康检查清单,仅异常时通知用户,全空则自动跳过
### 工具系统
34+ 内置工具围绕 IT 工程师的核心工作流设计,从日常系统检查到深度安全分析形成完整工具链:
**文件操作**(5 个):FileRead / FileWrite / FileDelete / FileModify / FileList——日志文件分析、配置文件审查的基础能力
**系统工具**:ShellExecTool(PowerShell/CMD)——工程师可通过自然语言驱动任意系统命令,Agent 自动选择合适命令并解释输出结果。内置意图策略引擎(Intent Policy),对命令进行语义级分析:绝对禁止不可逆灾难操作(磁盘格式化、安全日志清除),审计记录高危但合法操作(文件删除、进程终止),静默放行常规只读命令
**事件响应工具组**(14 个,IT 调查核心):
| 工具 | 能力 | 典型调查用途 |
|------|------|-------------|
| 进程分析 | 枚举进程树、资源占用、命令行参数 | 识别异常进程、挖矿程序、无文件攻击 |
| 网络连接 | TCP/UDP 连接、监听端口、关联进程 | 发现 C2 通信、异常外连、横向移动 |
| 注册表审计 | Run/RunOnce、服务配置、策略键值 | 检测持久化后门、策略篡改 |
| 服务枚举 | 服务状态、启动类型、二进制路径 | 发现伪装系统服务的恶意程序 |
| 计划任务 | schtasks 枚举、触发器分析 | 检测定时执行的持久化载荷 |
| 用户账户 | 本地用户、组成员、最近登录 | 排查账户劫持、新增后门账户 |
| 防火墙规则 | 入站/出站规则、允许/阻止策略 | 分析网络访问控制、发现异常放行 |
| 事件日志 | System/Security/Application 日志检索 | **日志调查核心**:按时间/级别/来源筛选,关联分析 |
| 端口扫描 | 本地端口可达性检测 | 验证服务暴露面、排查端口冲突 |
| Autoruns 持久化 | 全量持久化位置扫描 | 一键获取完整攻击面,对标 Sysinternals Autoruns |
| Web 日志扫描 | HTTP 日志安全分析(SQLi/XSS/RCE/目录遍历/扫描器) | 检测 Web 攻击痕迹、异常请求模式、攻击源 IP 统计 |
| EVTX 解析 | 离线解析 Windows 事件日志文件,60+ Event ID 风险分类 | 远程取证分析、安全事件筛选(认证失败/服务安装/Sysmon/日志清除等) |
| 通用日志解析 | 自动识别日志格式(Syslog/CSV/Windows),安全模式匹配 | 多源日志聚合分析、严重级别分类、安全事件检测(27 种模式) |
| PCAP 流量分析 | 离线解析 pcap/pcapng,协议分布、流跟踪、DNS/HTTP 提取、可疑端口检测 | 网络流量取证、C2 通信发现、DNS 隧道检测、异常连接分析 |
这 14 个工具可被 Agent 自动编排——工程师只需描述调查目标,Agent 会按逻辑顺序调用多个工具,交叉关联结果,输出结构化报告。例如排查「开机后系统变慢」时,Agent 可能依次执行:进程分析(找高 CPU 进程)→ 网络连接(检查该进程是否有异常外连)→ Autoruns(追溯其启动来源)→ 事件日志(查找相关时间段的系统事件)。
**恶意软件分析**:Boreal YARA 规则扫描(支持自定义规则集,本地文件加载)+ PE 深度分析(goblin 解析导入表/节区/资源 + iced-x86 反汇编关键函数),可对可疑文件进行静态分析
**浏览器自动化**:chromiumoxide CDP 隔离浏览器(无登录态,用于安全搜索)+ 用户浏览器控制(BSK 扩展,用于需要登录态的操作)
**Web 工具**:WebFetch(抓取页面内容分析)/ WebSearch(搜索漏洞情报、CVE 信息)/ ImageSearch / ImageGen
**生产力工具**:TodoWrite(调查任务规划与进度跟踪)、AskUserQuestion(调查中向工程师确认关键决策)、CronManage(定时巡检任务调度)
**MCP 动态工具**:通过 MCP 协议接入外部工具服务器(如 SIEM、CMDB 等),运行时动态注册,扩展调查能力边界
**外部工具发现**:`workspace/tools/` 目录下的可执行文件自动发现并注册,工程师可将自有的分析脚本纳入 Agent 工具链
### MCP 集成
基于 rmcp v1.8.0 的完整 MCP 客户端实现:
- **双传输协议**:stdio(子进程)+ SSE/StreamableHTTP(远程服务)
- **动态工具注册**:MCP 服务器连接后,其 tools 自动合并到 ToolRegistry
- **认证加密**:AES-256-GCM 加密存储 auth_token,密钥由 Windows MachineGuid 派生
- **多服务器管理**:支持同时连接多个 MCP 服务器,统一工具命名空间
### 技能系统
渐进式加载的程序性知识库,区别于声明式知识:
- **目录结构**:`skills/{Name}/SKILL.md` + 可选 reference.md 等附件
- **加权评分匹配**:name(×4) + description(×2.5) + triggers(×2) + body(×1),sqrt 归一化
- **CJK 感知分词**:中英文混合内容正确 tokenize
- **元工具设计**:Skill 不预加载到 prompt,而是通过 find_matching() 按需激活,节省 token
- **Frontmatter 规范**:YAML 头部始终使用 yaml_quote(),防止冒号值解析错误
### 安全特性
- **API 密钥加密**:AES-256-GCM 静态加密,密钥从 Windows MachineGuid 派生,存储于 `models.json`
- **命令意图策略**(Intent Policy):基于语义解析的三级命令安全评估(Block/Audit/Pass),替代传统字符串黑名单
- **跨类别绕过防御**:检测 LLM 通过 shell_exec 绕过 file_delete 等权限控制的行为,自动升级为需要用户确认
- **绝对禁止清单**:磁盘格式化(Format-Volume/Clear-Disk)、安全日志清除(Clear-EventLog Security)、引导记录破坏(bcdedit/bootrec)、编码命令(-EncodedCommand)——无论权限状态如何,硬拦截不可覆盖
- **密码认证 Dashboard**:`.password` 文件保护的 Web 界面访问控制
- **CDP 浏览器隔离**:chromiumoxide 运行在独立 Chromium 实例中,无用户登录态
### 检查点与崩溃恢复
- 每轮工具调用后持久化对话历史到 SQLite
- 异常断开后可从最近检查点恢复上下文
- 支持会话摘要(summary)压缩,减少历史 token 占用
### Dashboard
密码认证的 SPA 单页应用,功能覆盖 Agent 全生命周期管理:
- **Chat**:实时对话,流式输出,工具调用可视化
- **Settings**:模型配置、Agent 参数调整
- **Skills**:技能浏览、创建、编辑、删除
- **MCP**:MCP 服务器管理与状态监控
- **History**:对话历史检索与回溯
- **CRON**:定时任务管理(增删改查、启停)
- **Tools**:内置工具与外部工具列表
- **Memory**:记忆内容查看与管理
- **Usage**:Token 用量分析图表
## 技术栈
| 组件 | 技术选型 |
|------|----------|
| 运行时 | Tokio (full features) |
| HTTP/WS | Axum 0.8 |
| LLM 协议 | OpenAI-compatible streaming |
| 数据库 | SQLite (rusqlite bundled) + FTS5 |
| MCP | rmcp v1.8.0 (stdio + SSE) |
| 浏览器 | chromiumoxide (CDP) |
| 加密 | aes-gcm (AES-256-GCM) |
| YARA | boreal (规则扫描) |
| PE 解析 | goblin + iced-x86 (反汇编) |
| 序列化 | serde + serde_json + serde_yaml + toml |
| 日志分析 | regex(模式匹配)+ evtx(EVTX 解析) |
| 流量分析 | pcap-parser(pcap/pcapng 离线解析) |
| 日志 | tracing + tracing-subscriber (env-filter) |
## 配置
运行时工作目录:`%USERPROFILE%\.RustAgent\workspace\`
workspace/
├── config.toml # 主配置(Server / Agent / Model)
├── models.json # 模型配置(API Key 加密存储)
├── mcp_servers.json # MCP 服务器配置
├── cron_tasks.json # 定时任务定义
├── .password # Dashboard 访问密码
├── memory/
│ └── memory.db # SQLite 记忆数据库
├── knowledge/ # 知识蒸馏输出(append-only)
├── skills/ # 技能目录
├── tools/ # 外部工具目录
├── logs/ # JSONL 对话日志
├── static/ # Dashboard 静态资源
└── output/ # 工具输出(截图/报告等)
## 构建与运行
# 编译 release 版本(~28MB,LTO + strip)
cargo build --release
# 二进制产物
target/release/rust-agent.exe
# 首次运行自动创建 workspace 目录结构
.\target\release\rust-agent.exe
Release profile 配置:`opt-level = 3`、`lto = true`、`strip = true`,确保最小二进制体积与最优运行性能。
## 项目结构
src/
├── main.rs # 入口:workspace 初始化、依赖装配、启动服务器
├── server.rs # Axum HTTP/WS 服务器、REST API、SSE 流
├── config.rs # TOML 配置加载
├── agent/
│ ├── mod.rs # Agent trait、EventStream 类型
│ ├── llm_agent.rs # LlmAgent:Agentic Loop、工具执行、历史裁剪
│ └── event.rs # AgentEvent(9 种事件类型)
├── model/
│ ├── mod.rs # Llm trait、ChatMessage、ToolDefinition
│ └── openai.rs # OpenAI-compatible streaming client
├── tool/
│ ├── mod.rs # Tool trait、ToolRegistry、二进制解析
│ ├── file_ops.rs # 文件操作 5 工具
│ ├── shell_exec.rs # Shell 执行(意图策略引擎集成)
│ ├── mcp_client.rs # MCP 客户端管理器
│ ├── memory_md.rs # MEMORY.md 读写
│ ├── cron_manage.rs # CRON 任务管理
│ ├── todo_update.rs # 任务规划跟踪
│ ├── ir_*.rs # 事件响应工具(14 个,含日志分析+流量分析)
│ └── malware_*.rs # 恶意软件分析(YARA + PE)
├── permission.rs # 权限检查器(分类门控 + 异步授权 + 跨类别绕过检测)
├── policy/ # 命令意图策略引擎
│ ├── mod.rs # IntentPolicy(Block/Audit/Pass 三级判定)
│ ├── parse.rs # 轻量 PS/CMD 意图解析器(verb + targets)
│ └── rules.rs # BlockRule(绝对禁止)+ AuditRule(审计日志)
├── memory.rs # MemoryStore(SQLite + FTS5)
├── distill.rs # 知识蒸馏引擎
├── scheduler.rs # CRON 调度器
├── heartbeat.rs # 心跳健康检查
├── skill/
│ ├── mod.rs # SkillManager
│ └── types.rs # SelectionPolicy、加权评分
├── crypto.rs # AES-256-GCM 加密
├── checkpoint.rs # 对话检查点(崩溃恢复)
├── runner.rs # 会话管理、Agent 调度
├── context.rs # 上下文层级(Readonly → Callback → Tool)
├── callbacks.rs # 生命周期钩子
├── error.rs # 结构化错误
├── model_store.rs # 模型配置持久化(加密 API Key)
├── external_tools.rs # 外部工具发现
├── log/ # JSONL 日志
└── web/ # 静态文件服务
## License
MIT
标签:IT运维, Rust, Socks5代理, 可视化界面, 系统分析, 网络分析, 网络流量审计, 自动化调查