# **RVW V2.0 架构升级方案:基于 Skills 的柔性审稿引擎**
**文档版本:** v2.0 (Strategic Release)
**最后更新:** 2026-02-16
**核心理念:** **认知依赖注入 (Cognitive Dependency Injection)** —— 将审稿能力封装为原子化的 Skills,通过配置引擎(Profile)动态注入给 SOP 引擎(报告)和 ReAct 引擎(对话)。
**架构依据:** 基于《AI Skills 落地应用探讨》与中英文期刊差异化需求。
## **1\. 核心定义:什么是 RVW Skills?**
在 V2.0 架构中,Skill 不再是一个简单的函数,它是连接\*\*非确定性大模型(LLM)**与**确定性业务系统(Code)\*\*的桥梁。
一个标准的 **RVW Skill** 包含三个不可分割的部分(Schema First 原则):
1. **语义接口 (Semantic Interface)**:告诉 LLM "什么时候用"(例如:"当需要验证药物剂量时调用")。
2. **数据契约 (Schema)**:严格定义的输入输出结构(例如:drug\_name: string, dosage: number),确保代码执行的安全性。
3. **原生函数 (Native Function)**:实际执行任务的代码(Python/SQL),**“推理在模型,执行在代码”**。
## **2\. 总体架构:双脑协同与护栏防御体系**
我们摒弃了 V1.0 的线性流程,采用了 **“双脑协同 \+ 中间件护栏”** 的立体架构。
### **系统架构图**
graph TD
subgraph "输入层"
Doc\[稿件 PDF/Word\]
Profile\[期刊配置 Profile\]
end
subgraph "Layer 1: 护栏中间件 (Middleware Guardrails)"
direction TB
SafeGuard\[🛡️ 政治与合规护栏\]
note1\[Pre-Hook: OCR地图/敏感词拦截\
Post-Hook: 幻觉检测\]
end
subgraph "Layer 2: 审稿编排引擎 (The Core)"
Registry\[🧩 Skills Registry 技能注册表\]
Router\[🚦 Skill Router 动态路由\]
Context\[Shared Context 共享上下文\]
end
subgraph "Layer 3: 原子能力库 (Skills)"
direction BT
S\_Native\[🐍 Python计算 Skill\
(数据造假/统计验证)\]
S\_RAG\[🧠 知识检索 Skill\
(医学常识/pgvector)\]
S\_Search\[🌍 外部搜索 Skill\
(竞品对标/ASL联动)\]
S\_Logic\[⚖️ 逻辑校验 Skill\
(入排标准/pg\_bigm)\]
end
subgraph "输出层 (双脑应用)"
SOP\[🧠 左脑: SOP 流程引擎\
(生成静态审稿报告)\]
ReAct\[🧠 右脑: ReAct 对话引擎\
(交互式学术 Copilot)\]
end
Doc \--\> SafeGuard
SafeGuard \--阻断/通过--\> Router
Profile \--\> Router
Router \--动态加载--\> Registry
Registry \<--\> S\_Native & S\_RAG & S\_Search & S\_Logic
Registry \--\> SOP
Registry \--\> ReAct
SOP \--\> Context
Context \<--\> ReAct
## **3\. 三层防御与赋能体系 (The 3-Layer Capability)**
### **Layer 1: 政治与合规护栏 (Middleware Guardrail)**
*针对痛点:中文期刊的政治红线(地图、涉敏言论)。*
* **性质**:这不是一个可选的 Skill,而是系统级的 **Interceptor (拦截器)**。
* **机制**:
* **Pre-Hook (输入前)**:
* 调用 OCR 识别图片 \-\> 匹配“中国地图特征库” \-\> 缺失藏南/南海 \-\> **熔断拒稿**。
* 扫描全文 \-\> 匹配“高危敏感词库” \-\> 命中 \-\> **熔断拒稿**。
* **Post-Hook (输出后)**:
* 扫描 LLM 生成的审稿意见,防止 AI 产生不当言论。
* **配置策略**:中文核心期刊强制开启 (Blocker 级别),英文期刊可降级为 Warning 或关闭。
### **Layer 2: 原生计算能力 (Native Execution Skills)**
*针对痛点:数据造假、统计学错误。*
* **核心原则**:LLM **只写参数,不负责计算**。
* **典型 Skill:DataForensicsSkill (数据侦探)**
* **Step 1 (LLM)**:从 Markdown 表格中提取数据,生成 JSON:{"group\_a\_n": 50, "group\_a\_mean": 12.5, "group\_a\_sd": 2.1}。
* **Step 2 (Python)**:调用 scipy 库复核 P 值,使用 Benford's Law (本福特定律) 检查首位数字分布。
* **Step 3 (LLM)**:根据 Python 返回的 {"p\_value\_consistent": false, "benford\_score": 0.04} 生成自然语言警告。
### **Layer 3: 学术智慧能力 (RAG & Agent Skills)**
*针对痛点:医学常识错误、竞品对标。*
* **典型 Skill:MedicalLogicSkill (常识校验)**
* **底层支持**:利用 **Postgres (pgvector)** 挂载《临床用药指南》和《诊断学参考值》。
* **流程**:提取“卡托普利 500mg” \-\> 向量检索知识库 \-\> 发现正常范围是 12.5-50mg \-\> 触发警告。
* **典型 Skill:BenchmarkSkill (竞品对标)**
* **联动**:调用 ASL (智能文献) 模块 API。
* **流程**:搜索相似文献 \-\> 对比样本量与方法学 \-\> 生成“竞争力分析报告”。
## **4\. 固定的 vs. 可配置的 (Architecture Boundary)**
基于“工厂模式”理念,我们将系统划分为“流水线(固定)”和“模具(可配置)”。
### **✅ 固定的 (Infrastructure \- 平台底座)**
所有期刊共用,不随业务变化:
1. **Middleware Pipeline**:支持 Pre/Post Hook 的拦截器架构。
2. **Skill Registry**:技能注册与发现机制。
3. **Postgres-Only Stack**:
* pgvector:承载医学知识库、稿件内容记忆。
* pg\_bigm:承载精确的术语匹配(如药物名)。
* pg-boss:承载长耗时任务(如全网文献对标)。
4. **Python Microservice**:提供 OCR、PDF 解析、统计计算等“硬核”算力。
### **🎛️ 可配置的 (Journal Profile \- 业务逻辑)**
通过 JSON 配置定义,适应不同期刊:
1. **Guardrail Strictness (护栏严格度)**:
* "political\_check": "BLOCKER" (中文核心) vs "WARNING" (普通期刊)。
2. **Skill Selection (技能组合)**:
* **中文组合**:DataForensics \+ MedicalLogic \+ Editorial\_CN。
* **英文组合**:Methodology\_CONSORT \+ Benchmark\_PubMed \+ Editorial\_EN。
3. **Chat Persona (对话人格)**:
* "persona": "严厉的政治审查员" vs "persona": "建设性的学术导师"。
## **5\. 场景演练:从上传到对话**
### **场景 A:中文核心期刊(政治与数据为王)**
1. **上传**:文件经过 **Layer 1 护栏**。OCR 发现地图缺失,直接抛出 FatalError: MapIntegrityViolation,流程终止。用户收到拒稿通知。
2. **修正后上传**:通过护栏。
3. **SOP 引擎**:自动调用 DataForensicsSkill。Python 后端发现“表1数据标准差异常”,写入报告。
4. **ReAct 引擎 (Chat)**:用户问:“为什么说我数据有问题?”
* Chat Agent 读取 Shared Context。
* 回答:“根据 Benford 定律检测,您数据的首位数字分布偏离自然规律 30%,建议复核原始记录。”
### **场景 B:英文顶刊(创新与对标为王)**
1. **上传**:跳过政治护栏(配置为通过)。
2. **SOP 引擎**:调用 BenchmarkSkill。ASL 模块检索到 3 篇上个月发表的类似文章,样本量均大于本稿件。
3. **报告生成**:在“创新性评估”一栏标注:“样本量竞争力不足 (Low Competitiveness)”。
4. **ReAct 引擎 (Chat)**:用户问:“我该怎么修改才能达到发表标准?”
* Chat Agent 调用 MethodologySkill。
* 回答:“建议参考 *Smith et al. (2025)* 的多中心设计,将样本量扩充至 200 例,并补充亚组分析。”
## **6\. 开发实施路线图 (Implementation Roadmap)**
### **Phase 1: 基础设施与定义 (Infrastructure)**
* \[ \] **定义 Schema**:在 backend/src/modules/rvw/skills/definitions/ 下定义 SkillInterface 和各类 Skill 的 JSON Schema。
* \[ \] **建立 Registry**:实现简单的内存级 Skill 注册表。
### **Phase 2: 护栏与原生技能 (The Hard Stuff)**
* \[ \] **实现 Middleware**:在 Document Service 中插入 Pre-Hook 逻辑。
* \[ \] **开发 Python Skills**:在 python-extraction 服务中新增 /analyze-table 和 /ocr-check 接口。
* \[ \] **实现 PoliticalGuardrail**:基础的敏感词匹配 \+ 地图 OCR 占位符。
### **Phase 3: 学术技能与双脑打通 (The Smart Stuff)**
* \[ \] **实现 MedicalLogicSkill**:利用现有的 pgvector 基础设施。
* \[ \] **集成 ASL**:开发 BenchmarkSkill 调用 ASL 模块 API。
* \[ \] **升级 Chat**:让 AIA 组件能读取审稿报告的 Context,并具备 Function Calling 能力。
## **7\. 总结**
V2.0 架构不仅仅是功能的堆砌,而是**系统哲学的转变**:
* 从 **"LLM 尽力而为"** 转向 **"Guardrail 绝对防御"**。
* 从 **"单一审稿报告"** 转向 **"交互式学术伙伴"**。
* 从 **"文本生成"** 转向 **"工具调用 (Tool Use)"**。
这套架构将确保 RVW 既能满足中文期刊的“生死红线”,又能满足英文期刊的“学术高度”。