| name | venue-deep-reading |
| description | T12 — survey_fetch 之后自动触发的场地深度精读。抓取目标场地同方向 Oral/Spotlight/Poster 论文(按本年 → 去年 → 前年... × Oral → Spotlight → Poster),用 venue_deep_reading_engine.run_deep_reading 做三层提取,产 artifacts/venue_deep_reading_profile.json 供 literature-survey / idea-brainstorm / novelty-checker / experiment-runner / multi-reviewer 五个下游技能消费。 |
Venue Deep Reading — 场地深度精读
何时触发:MCP pipeline 在 survey_fetch 完成后自动推进到本阶段(19 阶段流水线中的第 4 阶段,stage_name=venue_deep_reading)。当 pipeline-orchestrator.advance_pipeline 返回该 stage_name 时执行。
核心契约:本 stage 必须落 artifacts/venue_deep_reading_profile.json,且 acceptance_threshold_evidence.oral.sample_size + spotlight.sample_size ≥ 5,否则 validator 阻断(参见 validators.validate_venue_deep_reading)。
执行流程
Step 1 — 参数解析(Phase 2.1 / C1 微调)
按以下优先级解析 venue 和 topic_keywords(前一项有就用前一项):
venue (单值):
project_state.target_venue
nexus_project.target_venue.name
- → 都没有时 raise;提示用户配置
target_venue 后重跑。
topic_keywords (列表,至少 1 个):
project_state.research_domain.keywords
nexus_project.research_domain.keywords
survey_config.seed_queries
- 从
hypothesis_board.json 取 selected=true hypothesis 的 title,分词作 keywords
- → 都没有时 raise;提示先完成 ideation 或配置 research_domain。
Step 2 — 抓取 venue archive
from datetime import datetime
cur = datetime.utcnow().year
year_priority = [cur, cur - 1, cur - 2, cur - 3]
archive = paper_service.venue_archive(
venue=<from Step 1>,
topic_keywords=<from Step 1>,
tier_priority=["oral", "spotlight", "poster"],
year_priority=year_priority,
max_per_tier=8,
max_total=30,
)
Step 3 — 三层精读
from venue_deep_reading_engine import run_deep_reading
profile = run_deep_reading(archive, llm_router=<model-routing.md 派遣>)
- 第 1 层(regex/NLP,零 LLM 成本):每篇论文 abstract + title → problem framing + baselines + metrics
- 第 2 层(LLM 精读,仅 Oral/Spotlight):full-text → story_arc + formulation_paradigm + ablation_types
- 第 3 层(跨论文聚合):→ contribution_patterns + baseline_consensus + acceptance_threshold_evidence + novelty_frontier
Step 4 — 落盘
import json
from pathlib import Path
Path("artifacts/venue_deep_reading_profile.json").write_text(
json.dumps(profile, ensure_ascii=False, indent=2), encoding="utf-8"
)
Step 5 — 推进 stage
pipeline-orchestrator.complete_stage("venue_deep_reading")
降级路径 — venue 数据稀少时
acceptance_threshold_evidence.oral.sample_size + spotlight.sample_size < 5 时,不自动 skip。按以下决策:
- 先扩窗口:如果初次抓取
year_priority 只到 Y-3,扩到 Y-5 重抓;或加 tier_priority=["oral","spotlight","poster","unknown"] 让 unknown classifier 也产生 diagnostics。
- autopilot 或 flag 允许:
project_state.autopilot=true,OR
nexus_project.allow_skip_venue_deep_reading=true
→ 调 complete_stage("venue_deep_reading", result="skip")(venue_deep_reading 不是 hard checkpoint,skip 合法)
- manual 模式:返回结构化错误给用户,列出已抓样本量 + 建议(缩小 topic_keywords / 换 venue / 接受 skip)。
输出契约
artifacts/venue_deep_reading_profile.json:
corpus: {oral, spotlight, poster} 三层(每层始终输出,空 tier 是 [])
contribution_patterns: list[{framing, frequency}]
baseline_consensus: list[{name, frequency}],按频次降序
metric_consensus: list[str]
ablation_consensus: list[{name, frequency}]
formulation_templates: list[str]
story_arc_templates: {motivation_paragraphs, method_paragraphs, experiment_paragraphs} 每个 {mean, std}
title_patterns: list[str] 高频 title 关键词
novelty_frontier: list[{idea_summary, paper_id, year, tier="oral"}]
acceptance_threshold_evidence: {oral, spotlight, poster} 每层 {sample_size, avg_baselines, avg_ablations, has_theory_paper_ratio}
tier_diagnostics: {unknown_tier_count, tier_classification_confidence}(顶层独立诊断字段)
schema_version: "1.0"
下游消费方
详见 .agents/workflows/full-research-pipeline.md 的 venue_deep_reading → writing 阶段链路:
literature-survey:精读对象按 tier 排序
idea-brainstorm:novelty_frontier 剔除已被 Oral 解决的 idea
novelty-checker:把 novelty_frontier 当最高优先级 prior-art source
experiment-runner:baseline_consensus[:5] 必须覆盖
multi-reviewer:acceptance_threshold_evidence 当真实门槛对照
失败排错
| 症状 | 原因 | 修法 |
|---|
venue_archive 返回 0 篇 | venue 名拼写不一致 / topic 太窄 | 用 project_state.target_venue 的 canonical name(如 "ICLR" 不是 "iclr.cc") |
| oral 全是 unknown | OpenAlex cited_by_percentile_year 字段对新论文为 0 | tier_classifier 已 fallback citation_count;新论文一般 ≤50 cites 落 poster;接受 |
validate_venue_deep_reading 报 oral+spotlight<5 | 真小众场地 | 按"降级路径"决策 skip |