使用MCP工具的实时风险监控代理
用于网络安全风险评估的自主人工智能代理系统
 
______________________________________________________________________
概述
这是一个自主决策代理,它:
- 监控实时网络安全新闻推送
- 使用机器学习评估风险
- 应用确定性控制逻辑(MCP风格)
- 使用MCP工具进行持久化、报告和警报
- 通过实时仪表板呈现可操作的决策
______________________________________________________________________
MCP集成
基于文件系统的MCP工具 在免费主机上工作(渲染):
- ✅ 决策记录:每个决定都坚持使用JSON
- ✅ 警报文件:自动升级/警报文件生成
- ✅ CSV报告:可导出的电子表格格式
- ✅ Markdown报告:人类可读的文档
- ✅ JSON快照:完成状态捕获
- ✅ 无外部API:100%免费且可部署
______________________________________________________________________
MCP工具架构
graph TB
subgraph Agent[Risk Monitor Agent Core]
Fetch[Fetch News]
Eval[ML Evaluation]
Policy[Policy Decision]
Memory[Memory Check]
end
subgraph MCP[MCP Toolkit]
Log[Decision Logger]
Alert[Alert Generator]
CSV[CSV Report]
MD[Markdown Report]
JSON[JSON Snapshot]
end
subgraph Storage[Filesystem Storage]
Logs[mcp_outputs/logs/]
Alerts[mcp_outputs/alerts/]
Reports[mcp_outputs/reports/]
end
Fetch --> Eval
Eval --> Policy
Policy --> Memory
Memory --> Log
Memory --> Alert
Memory --> CSV
Memory --> MD
Memory --> JSON
Log --> Logs
Alert --> Alerts
CSV --> Reports
MD --> Reports
JSON --> Reports
Logs --> UI[Streamlit UI]
Alerts --> UI
Reports --> UI
style MCP fill:#ffe1e1
style Storage fill:#e1f0ff
style UI fill:#e1f5e1______________________________________________________________________
更新项目结构
risk_monitor_agent/
│
├── fetchers/
│ └── news_fetcher.py # RSS feed ingestion
│
├── llm/
│ └── evaluator.py # ML risk scoring
│
├── policy/
│ └── risk_policy.py # MCP-style decision rules
│
├── memory/
│ ├── state.json # Persistent memory
│ └── memory_store.py # Duplicate detection
│
├── mcp/ # NEW: MCP TOOLKIT
│ └── mcp_toolkit.py # Filesystem-based tools
│
├── mcp_outputs/ # NEW: MCP OUTPUTS
│ ├── logs/ # Decision logs (JSON)
│ ├── alerts/ # Alert files (TXT)
│ └── reports/ # Reports (CSV, MD, JSON)
│
├── ui/
│ └── app.py # Streamlit dashboard
│
├── orchestrator.py # Agent control loop
├── start.sh # Render deployment
└── requirements.txt______________________________________________________________________
MCP工具详解
1.决策记录器
目的:将每个决定都保存到磁盘上 格式:JSON 位置: mcp_outputs/logs/decision_TIMESTAMP.json
{
"title": "Critical Zero-Day in Windows Kernel",
"action": "ESCALATE",
"reason": "Critical incident detected (score: 0.89)",
"scores": {...},
"timestamp": "2025-01-31T10:30:45"
}2.警报生成器
目的:为关键/高优先级项目创建文本文件 格式:纯文本 位置: mcp_outputs/alerts/escalate_TIMESTAMP.txt
================================================================================
RISK MONITOR ALERT - ESCALATE
Generated: 2025-01-31T10:30:45
Total Items: 3
================================================================================
1. Critical Zero-Day in Windows Kernel
Source: The Hacker News
Reason: Critical incident detected (score: 0.89)
Link: https://...3.CSV报告
目的:将所有决策导出为电子表格格式 格式:CSV 位置: mcp_outputs/reports/report_TIMESTAMP.csv
列:时间戳、动作、标题、来源、原因、分数、链接
4.Markdown报告
目的:人类可读的文档 格式:Markdown 位置: mcp_outputs/reports/report_TIMESTAMP.md
按优先级和完整上下文组织。
5.JSON快照
目的:使用元数据完成状态捕获 格式:JSON 位置: mcp_outputs/reports/snapshot_TIMESTAMP.json
包括所有决策+内存统计信息。
______________________________________________________________________
使用MCP工具
自动执行
MCP工具在每个监测周期后自动运行:
- 点击“获取实时风险反馈”
- 代理处理文章
- MCP工具自动执行:
- 记录个人决策 - 为ESCALATE/Alert创建的警报文件 - 生成的报告(CSV、Markdown、JSON)
查看MCP文件
访问 MCP文件 Streamlit UI中的选项卡:
- 报告:下载CSV、Markdown或JSON快照
- 警报:查看/下载升级和警报文件
- 日志:浏览个人决策日志
手动工具执行
from mcp.mcp_toolkit import MCPToolkit
mcp = MCPToolkit()
# Generate specific reports
csv_path = mcp.generate_csv_report(decisions)
md_path = mcp.generate_markdown_report(decisions)
# Create alert file
alert_path = mcp.create_alert_file(critical_decisions, 'ESCALATE')______________________________________________________________________
渲染部署(免费层)
步骤1:准备存储库
chmod +x start.sh步骤2:创建渲染Web服务
- 首选 渲染仪表板
- 点击 新 → 网络服务
- 连接你的Git仓库
- 配置:
- 名字:风险监测代理 - 环境:Python 3 - 生成命令: pip install -r requirements.txt - 开始命令: ./start.sh - 实例类型:免费
步骤3:持久磁盘(可选)
对于跨部署的持久MCP文件:
- 在渲染服务设置中→ 磁盘
- 添加磁盘:
/opt/render/project/src/mcp_outputs - 大小:1GB(免费层)
备注:如果没有持久磁盘,MCP文件将在每次部署时重置。它们仍然致力于基于会话的监控。
______________________________________________________________________
运作原理
MCP代理循环
FETCH → EVALUATE → DECIDE → REMEMBER → MCP TOOLS → PRESENT新MCP阶段:
- 分别记录每个决策
- 为关键项目生成警报文件
- 创建全面的报告
- 所有输出均可通过UI获得
为什么选择这些MCP工具?
基于文件系统=免费且可部署:
- 无API成本(与Slack、电子邮件服务不同)
- 不要求进行验证
- 适用于渲染自由层
- 可在不同环境之间移动
生产效益:
- 审计跟踪(记录的每个决策)
- 导出功能(CSV用于分析)
- 警报文档(可共享文本文件)
- 状态快照(JSON用于备份)
______________________________________________________________________
MCP工具配置
更改输出目录
# In orchestrator.py
agent = RiskMonitorAgent(enable_mcp=True)
# Custom output directory
from mcp.mcp_toolkit import MCPToolkit
agent.mcp = MCPToolkit(output_dir="custom_outputs")清理旧文件
# Remove files older than 7 days
agent.mcp.cleanup_old_files(days=7)禁用MCP工具
# Initialize without MCP
agent = RiskMonitorAgent(enable_mcp=False)______________________________________________________________________
技术栈
| 组件 | 技术 | 目的 |
|---|---|---|
| UI框架 | Streamlit | 实时仪表板 |
| ML模型 | DistilBERT-MNLI | 零样本分类 |
| 数据源 | RSS源 | 实时网络安全新闻 |
| 策略引擎 | Python | 确定性决策 |
| 记忆 | JSON文件 | 持久状态 |
| MCP工具 | 文件系统 | 报告、警报、日志 |
| 部署 | 渲染 | 免费层托管 |
______________________________________________________________________
MCP与传统代理框架
| 功能 | 此代理 | LangChain | AutoGPT |
|---|---|---|---|
| 控制 | 基于代码的规则 | 基于提示 | 基于提示 |
| 工具 | 文件系统MCP | API-重型 | API-轻型 |
| 成本 | $0 | $$(API) | $$$(APIs) |
| 决定论 | 100% | ~60% | ~40% |
| 可解释性 | 完整跟踪 | 有限 | 黑盒 |
| 部署 | 免费套餐 | 需要付费 | 需要付费 |
______________________________________________________________________
局限性
- 仅限文件系统:没有云存储集成(设计用于免费部署)
- 无实时通知:文件已生成,未推送
- 手动下载:用户必须从UI下载报告
- 基于会话的无持久磁盘:重新部署时重置文件(除非使用渲染磁盘)
______________________________________________________________________
贡献
分叉并适应您的需求\*\*
______________________________________________________________________
致谢
- 拥抱脸:变压器库
- 溪流:UI框架
- 黑客新闻与Bleeping计算机:RSS源
- MCP社区:工具设计的灵感
______________________________________________________________________
