跳转到内容

网页搜索与阅读

八千代有三个面向网页的工具,各司其职:

  • webSearch —— 执行一次查询,拿到结果。
  • webRead —— 抓取一个 URL,返回可读内容。
  • useBrowser —— 驱动真实浏览器,做 fetch 做不到的事:登录、重 JS 的应用、多步流程。

前两个在 设置 → 来源 → 搜索 里配置。

供应商工作方式需要什么
Google(浏览器)通过隐藏浏览器会话查询 Google
DuckDuckGo(浏览器)同上,针对 DuckDuckGo
ExaExa 搜索 APIAPI key

默认是走隐藏浏览器的 Google。基于浏览器的供应商不需要账号也不需要 key,代价是偶尔会撞上同意墙或机器人校验。

基于浏览器的供应商跑在自己的会话里,和你平时的浏览分开。全新的会话没有 cookie,而这恰好是 Google 判定你像机器人的时候。

解法是一次性导入:设置 → 来源 → 搜索 → 浏览器会话 → 从 Chrome 导入。选一个 Chrome 配置文件,八千代会把它的 cookie 和同意状态复制进搜索会话。面板会显示上次导入的时间和来源配置文件。

如果搜索结果开始返回空的,或者你又开始看到同意页,重新导入一次。

webRead 抓取一个 URL,按请求的格式返回其中可读的部分。具体行为取决于返回的是什么:

响应行为
HTMLDefuddle 提取正文
PDF自动提取文本
纯文本、JSON、其他非 HTML原样返回
提取失败的 HTML回落到原始响应体

如果内容大到没法内联返回,它会被写进一个工作区文件,让智能体从那里读,而不是把上下文窗口撑爆。

webRead 面向的是静态抓取。登录流程、JavaScript 应用,以及任何需要交互的东西都是 useBrowser 的地盘 —— 内置的 yachiyo-browser 技能讲了怎么把它用好。

Exa 是一个 API 而不是爬取,因此更可靠也更可预测 —— 搜索量大的话值得。在 设置 → 来源 → 搜索 里加上 key,或者:

Terminal window
yachiyo config set webSearch.defaultProvider '"exa"'
yachiyo config set webSearch.exa.apiKey '"your-exa-api-key"'

自建或代理的端点可以通过自定义 webSearch.exa.baseUrl 指定。