V2 开发:多 Agent 协作(主管/评审/辩论) + 自动评估体系 + 模板市场 + 企业版(SSO/RBAC/审计/合规)

- agents.py: supervisor/review/debate 三模式编排引擎,步骤流水全记录
- eval.py: eval 数据集 + LLM-as-Judge 评分 + 任务产出自动沉淀 + Worker 排行榜
- templates.py: 任务/项目/团队三类模板,占位符渲染(JSON安全转义),一键应用
- enterprise.py: 用户体系/RBAC、OIDC+LDAP SSO、审计日志、数据导出/保留期/PII脱敏
- db.py: V2 表结构 + 迁移 + 启动恢复(stale running→failed)
- app.py: V2 API 路由 + 登录升级(账号体系)+ 审计钩子
- 前端: 新增多Agent协作/自动评估/模板市场/企业版 4 页面
- Dockerfile: 企业版私有化部署
This commit is contained in:
2026-08-12 12:21:17 +08:00
parent 29874e6ca9
commit 9a95b71631
11 changed files with 2626 additions and 47 deletions
+84 -38
View File
@@ -3,31 +3,51 @@
> 以「项目」为中心、以「AI Worker」为执行单元的项目管理平台。
> 把大模型团队变成一支可指挥、可审计、可控成本的"虚拟团队"。
**当前版本:V1**MVP 闭环 + 多 Agent 编排 / RAG / 预算告警 / 开放 API / 飞书企微集成
**当前版本:V2.0**多 Agent 协作 / 自动评估 / 模板市场 / 企业版
---
## 功能总览
### MVP(已交付 v1.0
### 📁 项目管理(V1 基础
| 模块 | 能力 |
|---|---|
| 📁 项目管理 | 项目 CRUD、目标/验收标准/预算上限、状态流转 |
| 🧑💻 Worker 管理 | 虚拟员工档案(供应商+模型+角色提示词+温度/Token+成本上限)、连通性测试、自动路由 |
| 📋 看板 | 6 列看板拖拽、优先级、截止时间、返工计数 |
| 🚀 执行引擎 | 统一模型网关(doubao/deepseek/openai/qwen/vLLM)、失败重试、超时、成本预检 |
| ✅ HITL 审核 | 产出进「待审核」,通过/打回(必填原因)→ 返工,AI 不可绕过 |
| 💰 成本记账 | Token/成本按 项目×Worker×模型 核算、预算硬约束、一次通过率 |
| 项目 / Worker / 看板 | CRUD、目标/验收标准/预算上限、虚拟员工档案(供应商+模型+角色提示词+成本上限)、6 列看板、自动路由 |
| 执行引擎 | 统一模型网关(doubao/deepseek/openai/qwen/vLLM)、失败重试、超时、成本预检、HITL 审核(通过/打回必填原因) |
| 成本记账 | Token/成本按 项目×Worker×模型 核算、预算硬约束、一次通过率 |
| DAG 编排 | 任务依赖、依赖校验拦截、完成后自动触发下游、SVG 流程可视化 |
| RAG 知识库 | 项目级文档、BM25 检索(jieba)、任务执行时自动注入相关知识 |
| 通知集成 | 飞书/企微 Webhook + 邮件 SMTP,订阅事件:待审核/完成/失败/预算告警/Worker 异常 |
### V1(本次交付 v2.0
| 模 | 能力 |
### 🤝 多 Agent 协作(V2 新增
| 模 | 流程 |
|---|---|
| 🔗 **DAG 多任务编排** | 任务依赖(depends_on)、依赖校验拦截、**完成后自动触发下游**、并行执行、一键执行整个工作流、SVG 流程可视化 |
| 🧠 **AI 辅助规划 WBS** | 输入目标 → LLM 自动生成 4~8 个任务的任务分解(含依赖关系)→ 可编辑预览 → 一键导入项目 |
| 📚 **RAG 知识库** | 项目级文档(粘贴/上传 txt·md)、自动分块索引、BM25 检索(jieba 分词)、**任务执行时自动注入相关知识**(日志可见命中来源) |
| 🚨 **预算控制与告警** | 项目预算使用率阈值告警(默认 80%)、成本上限拦截、**告警中心**(未读角标/标记已读)、去重防刷屏 |
| 🔌 **开放 API** | Bearer Token 认证、Token 管理、外部系统可建任务/派活/查结果/审核(curl 示例内置) |
| 📨 **通知集成** | 飞书/企微群机器人 Webhook + 邮件 SMTP,订阅事件:待审核/完成/失败/预算告警/Worker 异常/规划完成,渠道连通性测试 |
| 👔 主管模式 | 主管 Agent 拆解任务 → 委派多个 Worker 并行执行 → 主管汇总合成最终交付物 |
| 🔍 评审模式 | Worker 产出 → Reviewer 打分评审(rubric 标准)→ 未达分数线自动返工(最多 N 轮)→ 终稿 |
| ⚖️ 辩论模式 | 多辩手各自立论(可指定立场)→ 互相质询反驳(多轮)→ 首席裁判综合裁决输出共识结论 |
- 每个运行完整记录步骤流水(角色/阶段/内容/成本),可回放过程
- 参与 Agent 自由选择(评审模式第 1 个为执行者、辩论模式最后一个为裁判)
### 🎯 自动评估体系(V2 新增)
- **eval 数据集**:用例(输入 + 期望输出)+ 评分标准 rubric + 标签,内置 2 个基准集(指令遵循/代码生成)
- **LLM-as-Judge**Worker 逐条作答 → 评委按 rubric 打分(0-100)+ 评语,全程记录延迟/成本
- **自动沉淀**:把已验收通过(done 且无打回)的任务产出一键转为评测用例,数据集越用越厚
- **Worker 排行榜**:按平均分排序,评估模型/提示词/Agent 的回归对比
### 🧩 模板市场(V2 新增)
- 三类模板:**任务模板**(代码审查/技术方案/周报…)、**项目模板**(MVP 启动/数据分析,含任务 DAG)、**团队模板**(标准三 Agent 团队/辩论三人组)
- 占位符变量(`{name}`/`{target}`/`{code}`…)一键应用,使用次数统计
- 支持用户自建模板(JSON),内置模板可一键恢复
### 🏢 企业版(V2 新增)
| 能力 | 说明 |
|---|---|
| 🔐 用户与 RBAC | 本地账号 + 角色(管理员/成员/审计员),默认 admin/admin123;停用/重置密码 |
| 🔑 SSO 单点登录 | **OIDC**(飞书/钉钉/企微/Okta,授权码模式 + discovery + 自动开通 + 管理员组)与 **LDAP/AD**(绑定认证,可选 ldap3 |
| 📜 审计日志 | 登录/登出、任务派发/审核、协作运行、评估、数据导出等关键操作自动留痕(操作者/动作/目标/IP) |
| ⚖️ 合规 | 全量数据导出(JSON)、审计 CSV 导出、数据保留期清理、PII 脱敏(邮箱/手机/身份证)、数据使用同意凭证 |
| 🔒 私有化 | 单机 SQLite + 无 CDN 前端,完全离线可用;Docker 一键部署(见下) |
## 快速开始
@@ -37,49 +57,75 @@
./start.sh restart # 重启
```
- 管理界面:`http://<IP>:16071/`,默认口令 `admin123`(改 `config.py``AUTH_PASSWORD`
- 首次启动自动灌入演示数据;`python3 seed.py` 重新初始化
- V1 全链路验证脚本`python3 dag_verify.py <终点任务ID>`(自动审核放行直到链路完成)
- 管理界面:`http://<IP>:16071/`,默认账号 `admin` / `admin123`
- 首次启动自动注入:内置 eval 数据集、内置模板、admin 用户
- V1 全链路验证:`python3 dag_verify.py <终点任务ID>`;V2 冒烟:启动后直接跑一次「多 Agent 协作」
### Docker 私有化部署(企业版)
```bash
docker build -t ai-worker-platform:v2 .
docker run -d --name aiworker -p 16071:16071 \
-v $(pwd)/data:/app/data \
-e AUTH_PASSWORD=your-password \
ai-worker-platform:v2
```
数据卷 `data/` 挂出即完成持久化与备份;无外网依赖(模型供应商需可达)。
## 技术栈
- 后端:Python + Flask + SQLiteWAL),依赖仅 flask/requests/jieba
- 后端:Python + Flask + SQLiteWAL),核心依赖仅 flask/requests/jiebaLDAP 可选 ldap3
- 前端:原生 HTML/JS/CSS SPA(无 CDN,离线可用)
- RAG:本地 BM25(jieba 分词),零依赖;升级路径 = 商用 embedding + pgvector/Qdrant
- 编排:自研轻量 DAG 引擎(线程级,断点状态落库;升级路径 = Temporal 持久执行 + LangGraph 多 Agent 推理
- 评估:LLM-as-Judge(复用统一模型网关)
- 编排:自研轻量线程级引擎,状态落库;升级路径 = Temporal 持久执行 + LangGraph
## 目录结构
```
ai-worker-platform/
├── app.py # Flask 应用 + REST API V1 路由)
├── app.py # Flask 应用 + REST APIV1 + V2 路由)
├── config.py # 供应商/定价/鉴权/告警阈值/邮件 SMTP
├── db.py # SQLite 数据层 + 自动迁移
├── engine.py # 执行引擎:DAG 依赖/自动触发/RAG 注入/告警/通知
├── db.py # SQLite 数据层 + V2 迁移(users/audit/agent/eval/templates
├── engine.py # V1 执行引擎:DAG/自动触发/RAG 注入/告警
├── agents.py # V2 多 Agent 协作引擎:supervisor/review/debate
├── eval.py # V2 自动评估:数据集/LLM 评委/沉淀/排行榜
├── templates.py # V2 模板市场:三类模板 + 占位符渲染 + 应用
├── enterprise.py # V2 企业版:用户/RBAC/OIDC/LDAP/审计/合规
├── llm_gateway.py # 统一模型网关
├── rag.py # 知识库:分块 + BM25 检索
├── notify.py # 飞书/企微/邮件通知
├── dag_verify.py # DAG 全链路验证脚本
├── seed.py # 演示数据
├── start.sh # 启停脚本
├── static/ # 前端 SPA
├── docs/ # 界面截图
├── static/ # 前端 SPA(含 V2 四页)
└── data/ # SQLite 库;logs/ 运行日志
```
## 开放 API 摘要
## V2 开放 API 摘要
所有接口支持 `Authorization: Bearer <TOKEN>`(管理界面「开放 API」页生成)
多 Agent 协作
- `GET /api/agents/modes` 模式说明 `POST /api/agents/runs` 发起运行 `{mode, topic, params:{workers:[],rounds,pass_score,stances}}`
- `GET /api/agents/runs` 列表 `GET /api/agents/runs/<id>` 详情(含步骤流水与最终产出)
- `POST /api/projects` 建项目 `GET /api/projects`
- `POST /api/tasks` 建任务(body 含 project_id/title/description/depends_on…)
- `POST /api/tasks/<id>/run` 派活 `GET /api/tasks/<id>` 查结果
- `POST /api/tasks/<id>/review` 审核 `{"action":"approve"}` `{"action":"reject","reason":"…"}`
- `POST /api/projects/<id>/workflow/run` 执行整个工作流
- `POST /api/projects/<id>/wbs/generate` AI 生成任务分解 `/wbs/import` 导入
- `GET /api/reports/cost?group=project|worker|model` 成本报表
- `GET /api/alerts` 告警 `GET /api/stats` 统计
自动评估:
- `GET/POST /api/eval/datasets` 数据集 `GET/PUT/DELETE /api/eval/datasets/<id>`
- `POST /api/eval/datasets/<id>/cases` 加用例 `POST /api/eval/datasets/<id>/sink` 沉淀任务产出
- `POST /api/eval/runs` 发起评估 `{dataset_id, worker_id}` `GET /api/eval/runs/<id>` 逐条结果
- `GET /api/eval/leaderboard` Worker 排行榜
模板市场:
- `GET/POST /api/templates` `GET/PUT/DELETE /api/templates/<id>`
- `POST /api/templates/<id>/apply` 应用模板 `{variables, project_id, worker_id, provider, model}`
企业版:
- `GET/POST /api/enterprise/users`(管理员)| `PUT/DELETE /api/enterprise/users/<id>`
- `GET/PUT /api/enterprise/sso` SSO 配置 `POST /api/enterprise/sso/oidc/login` 发起 OIDC `GET /api/enterprise/sso/oidc/callback` 回调
- `POST /api/enterprise/sso/ldap/test` LDAP 连通测试
- `GET /api/enterprise/audit` 审计日志 `GET /api/enterprise/audit/export` CSV 导出
- `GET /api/enterprise/export` 全量数据导出(JSON)| `POST /api/enterprise/compliance` 保留期/脱敏设置
## 路线图
- **V2**多 Agent 协作模式(主管/评审/辩论)、Temporal 持久执行、自动评估体系(eval)、模板市场、企业版(私有化/SSO/审计)
- **V2.1**Temporal 持久执行、多 Agent 协作接入项目任务、eval 回归对比视图
- **V3**:多租户 SaaS 化、工作流画布(拖拽编排)、插件市场