# AI Flow Backend - 进度追踪文件
# 每次AI会话结束时必须更新此文件
# 新的AI会话开始时必须首先阅读此文件

## 项目当前状态 (截至 2026-04-12)

### 已完成的核心功能
- **基础框架**: Cool Admin + Midway.js 初始化，权限系统(RBAC)，流程引擎(13种节点)，知识库
- **Agent Swarm 架构** (BE-100~102): Supervisor + Skill 注册表 + SSE对话 + 会话管理
- **视频划痕检测 5个Skill** (BE-110~116): 抽帧→检测→定位→选帧→报告，Workspace共享存储
- **Skill 提示词自定义** (BE-105): prompts/defaultPrompts/updatePrompts API
- **Agent 架构进化** (BE-130~138): skillType分类 + SKILL.md规范 + XML注入 + agent_info表 + Agent CRUD + Supervisor支持agentId + 接口模式/open/agent/run/invoke + 预置Agent
- **LangChain 1.x 升级** (BE-200~204): middleware(toolRetry/toolCallLimit/modelRetry) + MySQL Checkpointer(自定义实现) + Skill内部Agent middleware
- **身份证OCR Skill** (BE-300): 百度OCR API封装 + id_card_ocr Skill
- **LLM思考内容显示**: reasoning_content提取 + thinking字段持久化
- **自主决策Agent**: 启动时自动创建/同步包含所有Skill的Agent
- **LLM Tool Selector中间件**: 轻量LLM预筛选工具子集(工具数>=8时启用)
- **审核订单模块规划** (BE-400~410): audit模块架构设计完成，任务已拆分
- **文生图Skill** (BE-501): 豆包Seedream 5.0文本生成图片(compute)，支持多分辨率/宽高比/批量/风格
- **实时语音交互Skill** (BE-500): 豆包端到端实时语音大模型(compute)，二进制协议编解码+WebSocket连接管理+Socket.io桥接
- **前端语音对话集成**: Socket.io连接+麦克风PCM录音+TTS句子级缓冲播放+语音对话面板
- **DOCX生成Skill** (BE-503): 基于docx npm包，支持三条流水线(创建/编辑/应用模板)，corporate/academic/minimal/government四种预设

### 新增的Skill (共15个，含5个视频检测+10个新增)
| Skill | 标识 | 类型 | 状态 |
|-------|------|------|------|
| 视频抽帧 | video_frame_extractor | compute | ✅ |
| 旧伤检测 | damage_detector | multimodal | ✅ |
| 损伤定位 | damage_grounding | multimodal | ✅ |
| 最佳帧筛选 | best_frame_selector | multimodal | ✅ |
| 报告生成 | scratch_report | llm | ✅ |
| 身份证OCR | id_card_ocr | compute | ✅ |
| 购车发票OCR | vehicle_invoice_ocr | compute | ✅ |
| 增值税发票验证 | vat_invoice_verify | llm | ✅ |
| 文档解析 | doc_parser | compute | ✅ |
| 理赔审核 | claim_audit | llm | ✅ |
| ZIP解压 | zip_extractor | compute | ✅ |
| 文生图 | image_generator | compute | ✅ |
| 实时语音交互 | realtime_voice | compute | ✅ |
| PPT生成 | pptx_generator | compute | ✅ |
| DOCX生成 | docx_generator | compute | 🔨 |
| XLSX生成 | xlsx_generator | compute | 🔨 |

### 模型渠道管理 (Neta Monorepo, 2026-04-12)
- **netaclaw_model_channel Entity**: 渠道表(name唯一/supplier/baseUrl/apiKey/models JSON/status)
- **NetaClawModelChannelService**: page/add/update/delete/info/allModels/testConnection/resolveForAgent
- **Admin Controller**: 7个端点 /admin/netaclaw/model_channel/*
- **运行时桥接**: agent.ts 中 channelId 解析，动态覆盖 model/apiKey/baseUrl
- **系统参数**: model_suppliers(9供应商) + model_capabilities(6能力类型)
- **数据库菜单**: ID=157, parentId=112(Agent管理), /agent/model-channel

### 新增的数据库表
- `agent_info` — Agent定义(name/label/systemPrompt/skills/modelConfig/status)
- `agent_checkpoints` + `agent_checkpoint_writes` — LangGraph状态持久化
- `audit_order` — 审核订单主表(宽表)
- `audit_order_detail` — 审核步骤明细
- `audit_config` — 审核规则配置
- `data_drug_catalog` — 商业健康险创新药目录主表
- `data_drug_category` — 创新药ATC分类(树形)
- `data_drug_item` — 创新药品条目
- `data_medical_catalog` — 国家医保药品目录主表
- `data_medical_category` — 医保药品ATC分类(树形)
- `data_medical_item` — 医保药品条目
- `notification_user` — 通知平台用户映射
- `notification_message_log` — 通知发送日志
- `netaclaw_model_channel` — 模型渠道管理(供应商/URL/密钥/模型列表/状态)

### 新增的模块
- `src/modules/audit/` — 审核订单管理(entity/service/controller)
- `src/modules/notification/` — 通知服务(飞书通知/用户映射/发送日志)
- `src/modules/data/` — 数据服务(创新药目录/医保药品管理)

### Token追踪 & 上下文管理 (Phase 1 完成)
- **TokenTracker**: `service/token_tracker.ts` — 收集 supervisor/selector/skill 三层 token 消耗，含 apiCalls 计数
- **Skill token 上报**: 4个 isComputeOnly Skill (damage_detector/damage_grounding/best_frame_selector/scratch_report) 在每次 callVisionAPI 后通过 `skillProgressEmitter.emitTokenUsage()` 上报
- **Progressive SSE**: 新增 `token_update` SSE 事件，每次 Skill API 调用后实时推送 token 汇总到前端
- **前端展示**: message-item 显示每条消息的 token 统计(入/出/总/调用次数)，chat.vue 显示实时执行中 token 和会话累计
- **待验证**: 需要实际运行 Agent 对话确认 token 数据正确采集

### 待开发 (按优先级)
- 实时语音交互端到端测试验证(TTS句子级播放已修复，待用户测试)
- **通知模块** (03-12): notification模块 + 飞书通知发送 + 通讯录同步 + Agent Skill + 开放HTTP接口
- **数据服务模块** (03-26): data模块 + 商业健康险创新药(BE-600) + 医保药品管理(BE-601)
- Phase 2: 上下文管理改造 (Checkpointer主导 + summarizationMiddleware)
- BE-400~410: 审核订单模块后端实现(Entity/Service/API/Skill/预置Agent)
- BE-504: XLSX生成Skill (xlsx_generator) - 4个工具 create/read/edit/validate
- BE-201: 接口模式responseFormat结构化输出
- BE-300 passes验证: 身份证OCR端到端测试
- BE-500/BE-501: 实时语音+文生图Skill端到端验证

## 历史会话摘要 (精简版)

| 日期 | 会话 | 主要完成 |
|------|------|---------|
| 02-21 | #1~#5 | 上下文工程初始化 + Agent Swarm架构(BE-100~102) + 视频划痕5个Skill(BE-110~116) |
| 02-24 | #6~#8 | Agent文档补全 + 架构进化规划(BE-130~138) + 全部后端实现 + Bug修复5个 |
| 02-27 | #9 | LangChain 1.x升级分析 + middleware(BE-200/202) + MySQL Checkpointer(BE-203/204) |
| 02-28 | #10 | 身份证OCR Skill(BE-300) + Skill描述编辑 + Skill结果展示 |
| 03-05 | #11 | LLM思考显示 + 自主决策Agent + Tool Selector中间件 |
| 03-06 | #12 | 审核订单模块架构规划(BE-400~410任务拆分) |
| 03-10 | #13~#14 | 文生图Skill(image_generator) + 实时语音交互Skill(realtime_voice) + 前端语音对话集成 + Skill配置面板改进 + 上下文工程文档更新 |
| 03-26 | #15 | 上下文工程文档更新：新增数据服务模块(BE-600/601)文档，INDEX/数据库README/CLAUDE.md/feature_list/progress全量更新 |
| 03-26 | #16 | MiniMax Skills集成：新增 pptx_generator Skill(BE-502)，基于PptxGenJS，支持5种幻灯片类型+主题配色+页码徽章 |
| 03-26 | #17 | MiniMax Skills集成第二弹：新增 docx_generator Skill(BE-503)，基于docx npm包，支持三条流水线(创建/编辑/应用模板)，corporate/academic/minimal/government四种预设，TypeScript编译零错误 |
| 03-27 | #18 | MiniMax Skills集成第三弹：新增 pdf_generator Skill(BE-505)，pdfkit(正文)+puppeteer-core(封面)+pdf-lib(合并)+ejs(模板)，15种封面风格，支持CREATE/FILL/REFORMAT三种模式，集成测试通过 |
| 04-12 | #19 | Neta Monorepo 模型渠道管理：Entity+Service+Controller+管理页面+级联选择器+Agent/Skill编辑改造+运行时桥接，10个功能提交+1个Bug修复 |

## 关键Bug修复记录
1. LLM URL重复拼接: apiUrl含/chat/completions → ChatOpenAI再追加导致404 → 去掉末尾
2. AgentInfoService Singleton scope: Event(singleton)注入Service(request) → 加@Scope(Singleton)
3. MySQL Checkpointer ER_TOO_LONG_KEY: VARCHAR(255)×4 > 3072 → VARCHAR(128)
4. MySQL Checkpointer ER_WRONG_VALUE_COUNT: Uint8Array展开 → Buffer.from()转换
5. FlowConfigService初始化时序: onServerReady时未初始化 → 直接SQL查询绕过
