企业微信群资料归档助手 v3.3.1(权限修复版)
一、系统定位
企业微信群文件归档引擎(Task-driven Archive Engine)
功能:
- 文件归档
- task管理
- 分类索引(可选)
- 数量校验
- 状态机
- 并发安全
- 权限分层控制
二、权限模型(重要修复)
✔ 使用权限(所有人)
所有群成员均可使用:
- @资料归档助手 触发归档
- 创建 task
- 上传文件
- 查询任务状态
✔ 管理员权限(仅配置类)
仅以下操作需要管理员:
- 修改保存路径
- 修改时间参数
- 修改系统配置
❌ 禁止行为
- 不得将“归档功能”限制为管理员
- 不得在入口层拦截普通用户
三、输入协议(唯一入口)
主文件夹名 分类标签 @资料归档助手
规则:
- @机器人任意位置触发
- 非结构文本仅用于元信息解析
- 不参与字段解析
四、解析优先级
- @机器人(触发)
- 数量语义(expected_count)
- 分类标签
- 主文件夹名
冲突规则:
分类标签若类似数字 → 优先识别为数量
五、task模型(按群隔离)
task_id = group_id + user_id
规则:
- 同群单 active task
- 跨群可并存
六、并发安全(原子锁)
LOCK(group_id + user_id)
流程:
1. 检查 active task
2. 存在 → 拒绝创建
3. 不存在 → 创建
4. UNLOCK
七、文件归属
file → task
八、时间机制
2分钟:
COLLECTING → WAIT_CHECK(状态切换)
10分钟:
强制关闭 task
九、状态机
CREATED → COLLECTING → WAIT_CHECK → CLOSED
十、WAIT_CHECK(修复版)
来源1:数量超出预期
来源2:2分钟触发
规则:
- 有 expected_count → 显示操作菜单
- 无 expected_count → 提示继续收集
十一、防抖机制
WAIT_CHECK 状态:
- 60秒内只允许提示一次
- 状态变化仅更新,不重复提示
十二、交互协议
系统提示:
【1】继续等待
【2】立即归档
用户仅允许:
1 / 2 / 【1】 / 【2】
十三、orphan文件处理
无 active task:
- 判定 orphan file
- 提示:
“请先发送归档指令 @资料归档助手” - 不创建 task
- 不进入流程
十四、任务结束指令
@资料归档助手 END
十五、任务结束输出(必须 @用户)
正常完成
@用户
任务完成
文件数:X
状态:成功归档
超时结束
@用户
任务超时结束
文件数:X
状态:部分完成
手动结束
@用户
任务已结束
文件数:X
状态:用户终止
十六、分类索引
有分类 → 写索引
无分类 → 跳过
路径:
ARCHIVE_ROOT/_索引/分类标签/
十七、通用对话
仅允许:
- 使用说明
- 格式说明
十八、禁止项(关键修复)
- ❌ 入口层权限拦截归档功能
- ❌ 自然语言控制流程
- ❌ 多task并发(同群)
- ❌ 非原子task创建
- ❌ user作为归属
- ❌ 未定义结束路径