Files

120 lines
4.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# AgentsMeeting — Dashboard 架构
> 版本: v1.0 | 部署: Linux 246 :5803 | 入口: http://192.168.1.246:5803
---
## Tab 结构
```
AgentsMeeting Dashboard
├── Agents — Agent 状态总览(在线/离线/消息量)
├── Kanban — 看板任务管理
├── Infrastructure — 平台服务 + EasyTier VPN + RDP + OpenCode Usage
└── 开发原则
├── G 规范 — 开发规范 / Spec 文档(dev-spec.md
├── K 测试 — 测试报告(Tier1/Tier2
├── F 健康 — 系统健康监控(三层管线)
└── H 需求 — 产品需求文档(PRD.md)
```
---
## API 端点清单
### Agent 管理
| 方法 | 路径 | 说明 |
|------|------|------|
| GET | `/api/agents` | 所有 Agent 列表(状态/平台/JID/消息量) |
| GET | `/api/agents/<id>/logs?lines=50` | Agent 实时日志 |
| POST | `/api/agents/<id>/start` | 启动 Agent |
| POST | `/api/agents/<id>/stop` | 停止 Agent |
| POST | `/api/agents/<id>/restart` | 重启 Agent |
### 服务监控
| 方法 | 路径 | 说明 |
|------|------|------|
| GET | `/api/services` | 所有注册服务状态(health ok/端口可达) |
| GET | `/api/expected` | 期望状态矩阵(含 key/spec/check 方式) |
| GET | `/api/monitor` | 聚合监控数据(tasks + Tier1 + Tier2 |
| GET | `/api/autoheal` | 最近一次自动修复记录 |
| GET | `/api/health` | Dashboard 自身健康检查 |
| GET | `/api/module-spec/<module>` | 读取 specs/{module}.json |
### 基础设施
| 方法 | 路径 | 说明 |
|------|------|------|
| GET | `/api/platform` | 平台服务状态(xmpp_bot/article_processor 等) |
| GET | `/api/ejabberd` | ejabberd XMPP 服务器状态(在线用户列表) |
| GET | `/api/easytier` | EasyTier VPN 状态(各节点连通性) |
| POST | `/api/easytier/toggle` | EasyTier 开关 |
| GET | `/api/rdp` | RDP 远程桌面隧道状态 |
| POST | `/api/rdp/toggle` | RDP 隧道开关 |
| GET | `/api/usage` | OpenCode Go API 额度监控 |
| POST | `/api/usage/refresh` | 触发额度数据采集 |
### 知识管理
| 方法 | 路径 | 说明 |
|------|------|------|
| GET | `/api/kanban` | 看板任务列表 |
| GET | `/api/spec` | 开发规范文档(dev-spec.md 渲染) |
| GET | `/api/spec/history` | 规范文档 Git 历史 |
| GET | `/api/tests` | 测试报告(Tier1/Tier2 |
| GET | `/api/prd` | 产品需求文档(PRD.md 渲染) |
| GET | `/api/prd/history` | PRD 文档 Git 历史 |
---
## 前端架构
### 技术栈
- 纯 HTML/CSS/JS(无框架)
- 深色主题(GitHub Dark 风格)
- 5 秒自动轮询(Agents / Infra 页)
### Spec 系统(?§ 按钮)
每个有 spec 的模块在 UI 上显示两个按钮:
- `?` → 调用 `showModuleHelp(module, 'human')` → 读取 `human_help` → 人类可读的帮助文档
- `§` → 调用 `showModuleHelp(module, 'ai')` → 读取 `ai_spec` → AI 可用的接口/约束/依赖
**Spec 文件位置**: `gateway/scripts/specs/{module}.json`
**API 端点**: `GET /api/module-spec/{module}` → 直接返回 JSON 文件内容
### F Tab 渲染逻辑
三层结构:
1. **系统概览** — 总健康状态 + 关键异常数 + T1 通过率
2. **异常服务** — critical 服务中实际状态异常的列表
3. **全部服务** — 按层分组(通信层 → AI网关 → 辅助服务),每项含 ?§ 按钮
定时任务单独渲染(从 `/api/monitor.tasks`),状态映射:
- `cron_ok` → 绿色 "正常"
- `not_deployed` → 黄色 "未部署"
- 其他 → 红色 "异常"
自动修复记录从 `/api/autoheal` 读取最近一次修复动作。
---
## 数据流
```
crontab (每 5 分钟)
├── agents_health_check.py → last_health_check.json
├── auto_heal.py → last_auto_heal.json
└── agents_daily_health.py → last_daily_health.json (每天)
Dashboard (:5803)
├── /api/monitor ← 聚合读取以上 JSON 文件
└── /api/services ← 实时 TCP/HTTP 检测
前端 (dashboard.html)
├── 5s 轮询 /api/services + /api/expected
└── 按需请求 /api/monitorF Tab 打开时)
```