v0.20.6 rebuild platform environments from templates

This commit is contained in:
Deep Research System
2026-05-07 21:00:21 +08:00
parent bb2c91754b
commit b3050260b2
93 changed files with 6027 additions and 89 deletions
@@ -0,0 +1,237 @@
---
name: source-quality
description: 信源质量评分系统(0-10 分制)与黑名单机制。规定每个信源入库前的评估维度、硬性淘汰规则、利益冲突检测。所有收集信源的 agent 都必须用此技能给每条信源打分后写入 sources.jsonl。
---
# 信源质量评分(0-10 分制)
## 一、评分维度(满分 10 分)
| 维度 | 满分 | 判断标准 |
|---|---|---|
| 权威性 | 3 | 期刊 IF、机构排名 |
| 时效性 | 2 | 发表时间 vs 主题 |
| 一手性 | 2 | 一手数据 > 综述 > 二次解读 |
| 可验证性 | 2 | 有 DOI/URL/原始数据 |
| 无利益冲突 | 1 | 厂商自发降权 |
### 维度 1:权威性(0-3 分)
| 分值 | 情形 |
|---|---|
| 3.0 | IF ≥ 30NEJM/Lancet/Nature/Science/Cell/JAMA)、FDA/EMA/NMPA 官方、SEC 披露 |
| 2.5 | IF 10-30NatMed/NatBiotech/BMJ/AnnOncol 等)、顶级咨询(MKS/BCG/Deloitte |
| 2.0 | IF 5-10JCO/CircRes/AJRCCM)、IQVIA/EvaluatePharma、系统综述 |
| 1.5 | IF 3-5、券商研报、行业协会白皮书 |
| 1.0 | IF 1-3、专业媒体(BioSpace/Endpoints News |
| 0.5 | 预印本(bioRxiv/medRxiv)、会议摘要 |
| 0 | 自媒体、百家号、未署名博客 |
### 维度 2:时效性(0-2 分)
| 主题类型 | 满分年限 | 每老 1 年扣分 |
|---|---|---|
| 市场 / 监管 / 临床 | 3 年内 | -0.5 |
| 作用机制 / 基础研究 | 10 年内 | -0.2 |
| 政策法规 | **以最新版本为准** | 过时版本 0 分 |
| 历史追溯(有意为之) | 不限 | 不扣 |
### 维度 3:一手性(0-2 分)
| 分值 | 情形 |
|---|---|
| 2.0 | 一手数据(原始 RCT 论文、监管公告、年报原文、专利原文) |
| 1.5 | 系统综述 / Meta 分析 |
| 1.0 | 叙述性综述 / Review |
| 0.5 | 二次解读(新闻报道、券商改写) |
| 0 | 三次传播以上("据报道"/"业内人士") |
### 维度 4:可验证性(0-2 分)
| 分值 | 情形 |
|---|---|
| 2.0 | 有 DOI + 原始数据可下载(如 ClinicalTrials 的 CSR 附件) |
| 1.5 | 有 DOI 或稳定 URL,全文可访问 |
| 1.0 | URL 稳定但需付费墙 |
| 0.5 | 仅有 URL,无唯一标识符 |
| 0 | URL 失效 / 404 / 无法验证 |
### 维度 5:利益冲突(0-1 分)
| 分值 | 情形 |
|---|---|
| 1.0 | 独立研究(学术机构、政府)、无资助声明冲突 |
| 0.5 | 有 industry funding 但已声明且方法独立 |
| 0 | 厂商自发报告 / 直接商业软文 |
| **-1**(惩罚) | 声明冲突但方法可疑、或对比实验明显偏向资助方 |
---
## 二、综合评分硬规则
| 评分 | 可用性 |
|---|---|
| 8.0+ | 可作为核心论据,单独支撑结论 |
| 6.0-7.9 | 可用,但结论需 ≥2 个独立信源 |
| 4.0-5.9 | 仅作为参考,**不得作为唯一支撑** |
| < 4.0 | **禁止**用于结论佐证,只能入发现库 |
---
## 三、检索回执与原文访问
Gemini / Antigravity 模式下,信源质量评分必须和检索回执绑定。任何来源进入 `sources.jsonl` 前,必须能追溯到 `search_log.jsonl` 中的至少一条记录。
### search_log.jsonl 最低字段
```json
{
"receipt_id": "srch_0001",
"timestamp": "YYYY-MM-DDTHH:MM:SSZ",
"tool": "search-cli|browser|project-search|other",
"mode": "academic|scholar|patents|news|extract|general|deep",
"query_or_url": "...",
"purpose": "which task/card/chapter this supports",
"result_count": 10,
"opened_urls": ["https://..."],
"status": "ok|partial|failed",
"failure_reason": null
}
```
### sources.jsonl 追加字段
```json
{
"id": "src_042",
"search_receipt_ids": ["srch_0001"],
"raw_url": "https://...",
"canonical_url": "https://...",
"source_type": "paper|regulator|trial_registry|patent|filing|database|consulting|media|other",
"access_status": "opened_original|opened_abstract|paywalled|failed|snippet_only",
"evidence_locator": "page/table/section/trial id/patent claim",
"independence_cluster": "cluster_..."
}
```
硬规则:
- `snippet_only` 只能作为发现线索,不能支撑正文事实。
- `failed` 必须保留失败原因,不能根据标题或搜索摘要推断具体数据。
- `paywalled` / `opened_abstract` 可以用于发现方向,但核心结论还需要至少一个可打开原文或官方记录支撑。
- 同一公司新闻稿、同一试验登记、同一专利族、同一券商报告转载链,必须归入同一个 `independence_cluster`
---
## 四、黑名单(直接拒绝入库)
以下信源**无论评分多少都禁用**
### 1. 明确劣质信源
- 百家号(baijiahao.baidu.com
- 头条号(toutiao.com 非原创栏目)
- 知乎回答(除非作者本人为业内专家且有实名背书)
- 小红书、抖音笔记
- 未署名作者的 wordpress / medium 博客
### 2. 被撤稿论文
- 查询 Retraction Watch 数据库(https://retractionwatch.com/
- Crossref API 检查论文状态:`https://api.crossref.org/works/<DOI>`
### 3. 明显软文/PR 稿
识别特征(命中任意 2 条即拒):
- 标题含 "重磅发布" "首创" "引领" 等夸张词
- 通篇无具体数据,只有 CEO/专家口头引述
- 发布渠道是企业官网的"新闻中心"且无交叉第三方验证
- 仅讲优势不讲局限
### 4. 时效过期
- 综述 > 5 年(机制研究可放宽)
- 政策/监管 > 1 年(以最新版本为准)
- 市场数据 > 2 年
### 5. 维基百科
- **仅可作术语理解入口**
- 结论永不引用
- 如从 Wiki 发现了参考文献,**回溯到原始来源**再引用
---
## 五、利益冲突检测要点
### 常见利益冲突场景
- 药企赞助的 RCT 对自家产品评价极高 → 查对比剂、盲法、样本量
- 咨询公司报告引用自家客户数据 → 查 acknowledgment 段
- 行业协会报告涉及会员企业 → 查资助方名单
- 券商研报 + 该券商是相关公司的保荐人 → 查 IPO/承销记录
### 操作方法
每条信源入库前检查:
1. 作者/机构是否与被评估的公司/产品有商业关联?
2. 资助声明(funding statement)里提到什么?
3. 利益披露(disclosure)是否完整?
**发现强利益冲突**:评分 ≤ 3(等同废弃);写入 `sources.jsonl``"conflict_of_interest": "..."` 字段。
---
## 六、评分执行流程(伪代码)
```
for each candidate_source in search_results:
# 1. 黑名单快筛
if is_blacklisted(candidate_source):
log("BLACKLIST: " + source.url); continue
# 2. 撤稿检查
if has_doi(source) and is_retracted(source.doi):
log("RETRACTED: " + source.doi); continue
# 3. 评分
score = 0
score += authority_score(source) # 0-3
score += recency_score(source, topic) # 0-2
score += primacy_score(source) # 0-2
score += verifiability_score(source) # 0-2
score += coi_score(source) # 0-1 or -1
# 4. Tier 加权
if source.tier == 1: score *= 1.2
# 5. 入库
if score >= 4.0:
append_to_sources_jsonl(source, score)
else:
log("LOW SCORE (" + score + "): " + source.url)
```
---
## 七、输出字段(写入 sources.jsonl
```jsonl
{
"id": "src_042",
"score": 8.6,
"tier": 1,
"authority": 3.0,
"recency": 2.0,
"primacy": 2.0,
"verifiability": 2.0,
"coi": 1.0,
"conflict_of_interest": null,
"blacklist_checked": true,
"retraction_checked": true,
"search_receipt_ids": ["srch_0001"],
"access_status": "opened_original",
"evidence_locator": "Table 2",
"independence_cluster": "cluster_trial_001",
"notes": "NEJM 2025 原文,RCT 独立研究"
}
```
---
## 八、审计留痕
所有被**拒绝**的信源,也要写入 `projects/<slug>/phase2/rejected_sources.jsonl`(注明原因、对应 `receipt_id`、拒绝规则)。这是事后复盘的关键,不要静默丢弃。