Files
ai-worker-platform/README.md
T
hz4th_coder 7c4cbf8994 V3.4 负责人验收制+邮件修复+事件面板+真实网页交付
- 项目级验收:全部任务完成后进入「待验收」,邮件通知负责人,验收通过才算完成;公开验收链接 /review/<token> 免登录一键通过/打回(打回必填原因)
- 打回自动返工:自动生成含负责人意见的返工任务,AI主管立即重做并再次提交验收;平台内也可验收
- 真实网页交付:任务HTML产出自动落盘工作目录(剥离围栏/前置叙述),Demo展示真实页面;返工产出覆盖入口页;老项目已回填
- 事件记录面板:合并AI主管动态+任务日志+交付记录,可展开/收起(记忆状态),任务事件可点击定位
- 邮件通道修复:补 Date/Message-ID 头(amavisd 拒收 invalid header section 根因),打包附件/通知恢复送达;notify.py 改标准 MIME
- 规划重试:WBS 拆解失败自动重试3次,仍失败邮件通知负责人
- 项目状态新增 review(待验收),全端展示
2026-08-14 13:33:59 +08:00

208 lines
14 KiB
Markdown
Raw 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.
# AI Worker 项目管理平台
> 以「项目」为中心、以「AI Worker」为执行单元的项目管理平台。
> 把大模型团队变成一支可指挥、可审计、可控成本的"虚拟团队"。
**当前版本:V3.4**(负责人验收制 / 邮件通道修复 / 事件记录面板 / 真实网页交付)
---
## 🏁 V3.4 负责人验收制 + 交付增强(新增)
| 能力 | 说明 |
|---|---|
| 🔔 项目级验收 | AI 团队全部完工后**不自动宣布完成**,项目进入「待验收」状态,邮件通知负责人(送达者);负责人验收通过项目才算正式完成 |
| 🔗 公开验收链接 | 验收邮件含免登录链接 `/review/<token>`,负责人一键「验收通过 / 打回返工」(打回必填原因) |
| 🔁 打回自动返工 | 打回后自动生成「返工任务」(含负责人意见),AI 主管立即按意见重做,再次提交验收;平台内也可直接验收/打回 |
| 🌐 真实网页交付 | 任务的 HTML 产出自动落盘工作目录(自动剥离代码围栏/前置叙述),Demo 展示**真实页面**而非占位说明;返工产出自动覆盖入口页 |
| 📋 事件记录面板 | 项目页「事件记录」可展开/收起(记忆状态):合并 AI 主管动态 + 任务日志 + 交付记录,任务事件可点击定位到对应任务 |
| 📮 邮件通道修复 | 修复邮件头缺 Date 导致 amavisd 退信(`invalid header section`)的问题,打包附件邮件/各类通知恢复正常送达 |
| 🔁 规划重试 | 任务拆解解析失败自动重试 3 次(每次重新调用 LLM),仍失败则邮件通知负责人并中断 |
---
## 🚀 V3.3 AI 主管自动开工(新增)
> 创建项目 → 自动跑起来,全程不需要人点一下。
| 能力 | 说明 |
|---|---|
| 👔 必选 AI 主管 | 新建项目**必须指定一个 AI Worker 做管理者**(默认「AI主管」),负责拆解任务(WBS)、派活、监控、失败诊断;可随时在编辑项目中**换别的主管** |
| 👷 多选干活团队 | 新建项目**勾选多个干活 Worker** 供 AI 主管支配(默认勾选 AI牛/AI马),任务按轮询分派;可随时换团队 |
| ⚡ 创建即开工 | 项目创建后**立即自动开工**:AI 主管读目标/验收标准 → 拆解 4~8 个任务(含依赖)→ 分派团队执行 → 全程监控 |
| 🔁 失败诊断重试 | 任务失败后 AI 主管自动**诊断原因并修订执行指令**,重试最多 2 次;仍失败则收工并汇总失败项 |
| 📡 全程可视 | 项目页顶部「AI 主管动态」面板实时显示:开工状态/最新动态/主管与团队/动态流水(每 3 秒自动刷新,看板同步跳动) |
| 🚀 手动开工 | 项目页「🚀 AI 主管开工」按钮:已有任务则跳过规划直接执行存量;换过主管/团队后点它即按新配置生效 |
| ✅ 自动收尾 | 全部任务完成后自动汇总(完成数/失败数/总成本),触发交付体系通知送达者;任务默认自动验收(可在创建时勾选「需人工审核」改为 HITL) |
---
## 功能总览
### 📁 项目管理(V1 基础)
| 模块 | 能力 |
|---|---|
| 项目 / Worker / 看板 | CRUD、目标/验收标准/预算上限、虚拟员工档案(供应商+模型+角色提示词+成本上限)、6 列看板、自动路由 |
| 执行引擎 | 统一模型网关(doubao/deepseek/openai/qwen/vLLM)、失败重试、超时、成本预检、HITL 审核(通过/打回必填原因) |
| 成本记账 | Token/成本按 项目×Worker×模型 核算、预算硬约束、一次通过率 |
| DAG 编排 | 任务依赖、依赖校验拦截、完成后自动触发下游、SVG 流程可视化 |
| RAG 知识库 | 项目级文档、BM25 检索(jieba)、任务执行时自动注入相关知识 |
| 通知集成 | 飞书/企微 Webhook + 邮件 SMTP,订阅事件:待审核/完成/失败/预算告警/Worker 异常 |
### 🤝 多 Agent 协作(V2 新增)
| 模式 | 流程 |
|---|---|
| 👔 主管模式 | 主管 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 一键部署(见下) |
### 📦 交付体系(V3 新增)
| 能力 | 说明 |
|---|---|
| 📬 送达者=用户 | 新建项目必选**送达者用户**(平台用户,含 admin);通知实时发到该用户**最新邮箱**,用户改邮箱自动跟随,项目进行中可随时更换送达者 |
| 🗂️ 项目工作目录 | 每个项目独立工作目录 `data/workspace/project_<id>/`,中间产物/交付物分类存放,互不污染;支持网页上传/下载/删除 |
| 🌐 网页交付物 | 一键部署到 `data/demo/<id>/`,经 `/demo/<id>/` **免登录公开访问**,送达者直接打开链接查看 |
| 🗜️ 打包交付 | 工作目录一键 zip 打包(`data/packages/`),随邮件附件发送给送达者 |
| ✉️ 手动通知 | 难关说明/进展可随时手动邮件通知送达者;交付全流程留痕(交付记录) |
### 👥 用户体系(V3.2
| 能力 | 说明 |
|---|---|
| 📧 邮箱必填 | 所有用户(含 admin)必须有邮箱,新建/编辑用户强制校验;创建项目选送达者时列出用户供选择 |
| 🔄 邮箱变更跟随 | 用户改邮箱 → 其送达的所有项目通知自动发到新邮箱(实时读取,无需改项目) |
| 🔀 送达者可变 | 项目进行中可在编辑项目中更换送达者用户,旧数据按邮箱自动回填迁移 |
### 🔑 精准权限(V3 新增)
| 能力 | 说明 |
|---|---|
| 👥 用户管理 | 管理员增删改用户,管理用户的项目所属与 Worker 权限(企业版 → 用户与权限 → 🔑 授权) |
| 📁 项目授权 | view 查看 / manage 管理(建任务/执行/上传交付物/发送)/ admin 管理员;创建者自动成为项目管理员 |
| 🤖 Worker 授权 | view 查看档案 / use 使用(可指派任务)/ manage 管理;Worker 的注册/删除仍仅管理员 |
| 🎭 角色体系 | 管理员=全部;审计员=全量**只读**;成员=仅可见被授权内容,仪表盘/报表/日志/协作/评估全部按权限过滤 |
| 🗺️ 授权总览 | 一键查看所有用户的 项目×Worker 授权矩阵,杜绝越权 |
### 🎭 自定义角色 + 🤖 Worker 权限组(V3.1 新增)
| 能力 | 说明 |
|---|---|
| 🎭 角色管理 | 18 个权限功能点按模块分组勾选(仪表盘/项目/Worker/协作/评估/模板/报表/日志/告警/API/设置/企业版);**内置角色可编辑权限点**、自定义角色任意创建/删除/多用户绑定,权限自动合并即时生效 |
| 🤖 Worker 权限组 | 把一批 Worker + 权限(查看/使用/管理)打包成组,整组授权给一个或多个用户;与直接授权并行生效取高值;组内 Worker 自动对绑定用户可见,批量管理不再逐条授权 |
| 📱 权限驱动菜单 | 前端侧边栏按用户有效权限点自动显隐;未授权模块 API 返回 403(如无 agent.run 无法发起协作运行) |
## 快速开始
```bash
./start.sh # 启动(默认 16071
./start.sh stop # 停止
./start.sh restart # 重启
```
- 管理界面:`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/jiebaLDAP 可选 ldap3
- 前端:原生 HTML/JS/CSS SPA(无 CDN,离线可用)
- 评估:LLM-as-Judge(复用统一模型网关)
- 编排:自研轻量线程级引擎,状态全落库;升级路径 = Temporal 持久执行 + LangGraph
## 目录结构
```
ai-worker-platform/
├── app.py # Flask 应用 + REST APIV1 + V2 + V3 路由)
├── config.py # 供应商/定价/鉴权/告警阈值/邮件 SMTP
├── db.py # SQLite 数据层 + V2/V3 迁移(users/audit/agent/eval/templates/deliverables/grants
├── engine.py # V1 执行引擎:DAG/自动触发/RAG 注入/告警/难关通知
├── agents.py # V2 多 Agent 协作引擎:supervisor/review/debate
├── eval.py # V2 自动评估:数据集/LLM 评委/沉淀/排行榜
├── templates.py # V2 模板市场:三类模板 + 占位符渲染 + 应用
├── enterprise.py # V2/V3 企业版:用户/RBAC/SSO/审计/合规 + 项目/Worker 精准授权 + 自定义角色 + Worker 权限组
├── delivery.py # V3 交付体系:工作目录/Demo 部署/打包/邮件送达/难关通知
├── llm_gateway.py # 统一模型网关
├── rag.py # 知识库:分块 + BM25 检索
├── notify.py # 飞书/企微/邮件通知
├── dag_verify.py # DAG 全链路验证脚本
├── seed.py # 演示数据
├── start.sh # 启停脚本
├── static/ # 前端 SPA(含 V3 交付页/授权管理)
└── data/ # SQLite 库;workspace/ 项目工作目录;demo/ 网页Demopackages/ 打包件;logs/ 运行日志
```
## V2 开放 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>` 详情(含步骤流水与最终产出)
自动评估:
- `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/users/<id>/grants` 精准授权(项目/Worker/角色/权限组)| `GET /api/enterprise/grants/overview` 授权总览
- `GET /api/enterprise/perm_points` 权限点目录 `GET/POST /api/enterprise/roles` 角色 `GET/PUT/DELETE /api/enterprise/roles/<id>`
- `GET/POST /api/enterprise/worker_groups` Worker 权限组 `GET/PUT/DELETE /api/enterprise/worker_groups/<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` 保留期/脱敏设置
交付体系(V3):
- `GET /api/projects/<pid>/workspace` 工作目录文件列表 `POST .../workspace/upload` 上传(multipart)| `GET .../workspace/download?path=` 下载 `DELETE .../workspace?path=` 删除
- `POST /api/projects/<pid>/deploy` 网页交付物部署 Demo `POST .../package` zip 打包 `POST .../deliver` 邮件交付(Demo 链接 + 附件)
- `POST /api/projects/<pid>/complete` 完成项目并交付 `POST .../notify_deliverer` 手动通知送达者 `GET /api/projects/<pid>/deliverables` 交付记录
- `GET /demo/<pid>/` 公开 Demo 地址(送达者免登录访问)
用户与送达者(V3.2):
- `GET /api/users` 轻量用户列表(登录即可,选送达者用)| `GET/POST /api/enterprise/users` 完整用户管理(邮箱必填)
- `PUT /api/enterprise/users/<id>` 改邮箱后项目送达自动跟随;项目 `deliver_user_id` 绑定送达者用户
## 路线图
- **V2.1**Temporal 持久执行、多 Agent 协作接入项目任务、eval 回归对比视图
- **V3**:多租户 SaaS 化、工作流画布(拖拽编排)、插件市场 ✅ 交付体系 + 精准权限(V3.0)