检索与外部知识¶
真实研究从已有的知识出发。Arbor 能引入外部知识——文献与开放网络——分两条互相独立的 lane:
| Lane | 时机 | 作用 | 写入 | 默认 |
|---|---|---|---|---|
| 接地 ideation | IDEATE 期间 | 协调器检索以启发新想法 | node.grounding |
关 |
| 新颖性审查 | 实验之后 | SearchAgent 为已验证的想法核查先行工作 | node.related_work |
关 |
两条 lane 各自独立检索、永不共享抓取的文本——因此同一个页面不能既启发一个想法、又给它认证新颖。 两者都默认关闭,以保证基准运行的公平:系统无法从网上抄成品想法或结果。做真实研究时再打开—— 那时"先读相关工作"正是关键。
这些都配置在 search: 块下——完整字段见 配置。
接地 ideation¶
开启方式:
随后协调器会获得一个 ResearchSearch 工具,可在构思时调用。它是可选输入——想法仍可来自
实验结果或模型自身推理——只在需要外部知识时才用。用 intent 决定检索方式:
| intent | 用途 |
|---|---|
related_work |
已有草稿想法——找先行工作,评估重叠 / 空白 |
survey |
整理某问题/领域当前的解法(路线 + 取舍) |
lookup |
查具体事实:某方法细节、数据集、benchmark 数字 |
explore |
开放式扫描某方向,找未被探索的角度 |
该工具在隔离上下文中运行(冗长的搜索结果与页面正文不会进入协调器窗口),返回精简摘要: summary、findings 与编号来源。从未被实际打开过的来源会被丢弃,让引用保持诚实。
当某来源确实塑造了一个想法,协调器会把它记录在该节点的 grounding 字段——在想法树与报告中可见,
与新颖性审查的 related_work 分开。
新颖性审查¶
审查为已经验证有效的想法调研先行工作,让你在合并进主干前知道:一次提升是否也是一项贡献。
开启 auto_search_on_add: true 后,加入树的每个想法都会先做一次实验前新颖性核查,判定结果写入节点的
related_work 字段(仅作建议,绝不阻断运行)。一个专门的 SearchAgent 会做自己的全新检索,因此不会被
接地 ideation 之前读过的内容误导。
在运行之外单独核查:
选项见 arbor idea-check。
检索后端¶
search.backends 是一个有序列表;所有后端的结果会合并去重,因此可以组合来源(如论文与通用网页,
同一篇论文若来自两个后端会合并为一条)。
| 后端 | 需要 key? | 覆盖 |
|---|---|---|
alphaxiv |
否 | arXiv / alphaXiv 论文(Python ≥ 3.12) |
jina |
否(可选 JINA_API_KEY 提配额) |
通用网页(s.jina.ai) |
serper |
SERPER_API_KEY |
Google 结果(serper.dev) |
exa |
EXA_API_KEY |
神经网络检索(exa.ai REST) |
exa-mcp |
否(可选 EXA_API_KEY 提配额) |
经 Exa 托管 MCP 服务器接入 |
endpoint |
可选 | 自托管 web_search_endpoint(BrowseComp 风格) |
缺少 key 的后端会被静默跳过——因此像 [alphaxiv, jina, serper] 这样的列表在没有 SERPER_API_KEY
时会优雅退化为免 key 的两个。完全免 key 的默认是 backends: [alphaxiv, jina]——论文 + 通用网页,零配置。
key 写在配置文件里(serper_api_key / exa_api_key / jina_api_key),或用对应的同名环境变量
(SERPER_API_KEY、EXA_API_KEY、JINA_API_KEY)。
Exa via MCP
exa-mcp 后端连接 Exa 托管的 MCP 服务器(https://mcp.exa.ai/mcp,可用 exa_mcp_url 覆盖 URL)。
托管服务器免 key 即可基本使用——设 exa_api_key 只是提配额(作为 x-api-key header 发送)。
它需要 MCP 客户端:pip install 'arbor-agent[mcp]'。而普通的 exa 后端走同一家的 REST API
(那个需要 key)——按你的环境二选一。
读取页面¶
读页面同样免 key。search.visit_backend: auto(默认):
- alphaXiv 论文 URL → alphaXiv SDK(全文),
- 其它任意 URL → Jina reader(
r.jina.ai,干净 markdown,免 key),再 fallback 到原始requests抓取。 PDF 也能读——Jina reader 会抽取 PDF 文本,raw fallback 用pypdf解析 PDF。
因此打开页面无需 browse 端点或 API key。也可强制单一取页器:
visit_backend: jina | requests | alphaxiv | endpoint。
阅读深度(全文 vs 摘要)。 页面文本会按 token 预算截断。新颖性审查 lane 用
visit_max_content_tokens(默认 2048——判断先行工作有摘要就够)。接地 ideation lane 要读深度,
用更大的 research_visit_tokens(默认 6000),让论文的方法 / 结果章节不被截断,而不只是摘要。
需要更深可调大任一项(token 成本更高)。
向后兼容¶
旧配置仍原样可用。当 backends 为空时,Arbor 自动映射旧字段:builtin_backend: alphaxiv → [alphaxiv],
设置了 web_search_endpoint → [endpoint](visit 使用 web_browse_endpoint)。
当前生效了什么?¶
运行启动时,协调器会打印一次解析后的配置,例如:
让你一眼确认哪些后端生效、接地 ideation 是否打开。
另见¶
- 配置 —— 完整的
search:字段列表。 arbor idea-check—— 一次性新颖性核查。