Summary: - Add 4 new database tables: iit_field_metadata, iit_qc_logs, iit_record_summary, iit_qc_project_stats - Implement pg-boss debounce mechanism in WebhookController - Refactor QC Worker for dual output: QC logs + record summary - Enhance HardRuleEngine to support form-based rule filtering - Create QcService for QC data queries - Optimize ChatService with new intents: query_enrollment, query_qc_status - Add admin batch operations: one-click full QC + one-click full summary - Create IIT Admin management module: project config, QC rules, user mapping Status: Code complete, pending end-to-end testing Co-authored-by: Cursor <cursoragent@cursor.com>
341 lines
13 KiB
Markdown
341 lines
13 KiB
Markdown
# IIT Manager Agent 开发阶段与任务清单
|
||
|
||
> **版本:** V2.9
|
||
> **更新日期:** 2026-02-05
|
||
> **关联文档:** [IIT Manager Agent V2.6 综合开发计划](./IIT%20Manager%20Agent%20V2.6%20综合开发计划.md)
|
||
>
|
||
> **V2.9.1 更新**:
|
||
> - **新增 Phase 1.5**:隐私安全与自动化工具(P0 合规必需)
|
||
> - Phase 1 新增 AutoMapperService 任务
|
||
> - Phase 3 新增反馈循环任务
|
||
> - Phase 4 新增 ProfilerService 和 Cron Skill 任务
|
||
> - Phase 5 新增多意图处理任务
|
||
|
||
---
|
||
|
||
## 1. 开发阶段总览
|
||
|
||
```
|
||
Phase 1 Phase 1.5 Phase 2 Phase 3 Phase 4 Phase 5 Phase 6
|
||
┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
|
||
│基础工具层│ ──▶│ 隐私安全 │ ──▶│ SOP 引擎 │ ──▶│ReAct 引擎│ ──▶│ 调度系统 │ ──▶│ 智能路由 │ ──▶│ 视觉能力 │
|
||
│ │ │ P0必需 │ │ + 记忆L2 │ │ + 记忆L1 │ │ + 记忆L3 │ │ │ │ (延后) │
|
||
└──────────┘ └──────────┘ └──────────┘ └──────────┘ └──────────┘ └──────────┘ └──────────┘
|
||
▼ ▼ ▼ ▼ ▼ ▼ ▼
|
||
ToolsService Anonymizer SopEngine ReActEngine Scheduler IntentService VisionService
|
||
FieldMapping AutoMapper HotMemory FlowMemory WeeklyReports MixedRouting (Postponed)
|
||
HardRule PII Audit SoftRule AgentTrace ReportService StreamingFB
|
||
```
|
||
|
||
---
|
||
|
||
## 2. Phase 1: 基础工具层
|
||
|
||
### 2.1 目标
|
||
|
||
- 搭建可复用的工具框架
|
||
- 实现字段映射机制
|
||
- 建立硬规则引擎
|
||
|
||
### 2.2 任务清单
|
||
|
||
| 任务ID | 任务名称 | 优先级 | 状态 | 前置依赖 |
|
||
|--------|----------|--------|------|----------|
|
||
| P1-01 | 创建 `iit_skills` 表 | 高 | 待开始 | - |
|
||
| P1-02 | 创建 `iit_field_mapping` 表 | 高 | 待开始 | - |
|
||
| P1-03 | 实现 `ToolsService` | 高 | 待开始 | P1-01 |
|
||
| P1-04 | 实现 `read_clinical_data` 工具 | 高 | 待开始 | P1-03 |
|
||
| P1-05 | 实现 `search_protocol` 工具 | 高 | 待开始 | P1-03 |
|
||
| P1-06 | 实现 `HardRuleEngine` | 高 | 待开始 | - |
|
||
| P1-07 | 集成字段映射到 ToolsService | 中 | 待开始 | P1-02, P1-03 |
|
||
| P1-08 | **[V2.9.1]** 实现 `AutoMapperService` | 中 | 待开始 | P1-02 |
|
||
| P1-09 | **[V2.9.1]** 实现 REDCap Data Dictionary 解析器 | 中 | 待开始 | P1-08 |
|
||
| P1-10 | **[V2.9.1]** 实现 LLM 语义映射 Job | 中 | 待开始 | P1-08 |
|
||
| P1-11 | **[V2.9.1]** 实现管理后台映射确认 UI | 低 | 待开始 | P1-10 |
|
||
| P1-12 | 单元测试覆盖 | 中 | 待开始 | P1-01~P1-11 |
|
||
|
||
### 2.3 验收标准
|
||
|
||
- [ ] 工具可通过名称调用
|
||
- [ ] 字段映射正确生效(LLM 用 "年龄" → 实际调用 "dem_age")
|
||
- [ ] 硬规则拦截生效
|
||
- [ ] **[V2.9.1]** AutoMapper 可解析 REDCap Data Dictionary
|
||
- [ ] **[V2.9.1]** LLM 可生成字段映射建议
|
||
- [ ] 测试覆盖率 > 80%
|
||
|
||
---
|
||
|
||
## 2.5 Phase 1.5: 隐私安全与自动化工具(P0 合规必需)
|
||
|
||
> **⚠️ 重要**:此阶段必须在 Phase 2 调用 LLM 之前完成!
|
||
> 临床数据包含患者隐私信息,未脱敏直接发送给 LLM 将违反数据保护法规。
|
||
|
||
### 2.5.1 目标
|
||
|
||
- 实现 PII 脱敏中间件
|
||
- 建立脱敏审计日志
|
||
- 确保合规性
|
||
|
||
### 2.5.2 任务清单
|
||
|
||
| 任务ID | 任务名称 | 优先级 | 状态 | 前置依赖 |
|
||
|--------|----------|--------|------|----------|
|
||
| P1.5-01 | 创建 `iit_pii_audit_log` 表 | **P0** | 待开始 | - |
|
||
| P1.5-02 | 实现 PII 识别正则库 | **P0** | 待开始 | - |
|
||
| P1.5-03 | 实现 `AnonymizerService.mask()` | **P0** | 待开始 | P1.5-01, P1.5-02 |
|
||
| P1.5-04 | 实现 `AnonymizerService.unmask()` | **P0** | 待开始 | P1.5-03 |
|
||
| P1.5-05 | 实现脱敏映射加密存储 | 高 | 待开始 | P1.5-03 |
|
||
| P1.5-06 | 集成到 ChatService 调用链 | **P0** | 待开始 | P1.5-04 |
|
||
| P1.5-07 | 单元测试:各类 PII 识别 | 高 | 待开始 | P1.5-02 |
|
||
| P1.5-08 | 端到端测试:脱敏还原完整流程 | 高 | 待开始 | P1.5-01~P1.5-06 |
|
||
|
||
### 2.5.3 验收标准
|
||
|
||
- [ ] 身份证号正确识别并脱敏(18位)
|
||
- [ ] 手机号正确识别并脱敏(11位)
|
||
- [ ] 中文姓名正确识别并脱敏(2-4字)
|
||
- [ ] 病历号正确识别并脱敏
|
||
- [ ] LLM 收到的 Payload 不包含任何 PII
|
||
- [ ] LLM 回复正确还原占位符
|
||
- [ ] 审计日志正确记录(加密存储)
|
||
|
||
### 2.5.4 PII 脱敏流程
|
||
|
||
```
|
||
用户输入: "张三(身份证420101199001011234)今天血压偏高"
|
||
↓ AnonymizerService.mask()
|
||
LLM 收到: "[PATIENT_1](身份证[ID_CARD_1])今天血压偏高"
|
||
↓ 同时写入 iit_pii_audit_log(加密存储映射表)
|
||
↓ LLM 处理
|
||
LLM 返回: "[PATIENT_1] 的血压需要关注..."
|
||
↓ AnonymizerService.unmask()
|
||
用户看到: "张三 的血压需要关注..."
|
||
```
|
||
|
||
---
|
||
|
||
## 3. Phase 2: SOP 引擎 + 热记忆
|
||
|
||
### 3.1 目标
|
||
|
||
- 实现状态机驱动的 SOP 执行
|
||
- 搭建热记忆层(L2)
|
||
- 支持人工确认机制
|
||
|
||
### 3.2 任务清单
|
||
|
||
| 任务ID | 任务名称 | 优先级 | 状态 | 前置依赖 |
|
||
|--------|----------|--------|------|----------|
|
||
| P2-01 | 创建 `iit_task_run` 表 | 高 | 待开始 | - |
|
||
| P2-02 | 创建 `iit_pending_actions` 表 | 高 | 待开始 | - |
|
||
| P2-03 | 创建 `iit_project_memory` 表 | 高 | 待开始 | - |
|
||
| P2-04 | 实现 `SopEngine` 核心状态机 | 高 | 待开始 | P2-01 |
|
||
| P2-05 | 实现 `SoftRuleEngine` | 高 | 待开始 | - |
|
||
| P2-06 | 集成 SoftRuleEngine 到 SOP | 高 | 待开始 | P2-04, P2-05 |
|
||
| P2-07 | 实现 SUSPENDED 状态机制 | 高 | 待开始 | P2-04 |
|
||
| P2-08 | 实现人工确认流程 | 高 | 待开始 | P2-02, P2-07 |
|
||
| P2-09 | 实现 `MemoryService` 热记忆 | 中 | 待开始 | P2-03 |
|
||
| P2-10 | 集成热记忆到 SOP 上下文 | 中 | 待开始 | P2-04, P2-09 |
|
||
| P2-11 | 端到端测试:质控 SOP | 中 | 待开始 | P2-01~P2-10 |
|
||
|
||
### 3.3 验收标准
|
||
|
||
- [ ] 质控任务可自动执行完整 SOP
|
||
- [ ] 写操作正确等待人工确认
|
||
- [ ] SUSPENDED 状态正确持久化
|
||
- [ ] 热记忆正确注入 SOP 上下文
|
||
- [ ] 手动恢复执行成功
|
||
|
||
---
|
||
|
||
## 4. Phase 3: ReAct 引擎 + 流水账
|
||
|
||
### 4.1 目标
|
||
|
||
- 实现 ReAct 模式的灵活查询
|
||
- 搭建流水账层(L1)
|
||
- 实现只读安全约束
|
||
|
||
### 4.2 任务清单
|
||
|
||
| 任务ID | 任务名称 | 优先级 | 状态 | 前置依赖 |
|
||
|--------|----------|--------|------|----------|
|
||
| P3-01 | 创建 `iit_conversation_history` 表 | 高 | 待开始 | - |
|
||
| P3-02 | 创建 `iit_agent_trace` 表 | 中 | 待开始 | - |
|
||
| P3-03 | 实现 `ReActEngine` 核心循环 | 高 | 待开始 | P1-03 |
|
||
| P3-04 | 实现只读工具白名单 | 高 | 待开始 | P3-03 |
|
||
| P3-05 | 实现 `MemoryService` 流水账 | 高 | 待开始 | P3-01 |
|
||
| P3-06 | 实现向量化存储(pgvector) | 中 | 待开始 | P3-05 |
|
||
| P3-07 | 实现相似度检索 | 中 | 待开始 | P3-06 |
|
||
| P3-08 | 实现 Trace 记录机制 | 中 | 待开始 | P3-02, P3-03 |
|
||
| P3-09 | 实现流式反馈机制 | 高 | 待开始 | P3-03 |
|
||
| P3-10 | 实现 "正在思考" 状态提示 | 中 | 待开始 | P3-09 |
|
||
| P3-11 | 集成流水账到 ReAct 上下文 | 中 | 待开始 | P3-03, P3-05 |
|
||
| P3-12 | **[V2.9]** 扩展对话表支持反馈字段 | 中 | 待开始 | P3-01 |
|
||
| P3-13 | **[V2.9]** 实现反馈收集接口 | 中 | 待开始 | P3-12 |
|
||
| P3-14 | 端到端测试:模糊查询 | 中 | 待开始 | P3-01~P3-13 |
|
||
|
||
### 4.3 验收标准
|
||
|
||
- [ ] ReAct 可正确推理并调用工具
|
||
- [ ] 只读约束生效(无法调用写入工具)
|
||
- [ ] 流水账正确存储和检索
|
||
- [ ] Trace 记录可供调试
|
||
- [ ] 流式反馈 < 2秒首字节
|
||
- [ ] "正在思考" 状态正确显示
|
||
- [ ] **[V2.9]** 反馈按钮可正确收集用户反馈
|
||
|
||
---
|
||
|
||
## 5. Phase 4: 调度系统 + 历史书
|
||
|
||
### 5.1 目标
|
||
|
||
- 实现定时任务调度
|
||
- 实现周报生成
|
||
- 搭建历史书层(L3)
|
||
|
||
### 5.2 任务清单
|
||
|
||
| 任务ID | 任务名称 | 优先级 | 状态 | 前置依赖 |
|
||
|--------|----------|--------|------|----------|
|
||
| P4-01 | 创建 `iit_weekly_reports` 表 | 高 | 待开始 | - |
|
||
| P4-02 | 实现 `SchedulerService`(pg-boss) | 高 | 待开始 | - |
|
||
| P4-03 | 实现 `ReportService` | 高 | 待开始 | P4-01 |
|
||
| P4-04 | 实现周报自动生成 | 高 | 待开始 | P4-02, P4-03 |
|
||
| P4-05 | 实现记忆卷叠机制 | 中 | 待开始 | P4-01, P3-05 |
|
||
| P4-06 | 实现历史书检索 | 中 | 待开始 | P4-01 |
|
||
| P4-07 | 集成历史书到上下文组装 | 中 | 待开始 | P4-06 |
|
||
| P4-08 | **[V2.9]** 实现 `ProfilerService` | 中 | 待开始 | P2-03 |
|
||
| P4-09 | **[V2.9]** 扩展 Skill 表支持 Cron 触发 | 中 | 待开始 | P1-01 |
|
||
| P4-10 | **[V2.9]** 实现 Cron Skill 调度 | 中 | 待开始 | P4-02, P4-09 |
|
||
| P4-11 | **[V2.9]** 实现访视提醒 Skill | 中 | 待开始 | P4-10 |
|
||
| P4-12 | **[V2.9]** 集成用户画像到通知个性化 | 低 | 待开始 | P4-08, P4-11 |
|
||
| P4-13 | 端到端测试:周报生成 | 中 | 待开始 | P4-01~P4-12 |
|
||
|
||
### 5.3 验收标准
|
||
|
||
- [ ] 周报每周一自动生成
|
||
- [ ] 记忆卷叠每日自动执行
|
||
- [ ] 历史书检索正确召回
|
||
- [ ] **[V2.9]** 用户画像正确存储在 project_memory
|
||
- [ ] **[V2.9]** Cron Skill 按时触发
|
||
- [ ] **[V2.9]** 访视提醒正确发送给目标用户
|
||
|
||
---
|
||
|
||
## 6. Phase 5: 智能路由
|
||
|
||
### 6.1 目标
|
||
|
||
- 实现意图识别服务
|
||
- 实现混合路由(正则 + LLM)
|
||
- 实现追问机制
|
||
|
||
### 6.2 任务清单
|
||
|
||
| 任务ID | 任务名称 | 优先级 | 状态 | 前置依赖 |
|
||
|--------|----------|--------|------|----------|
|
||
| P5-01 | 实现 `IntentService` | 高 | 待开始 | - |
|
||
| P5-02 | 实现正则快速通道 | 高 | 待开始 | P5-01 |
|
||
| P5-03 | 实现 LLM 意图识别 | 高 | 待开始 | P5-01 |
|
||
| P5-04 | 实现降级策略 | 中 | 待开始 | P5-01~P5-03 |
|
||
| P5-05 | 实现追问机制 | 中 | 待开始 | P5-01 |
|
||
| P5-06 | 扩展 `ChatService` 集成路由 | 高 | 待开始 | P5-01~P5-05 |
|
||
| P5-07 | **[V2.9]** 优化 ReAct Prompt 支持多意图 | 中 | 待开始 | P3-03 |
|
||
| P5-08 | 端到端测试:路由分发 | 中 | 待开始 | P5-01~P5-07 |
|
||
|
||
### 6.3 验收标准
|
||
|
||
- [ ] 简单指令 < 50ms 命中快速通道
|
||
- [ ] 复杂句子正确识别意图
|
||
- [ ] UNCLEAR 情况正确追问
|
||
- [ ] LLM 不可用时正确降级
|
||
- [ ] **[V2.9]** 多意图消息正确拆分并顺序执行
|
||
|
||
---
|
||
|
||
## 7. Phase 6: 视觉能力(延后)
|
||
|
||
> ⚠️ **注意**:根据风险评估,视觉能力延后到核心功能稳定后再开发。
|
||
|
||
### 7.1 目标
|
||
|
||
- 实现图片识别能力
|
||
- 支持知情同意书识别
|
||
- 支持 CRF 扫描件识别
|
||
|
||
### 7.2 任务清单
|
||
|
||
| 任务ID | 任务名称 | 优先级 | 状态 | 前置依赖 |
|
||
|--------|----------|--------|------|----------|
|
||
| P6-01 | 评估 GPT-4V / 通义千问-VL | 低 | 延后 | P1~P5 完成 |
|
||
| P6-02 | 实现 `VisionService` | 低 | 延后 | P6-01 |
|
||
| P6-03 | 集成到 ChatService | 低 | 延后 | P6-02 |
|
||
| P6-04 | 端到端测试 | 低 | 延后 | P6-03 |
|
||
|
||
### 7.3 延后原因
|
||
|
||
1. 核心功能优先级更高
|
||
2. 视觉能力成本较高
|
||
3. 需要更多真实场景验证
|
||
|
||
---
|
||
|
||
## 8. 里程碑与依赖关系
|
||
|
||
```mermaid
|
||
gantt
|
||
title IIT Manager Agent 开发里程碑
|
||
dateFormat YYYY-MM-DD
|
||
section Phase 1
|
||
基础工具层 :p1, 2026-02-10, 14d
|
||
section Phase 2
|
||
SOP 引擎 + 热记忆 :p2, after p1, 21d
|
||
section Phase 3
|
||
ReAct 引擎 + 流水账 :p3, after p2, 14d
|
||
section Phase 4
|
||
调度系统 + 历史书 :p4, after p3, 14d
|
||
section Phase 5
|
||
智能路由 :p5, after p4, 7d
|
||
section Phase 6
|
||
视觉能力 :p6, after p5, 14d
|
||
```
|
||
|
||
---
|
||
|
||
## 9. 风险与对策
|
||
|
||
| 风险 | 影响 | 对策 | 已整合 |
|
||
|------|------|------|--------|
|
||
| ReAct 决策链过长 | 延迟 > 10秒 | 流式反馈 + "正在思考" 状态 | ✅ |
|
||
| 混合意图难分类 | 用户困惑 | UNCLEAR + 追问机制 | ✅ |
|
||
| ReAct 误调写入工具 | 数据风险 | 只读工具白名单 | ✅ |
|
||
| UI 无响应感 | 体验差 | 流式反馈 + 状态提示 | ✅ |
|
||
| SOP 中途被打断 | 任务丢失 | SUSPENDED 状态 + 恢复机制 | ✅ |
|
||
| 视觉能力分散精力 | 核心功能延迟 | 延后到 Phase 6 | ✅ |
|
||
| **[V2.9]** 用户多意图混乱 | 任务遗漏 | ReAct Prompt 多意图拆分 | ✅ |
|
||
| **[V2.9]** 回复不符用户偏好 | 体验差 | 反馈循环 + 用户画像 | ✅ |
|
||
| **[V2.9]** 主动提醒打扰用户 | 用户投诉 | 最佳通知时间 + 个性化 | ✅ |
|
||
| **[V2.9.1]** 患者隐私泄露给 LLM | **法律风险** | PII 脱敏中间件 + 审计日志 | ✅ |
|
||
| **[V2.9.1]** 字段映射配置繁琐 | 效率低 | AutoMapper LLM 语义匹配 | ✅ |
|
||
|
||
---
|
||
|
||
## 10. 性能指标
|
||
|
||
| 指标 | 目标值 | 测量方法 |
|
||
|------|--------|----------|
|
||
| 快速通道响应 | < 50ms | 正则匹配耗时 |
|
||
| LLM 意图识别 | < 1s | API 调用耗时 |
|
||
| SOP 单步执行 | < 2s | 包含工具调用 |
|
||
| ReAct 完整推理 | < 10s | 最多 5 轮循环 |
|
||
| 流式首字节 | < 2s | 第一个 token |
|
||
| 周报生成 | < 30s | 后台任务 |
|
||
| 向量检索 | < 500ms | Top-5 结果 |
|
||
|
||
---
|
||
|
||
**文档维护人**:AI Agent
|
||
**最后更新**:2026-02-05
|