Hyperresearch 配置完全指南:oa_min_full_text_chars 如何拦截 200 字摘要冒充全文?
【免费下载链接】hyperresearchAgent-driven research knowledge base. Agents collect, search, and synthesize web research into a persistent, searchable wiki.项目地址: https://gitcode.com/GitHub_Trending/hy/hyperresearch
Hyperresearch 是一个Agent 驱动的开源研究知识库,能自动收集、搜索并综合网络研究,沉淀为可持久检索的 wiki。其中OA 全文恢复功能可以把付费墙后只剩摘要的论文替换为合法的开放获取全文——而oa_min_full_text_chars就是决定"候选文本算不算真全文"的关键参数。
为什么 200 字摘要会"冒充"全文?
想象一下 Agent 帮你抓取论文时的场景:
- 访问出版社页面 → 撞上付费墙,只拿到约 1,500 字符的摘要;
- Hyperresearch 启动 OA 恢复,按顺序向Unpaywall → Europe PMC → CORE索取该论文的合法开放获取版本;
- 有些返回结果并不是真全文,而是仓库记录页——标题、作者名加一段 200 字的简介。
问题就出在第 3 步:这种记录页比出版社摘要稍长,如果只比长度"更长",它就会被误当成全文存进笔记。Agent 后续基于它推理、引用,质量就悄悄下降了。
oa_min_full_text_chars就是为此而生的长度底线:
| 页面类型 | 典型文本长度 |
|---|---|
| 真实论文正文 | 约 20k ~ 80k 字符 |
| 摘要落地页 | 约 1k ~ 3k 字符 |
| 默认阈值 | 6,000 字符 |
这个分界线在配置模块中定义,并附了经验注释:"真实论文正文是 2 万到 8 万字符;摘要落地页只有 1 千到 3 千",见 src/hyperresearch/core/config.py。
这个参数在哪些地方生效?
oa_min_full_text_chars会在两个检查点发挥作用,一个负责"触发",一个负责"验收"。
检查点 1:触发 OA 全文查找
当抓取结果"太薄"且带有 DOI 时,Hyperresearch 才会去查找全文。判断逻辑很简单:页面文本长度低于阈值 → 判定为薄页面,启动查找,见 src/hyperresearch/core/oa.py。
这里故意做得比较"宽"——宁可误判一次(只多一次有缓存的 API 调用),也不漏掉该救的论文。
检查点 2:候选全文必须过"两道门槛"
这是本配置的核心。一个候选全文要被接受,必须同时满足:
- ✅ 比已有内容更长(不缩水原则);
- ✅ 长度达到
oa_min_full_text_chars阈值。
第二道门槛正是拦截器:仓库记录页虽然比摘要稍长,但远不到 6,000 字符,直接被跳过,见 src/hyperresearch/core/oa.py。
if recovered_len <= beat_chars: continue # 不比已有内容长 → 跳过 if recovered_len < settings.oa_min_full_text_chars: continue # 不够长 → 还是不算全文,跳过如果所有候选都过不了这两关,保留原摘要,笔记里不会出现oa块——而不是塞一个名不副实的"全文"。
如何修改 oa_min_full_text_chars?最快配置方法
配置写在知识库根目录的.hyperresearch/config.toml的[scholar]段中:
[scholar] oa_recovery = true # 总开关 contact_email = "" # Unpaywall 必填,留空则跳过 Unpaywall oa_min_full_text_chars = 6000 # 低于此长度的正文触发全文查找 oa_prefer_published = true # 优先正式版而非预印本 oa_max_attempts = 3 # 最多尝试几个候选副本 oa_rescue_blocked = true # 源完全不可读时也尝试 OA 补救建议:
- 📏默认 6,000 适合绝大多数学科,一般不用改;
- 📖 如果你大量处理短文献(评论、书评、章节节选),可以把阈值调低,例如
oa_min_full_text_chars = 2000,避免漏掉合法的短全文; - ⚠️ 不建议设得太高:阈值越高,越多正常短全文被拒,摘要冒充的风险虽小,但"该救不救"的损失更大。
配置段落的完整说明见 README.md,配置解析逻辑在 src/hyperresearch/core/config.py。
设计哲学:失败总是"软失败",质量只升不降
Hyperresearch 对 OA 恢复有一条铁律:恢复永远不会让一次抓取失败,也永远不会降低质量。
- 查询报错、URL 过不了安全检查、PDF 提取效果差 →原文原样保留;
- 没有任何候选同时过两道门槛 →保留摘要,不出现
oa块; - 补救(rescue)只会把"失败的抓取"变成"笔记",从不反向把成功变失败。
相关行为由测试套件完整覆盖(阈值触发、配置解析、候选验收等场景),见 tests/test_core/test_oa_recovery.py。
小结
| 要点 | 说明 |
|---|---|
| 是什么 | [scholar]段下的全文长度底线,默认6000 字符 |
| 防什么 | 仓库记录页(标题+作者+200 字简介)冒充全文 |
| 何时生效 | ① 判断抓取页面是否"太薄"需触发查找;② 验收 OA 候选是否够格 |
| 改不改 | 多数场景保持默认;短文献场景可适当调低 |
一句话记住它:宁可信摘要,不存假全文。这个小小的字符阈值,是 Agent 研究质量的第一道质检门。
【免费下载链接】hyperresearchAgent-driven research knowledge base. Agents collect, search, and synthesize web research into a persistent, searchable wiki.项目地址: https://gitcode.com/GitHub_Trending/hy/hyperresearch
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考