✨ 新增功能 - 完整的日志记录系统(6 种日志级别) - 日志配置功能(可通过 config.json 控制) - 性能监控装饰器和请求日志中间件 - 7 个管理工具脚本 - 完整的文档和使用指南 🛠️ 管理工具 - start-with-log.sh: 启动脚本(带日志) - stop-dashboard.sh: 停止脚本 - view-logs.sh: 日志查看器 - monitor-logs.sh: 实时监控工具(支持多种过滤器) - analyze-logs.sh: 日志分析工具(自动生成报告) - demo-logging.sh: 功能演示脚本 - test-logging-config.sh: 配置测试工具 📊 日志特性 - 支持 INFO/SUCCESS/WARN/ERROR/DEBUG/PERF 6 种级别 - 自动记录启动过程、API 请求、性能统计 - 缓存命中情况追踪 - 分步性能监控 - 智能过滤器 ⚙️ 配置功能 - 可控制是否启用日志(默认:true) - 可设置日志级别(默认:INFO) - 可控制文件/控制台输出 - 支持动态配置(重启生效) 📚 文档 - LOGGING_GUIDE.md: 完整使用指南 - LOGGING_CONFIG.md: 配置说明文档 - LOGGING_CONFIG_QUICK.md: 快速配置指南 - 多个中文说明文档 🔒 安全 - 添加 .gitignore 排除敏感信息 - config.json(含 Token)不提交 - 日志文件不提交 - 示例配置使用占位符 ✅ 测试 - 语法检查通过 - 功能完整性验证 - 配置控制测试通过 - 文档完整性检查 详见 CHANGELOG_v1.1.0.md Made-with: Cursor
5.2 KiB
5.2 KiB
AI Team Dashboard
一个给 AI 开发团队用的本地调度中心面板。
它会把 GitHub Issues、各 Bot 的代码仓库提交、技能仓库、Docker Worker 状态,以及主机侧 OpenClaw 运行情况汇总成一个网页,方便你一眼看清谁在工作、任务卡在哪、最近交付了什么。
能看到什么
- 任务仓库里的 Issue 状态
- 每个 Bot 最近的代码提交
- 每个 Bot 绑定的技能仓库和本地已安装技能
- Docker Worker 的运行状态、轮询状态和最近日志
- Leader Bot 的实时对话、日志和主机资源
适合谁用
如果你的 AI Team 已经有下面这些东西,这个项目就能直接接上:
- 一个任务仓库,例如
yourname/ai-team-tasks - 多个 Bot 的代码仓库和技能仓库
- 主机上运行的 OpenClaw Leader
- Docker 中运行的 Worker 容器
目录结构
dashboard/
├── README.md
├── config.json.example
├── config.json
├── package.json
├── server.js
└── public/
├── index.html
└── monitor.html
3 分钟上手
1. 安装依赖
cd dashboard
npm install
2. 复制配置模板
cp config.json.example config.json
3. 填写你的仓库和令牌
至少把下面这些字段改成你自己的:
github.ownergithub.tokengithub.taskRepobots.leader.codeRepobots.leader.skillsRepobots.qianwen.codeRepobots.qianwen.skillsRepobots.kimi.codeRepobots.kimi.skillsRepodashboard.port
4. 启动
npm start
开发时可用:
npm run dev
5. 打开页面
- 总览页:
http://localhost:3800 - 监控页:
http://localhost:3800/monitor.html
如果你改过 dashboard.port,就用你自己的端口。
最小配置示例
下面是一份最小可运行配置,你只需要替换成自己的仓库名和 token:
{
"github": {
"owner": "your-github-name",
"token": "ghp_xxx",
"taskRepo": "your-github-name/ai-team-tasks"
},
"bots": {
"leader": {
"codeRepo": "your-github-name/ai-team-leader-code",
"skillsRepo": "your-github-name/ai-team-leader-skills"
},
"qianwen": {
"codeRepo": "your-github-name/ai-team-fullstack-code",
"skillsRepo": "your-github-name/ai-team-fullstack-skills"
},
"kimi": {
"codeRepo": "your-github-name/ai-team-thinktank-code",
"skillsRepo": "your-github-name/ai-team-thinktank-skills"
}
},
"pollInterval": 5,
"dashboard": {
"port": 3800
}
}
如果你启用了飞书,再继续补:
feishu.enabledfeishu.qianwen.appIdfeishu.qianwen.appSecretfeishu.kimi.appIdfeishu.kimi.appSecret
运行前确认
为了避免页面空白或一直离线,建议先确认:
- 已安装 Node.js
- 已安装并登录 GitHub CLI
- 如果要看 Worker 状态,Docker 已启动
- 如果要看 Leader 实时监控,OpenClaw 已在主机上运行
- 相关仓库都能被当前 GitHub 账号访问
这个项目默认依赖的环境约定
这个项目不是纯静态页面,它会直接从本机环境取数据,所以有几个默认约定:
dashboard上一级目录下存在docker-compose.yml- Worker 容器名默认是
ai-team-qianwen和ai-team-kimi - OpenClaw 网关健康检查地址是
http://127.0.0.1:18789/healthz - OpenClaw 会话、日志、定时任务数据都在当前用户主目录下
如果你的命名或目录结构不同,需要同步修改 server.js。
页面数据从哪里来
服务启动后,后端会从这些来源取数:
- GitHub Issues:读取
github.taskRepo - GitHub Commits:读取每个 Bot 的
codeRepo - GitHub 仓库目录:读取每个 Bot 的
skillsRepo - Docker:读取 Worker 容器状态和日志
- OpenClaw 本地目录:读取 Leader 会话、网关日志和 cron 信息
所以页面能打开,不代表所有模块一定都有数据。某个依赖没启动时,对应区域会显示为空或离线。
推荐启动顺序
- 先执行
gh auth status,确认 GitHub 已登录 - 填好
config.json - 启动主机侧 OpenClaw Leader
- 启动 Worker 容器
- 启动 Dashboard
- 到任务仓库创建一个带标签的 Issue,观察数据是否刷新
常见问题
页面打开了,但没有任务
检查:
github.taskRepo是否写对github.token是否有仓库读取权限gh当前登录账号是否就是你的目标账号
Worker 一直离线
检查:
- Docker 是否正常运行
- 容器名是否还是
ai-team-qianwen和ai-team-kimi docker-compose.yml是否在dashboard的上一级目录
Leader 监控没有内容
检查:
- OpenClaw 是否已启动
http://127.0.0.1:18789/healthz是否返回200- 本机是否已有 OpenClaw 会话和日志文件
技能列表为空
检查:
- 对应技能仓库是否可访问
- 本地或容器里的技能目录是否已经挂载/安装
API
主要接口如下:
/api/status:总览页数据/api/monitor:监控页数据/api/monitor/conversation:Leader 最近对话/api/bot/:id:单个 Bot 详情/api/bot/:id/logs:单个 Bot 日志/api/task/:number:单个任务详情