Files
hz4th_coder c533626b61 V3.5.4 首页一行动态+模型合并去重+多知识库+自适应宽高
1) 首页对话: 去掉仪表盘统计卡, 只留一行最紧急动态/通知(/api/home/urgent, 30s轮询, 可✕叉掉存localStorage), 其余全是对话, 对话区flex撑满视口
2) 模型管理: 模型列表页顶部=大模型接口(添加接口按钮+接口列表从配置页移入), 下方模型按模型服务分组合并去重(同供应商同模型多接口一行显示, 编辑弹窗一并改所有接口能力/定价); 模型配置页只留系统默认模型
3) 多知识库: kb_bases表+kb_documents.kb_id, 可新建/改名/删除多个知识库, 每个库独立管理文档(上传/搜索按库限定); 对话📚旁加知识库下拉指定注入库(chat_sessions.kb_id)
4) 全站自适应: #main去max-width 1400宽度随屏; 页面高度限定视口内, 超高主区内滚动
2026-09-06 01:31:17 +08:00

271 lines
22 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.
# AI Worker 项目管理平台
> 以「项目」为中心、以「AI Worker」为执行单元的项目管理平台。
> 把大模型团队变成一支可指挥、可审计、可控成本的"虚拟团队"。
**当前版本:V3.5.4**(首页一行实时动态 / 模型按服务合并去重 / 多知识库 / 全站自适应宽高)
---
## 🚀 V3.5.4 优化(本轮)
| 能力 | 说明 |
|---|---|
| 🏠 首页对话精简 | 首页去掉仪表盘统计卡片,只保留**一行最紧急的动态提示**(🚨 未读告警 > 待审核/执行中/超期任务),**实时刷新(30s)、可点 ✕ 手动叉掉**;其余全部为对话内容,对话区撑满视口 |
| 🧠 模型管理合并去重 | 模型列表页:**同模型服务(同供应商同模型)多接口时合并为一行显示,不再重复**;点「编辑」弹窗把该模型在**所有接口中的能力/定价一并编辑**。大模型接口的**「添加大模型接口」按钮与「接口列表」从模型配置页移入模型列表页顶部**;模型配置页改为独立的「⚙️ 系统默认模型」 |
| 📚 多知识库 | 知识库页左侧为**知识库列表**:可**新建/重命名/删除多个知识库**,每个库独立管理文档(新建文档/上传/搜索均限定在当前库);对话中开启 📚 后新增**知识库下拉选择**,可指定注入哪个库 |
| 📐 全站自适应宽高 | 去掉主区固定最大宽度 1400px,**宽度随屏幕自适应**;所有页面高度限定在视口内(页面超高时在主区内滚动,不再撑破页面),各页不超自适应高度 |
---
## 🚀 V3.5.3 优化(上一轮)
| 能力 | 说明 |
|---|---|
| 🕘 历史列表即时显示 | 修复首页对话左侧历史会话列表初始为空的 bug(渲染后未触发列表刷新),现在一进来就能看到全部历史会话 |
| 📐 对话区撑满底部 | 对话主体高度自动撑到浏览器底部:内容超长自动滚动,**输入框固定在底部**;右上角的选择会话/新建/删除下拉去掉,**「+ 新建对话」移入左侧历史列表顶部** |
| 🧠 模型管理独立页 | 新增侧边栏「🧠 模型管理」,把原 AI Worker 里的「大模型接口库」和「模型库」合并迁入,分两部分:**📋 模型列表**(全部接口的全部模型:大模型/生图/生视频/embedding 等,含能力、价格、测试)与 **⚙️ 模型配置**(接口 CRUD + 系统默认模型);AI Worker 页只保留 Worker 与团队 |
| 🧑‍💻 AI Worker 精简 | Worker 弹窗去掉 Base URL / API Key / 自定义模型等接口配置项——**模型统一从模型管理中选择**,Worker 只管角色 |
| 📎 对话附件 | 输入框新增 📎 附件按钮:**支持上传图片(视觉模型)与可读文本**txt/md/pdf/docx/csv/json 等自动解析注入,发送前显示附件标签,消息记录保留附件引用) |
---
## 🚀 V3.5.2 优化(上一轮)
| 能力 | 说明 |
|---|---|
| ⚡ 真流式对话 | 修复“一次性输出全部回答”的假流式 bug:服务端改为**边收边吐**(原先先等完整响应再一次性转发);**思考模型先流式输出思考内容(自动折叠成「💭 思考过程」可展开)再流式输出回答**;回答块下方显示 **输出速度(tok/s**、tokens/缓存命中/成本/首字延迟 |
| 🕘 历史会话管理 | 对话页左侧新增「历史会话」列表:每个会话可 **✏️重命名 / 📌置顶 / 🗑删除**(置顶排前);顶部「📝 Markdown」一键开关,消息默认按 Markdown 渲染 |
| 🧠 模型能力标签 | 大模型接口的每个模型可勾选能力:对话/思考/视觉输入/语音输入/语音输出/图片生成/视频生成/Embedding/Rerank;对话按所选模型能力自动适配:**视觉模型→🖼️传图、语音输入→🎤录音转写、语音输出→🔊回答朗读、思考模型→展示思考过程**;不匹配时提前提示不可用 |
| 🗂️ 模型库 + 系统默认模型 | AI Worker 新增「🧠 模型库」标签:全能力模型矩阵 + **系统默认模型配置**(语音识别/语音合成/图片生成/视频生成/embedding/rerank…),配置语音识别模型后对话即支持语音输入,配置语音合成模型后回答可生成语音 |
| 💰 计费单位修正 | 按调用次数计费改为 **元/千次**2 元/千次 = 单次 0.002 元);逐模型定价格式改为 **模型名 输入价 缓存输入价 输出价**(缓存命中 token 按缓存价计) |
| 🛡️ 弹窗未保存提醒 | 编辑弹窗有未保存修改时,点击弹窗外部或 ✕ 会提醒“是否不保存退出”(所有弹窗通用) |
| 📚 知识库导航 | 侧边栏新增「📚 知识库」:全局文档增删改查、txt/md/pdf/docx 上传解析、全文检索;对话中可一键开启「📚 知识库」按钮,发送时自动注入相关知识 |
---
## 🚀 V3.5.1 优化(上一轮)
| 能力 | 说明 |
|---|---|
| ⭐ 项目一键存为参考 | 项目卡片新增「⭐ 存为参考」按钮,把任意已创建项目一键保存到「从参考项目中新建」列表(复制项目+任务,原项目不受影响);参考列表里显示「来自「原项目」」来源标记,非内置参考可删除,内置 3 个受保护 |
| 🐛 修复标签切换 | AI Worker 页「大模型接口库 / 团队」标签点击无反应的 bug(onclick 里页面状态被重置)已修复,三标签正常切换 |
| 💬 对话独立首页 | 左侧导航改为「💬 对话 / 📊 仪表盘」并列;首页为全新对话页:**上部=仪表盘关键信息摘要(项目/任务/Worker/成本/调用次数,点击即跳转仪表盘)**,中下部=主体对话界面(更高更宽,流式输出带闪烁光标,每条记录 tokens/缓存命中/成本/首字延迟) |
| 📅 成本报表按日期 | 报表新增「按日期」维度:按天统计调用次数/输入/输出/缓存命中/总Tokens/成本,支持 近7天/30天/全部 筛选 |
---
## 🚀 V3.5 精细化运营 + 对话 + 接口库 + 团队 + 工作目录 + 流式超时(新增)
| 能力 | 说明 |
|---|---|
| 📊 精细化用量统计 | 每次调用记录 **输入/输出 token、缓存命中 token、调用次数、首字延迟、总耗时**;成本报表新增「📊 用量明细(项目×智能体)」矩阵,按项目、智能体、模型三维核算 |
| 🔌 大模型接口库 | AI Worker 页新增「大模型接口库」标签:专门配置接口(名称/提供商/Base URL/API Key/模型列表),**价格可配置**——支持**按 token 数**(逐模型输入/输出单价)与**按调用次数**两种计费方式;创建 AI Worker 时直接从接口库选用 |
| 👥 AI Worker 团队 | AI Worker 页新增「团队」标签:把多个 Worker 打包成团队;对话可直接选团队(成员轮询应答),创建项目时「快捷选择团队」一键勾选干活 Worker |
| 💬 对话导航(融合仪表盘) | 侧边栏顶部新增「💬 对话 · 仪表盘」入口,仪表盘页顶部内嵌对话面板:可选 **大模型接口 / AI Worker / 团队** 对话,**默认主力 AI Worker**(可设主力/在设置中改);输出按 token 流式展示,每条消息记录 tokens/缓存命中/成本/首字延迟 |
| 🗂️ 系统工作目录 | 全局默认系统工作目录(可改任意绝对路径);每个项目与多 Agent 协作都在其下新建**独立无重复**工作目录(project_<id> / agent_run_<id>);支持**手动输入新的系统工作目录与项目目录**——不存在自动创建,**已存在则列出目录信息(文件数/大小/样例)并需手动勾选确认** |
| ⏱️ 流式单 token 超时 | 所有模型输出改为 **SSE 按 token 流式接收**;超时按「**单 token 返回超时**」(相邻 token 间隔)与「**首字延迟超时**」判定,均在设置页可配(默认 60s / 120s,另有整体兑底 600s);超时中断保留已产出的部分内容 |
| ⭐ 主力 AI Worker | Worker 列表可一键「⭐ 设为主力」(或设置页选择),对话默认使用;仪表盘标注主力 |
| 📋 从参考项目中新建 | 项目列表新增入口:内置 3 个不同维度的简单测试项目(产品文案速写 / Python 小工具 / 市场调研简报),一键复制其目标与任务列表生成新项目 |
---
## 🏁 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)