|
|
hai 1 mes | |
|---|---|---|
| .. | ||
| data | hai 1 mes | |
| frontend | hai 1 mes | |
| outputs | hai 1 mes | |
| src | hai 1 mes | |
| .env.example | hai 1 mes | |
| .gitignore | hai 1 mes | |
| README.md | hai 1 mes | |
| main.ipynb | hai 1 mes | |
| requirements.txt | hai 1 mes | |
| run_api.py | hai 1 mes | |
基于 Hello-Agents 的多智能体网络健康报告系统,支持地图展示站点、点击查看站点健康报告,并支持默认最近一周与自定义时间窗口查询。
本项目面向企业网络运维场景,演示如何用多智能体协作生成可读、可执行的网络健康报告。
start_date 和 end_dateoutputs/*.md,并返回可下载链接monkeyhlj-NetworkHealthReportAgent/
├── README.md # 项目说明文档
├── requirements.txt # Python 依赖
├── .env.example # LLM/模型环境变量模板
├── main.ipynb # Notebook 演示入口(7部分 walkthrough)
├── run_api.py # FastAPI 启动入口(uvicorn 指向此文件)
├── data/
│ ├── sites.json # 站点地理信息(经纬度、区域、等级)
│ ├── device_inventory.json # 设备台账(交换机/WLC/AP 等)
│ ├── device_status_timeseries.json # 设备状态时序(在线率、时延、丢包等)
│ ├── network_logs.json # 网络日志(告警事件)
│ ├── terminal_compliance.json # 终端接入与合规数据
│ └── test_cases.json # 报告接口测试样例
├── outputs/
│ ├── review_report.md # 示例报告
│ └── site-*_YYYY-MM-DD_*.md # 问答导出的站点周报文件(动态生成)
├── src/
│ ├── __init__.py
│ ├── api/
│ │ └── main.py # API 路由(/api/sites /api/reports /api/chat /api/chat/stream /api/outputs)
│ ├── agents/
│ │ ├── base.py # Agent 基类,负责 LLM 与 MCPTool 装载
│ │ ├── log_analysis_agent.py # 日志分析 Agent
│ │ ├── device_status_agent.py # 设备状态 Agent
│ │ ├── user_status_agent.py # 用户状态 Agent
│ │ ├── network_health_report_agent.py # 综合报告 Agent
│ │ ├── site_qa_agent.py # 全局问答/报告导出 Agent
│ │ └── orchestrator.py # 多 Agent 编排与总流程
│ ├── tools/
│ │ ├── data_repository.py # 数据访问层(读取 data/*.json)
│ │ └── data_mcp_server.py # MCP 服务,向 Agent 暴露数据工具
│ └── utils/
│ └── date_utils.py # 日期窗口处理(默认最近 7 天)
└── frontend/
├── package.json # 前端依赖和脚本
├── vite.config.js # Vite 开发配置
├── index.html
└── src/
├── main.js # 前端入口
├── App.vue # 页面主视图(左地图+下报告+右问答)
├── api.js # 后端 API 调用与地址探测
├── styles.css # 页面样式
└── components/
├── SiteMap.vue # 地图组件
└── ReportPanel.vue # 报告展示组件
说明:目录树中省略了 venv/、__pycache__/、.idea/、memory/ 等运行时或本地环境目录。
系统支持两种模式:
先复制模板:
cp .env.example .env
Windows PowerShell 可使用:
Copy-Item .env.example .env
然后至少配置以下任意一组:
统一配置(推荐)
LLM_MODEL_ID=gpt-4o-mini
LLM_API_KEY=你的密钥
LLM_BASE_URL=https://api.openai.com/v1
LLM_TIMEOUT=60
OpenAI 兼容配置(备选)
OPENAI_API_KEY=你的密钥
OPENAI_BASE_URL=https://api.openai.com/v1
OPENAI_MODEL=gpt-4o-mini
说明:当前代码在 agents/base.py 中通过以下逻辑判断是否启用 LLM:
uvicorn run_api:app --reload --port 8000
可先访问健康检查:
curl "http://localhost:8000/api/health"
再请求任意站点报告,确认接口返回正常:
curl "http://localhost:8000/api/reports/site-sh-fin"
pip install -r requirements.txt
cp .env.example .env
Windows PowerShell 可使用:
Copy-Item .env.example .env
如果要启用 LLM 模式,请在 .env 配置 LLM_API_KEY(或 OPENAI_API_KEY)。
uvicorn run_api:app --reload --port 8000
API 入口:http://localhost:8000
GET /api/sitesGET /api/reports/{site_id}start_date、end_date(格式 YYYY-MM-DD)GET /api/reportsPOST /api/chatPOST /api/chat/streamGET /api/outputs/{filename}GET /api/runtimecd frontend
npm install
npm run dev
前端默认地址:http://localhost:5173
查询上海站点最近一周报告:
curl "http://localhost:8000/api/reports/site-sh-fin"
查询深圳站点自定义时间窗口:
curl "http://localhost:8000/api/reports/site-sz-ops?start_date=2026-05-23&end_date=2026-05-29"
查询全部站点报告:
curl "http://localhost:8000/api/reports"
让问答 Agent 生成某个站点近一周报告,并返回可下载文件:
curl -X POST "http://localhost:8000/api/chat" \
-H "Content-Type: application/json" \
-d '{
"question": "帮我生成 site-sh-fin 近一周的报告",
"site_id": "site-sh-fin",
"start_date": "2026-05-23",
"end_date": "2026-05-29"
}'
返回结果里会包含 artifact.download_url,前端会把它展示成下载链接,生成文件默认保存在 outputs/ 目录下。
全局问答示例:
curl -X POST "http://localhost:8000/api/chat/stream" \
-H "Content-Type: application/json" \
-d '{
"question": "上海有哪些 site?",
"start_date": "2026-05-23",
"end_date": "2026-05-29"
}'
如果当前选中了某个站点,问题里写“帮我生成当前站点近一周报告”也可以直接触发文件生成。
jupyter lab
打开 main.ipynb:
SiteQuickLookupTool)NetworkHealthOrchestrator + 可选 demo_agent).env 中 LLM_API_KEY(或 OPENAI_API_KEY)有效,并检查模型可访问性。MCPTool(server_command=[...]) 由 Agent 在调用时自动拉起。仅在你要单独调试 MCP 服务时,才手动运行:
python -m src.tools.data_mcp_server
MIT License
感谢Datawhale社区和Hello-Agents项目!