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:
@@ -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 + SQLite(WAL),依赖仅 flask/requests/jieba
|
||||
- 后端:Python + Flask + SQLite(WAL),核心依赖仅 flask/requests/jieba(LDAP 可选 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 API(V1 + 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 化、工作流画布(拖拽编排)、插件市场
|
||||
Reference in New Issue
Block a user