帮你从iFlow CLI顺畅迁移到OpenCode——第三弹之联网搜索

前情回顾

第一期讲了基础资源,使用习惯等的迁移

第二期主要是针对自动压缩的话题,提供了更加智能的压缩方案

这一期来讨论下联网搜索的话题

iFlow CLI除了上述特色功能外,还有两个重要的内置工具,对我们实际使用和解决问题来说都是不可或缺的,
这也是4.17官方停止iFlow CLI服务后,会缺失的两个重要能力。

这是我们今天的主角,WebSearch 和 WebFetch。

首先说明下,什么是WebSearch 和 WebFetch,为什么需要。

其实就像你去使用网页版的AI Agent一样,模型是有训练截止日期的,在这个日期之后发生的事情,模型并不清楚,那么此时,你会打开一个页面上的功能,就是联网搜索。

WebSearch和WebFetch就是做这个事情的,有了这个能力的加持,模型就能够知道后续新发生的事情,包括可以去网上搜索资料等等。

他们都是用来进行网络搜索的能力组成,那他们的区别是什么呢?

  • WebSearch:用于根据搜索关键词查找相关的网页,返回一组相关的链接、页面标题(有的还会返回摘要),主要用于不确定具体页面时寻找信息来源。

  • WebFetch:从已知的URL获取网页内容,返回的是该页面的具体信息和最小化元数据,适合针对单个页面进行精确的信息查询(有的会有深度检索能力)。

可见他们既可以单独使用,也可以组合起来使用(组合技!)
WebSearch帮你搜索出相关的网站,然后WebFetch帮你去访问这些网站并获取重要信息。

如何增加

OpenCode内置了WebFetch的能力,但是没有内置WebSearch。

换句话说,如果你什么都不安装配置,保持默认的情况下,你只有知道具体的url时,OC可以调用内置的Fetch去读取页面内容,前提是你的网络能正常访问这个url的情况下(严谨脸)。

我们来举个栗子 :chestnut:

今天的天气情况大模型肯定是不知道的,所以它去看有什么工具可以使用来获取这个信息,它发现它内置了一个webfetch工具,这里之所以能查到,是因为根据上下文天气查询的要求,大模型思考应该去天气网站获取,恰好它知道一些天气网站(比如中国天气网等等),于是就使用内置的webfetch工具去检索天气网站,并获取了最新的天气进行进行返回。

但这里有个问题,如果你要查的内容不是这么大众化的(如天气),模型事先不知道应该去哪个网站查询,那么只有WebFetch工具就不行了,因此需要引入WebSearch工具。

WebSearch

眼尖的小伙伴应该已经看到了,上面截图里,其实我配置了一个WebSearch的MCP(只不过演示的时候我给禁用了)

适合白嫖党的WebSearch工具推荐(如果你有更好的也欢迎回复补充 :smiley:):

EXA :star::star::star::star::star:

评级:给到夯

官网: Exa | Web Search API, AI Search Engine, & Website Crawler
Github: exa-labs/exa-mcp-server: Exa MCP for web search and web crawling!

OpenCode配置方式:

{
  "mcp": {
    "exa": {
      "type": "remote",
      "url": "https://mcp.exa.ai/mcp",
      "enabled": true
    }
  }
}

突出优势:

  • 匿名免费,不用注册,不用apikey,直接配上就用
  • 没有总数限制
  • 自带了Fetch
  • 远程MCP,你本机网络环境访问不了的网页,它能帮你访问并获取内容(DDDD)

特别注意:QPS应该是限制了1,不要大量的刷,QPS超过1可能会被封IP。

可用工具:
web_search_exa:搜索任何主题的网页,获取干净、可直接使用的内容
get_code_context_exa:从 GitHub、Stack Overflow 和文档中查找代码示例、文档和编程解决方案
crawling_exa:从一个已知的 URL 获取特定网页的完整内容,就是自带的WebFetch!
web_search_advanced_exa:高级网络搜索,可完全控制过滤器、域名、日期和内容选项

如果想要以上全部能力,直接把url换成下面的就全齐了(我管你这那的~)
https://mcp.exa.ai/mcp?tools=web_search_exa,web_search_advanced_exa,get_code_context_exa,crawling_exa

Tavily :star::star::star::star:

评级:顶级

官网: Tavily MCP Server - Tavily Docs
Github:GitHub - tavily-ai/tavily-mcp: Production ready MCP server with real-time search, extract, map & crawl. · GitHub

  • 免费额度:1000次/月
  • QPS限制:1
  • 需要注册:邮箱
  • 是否自带Fetch:是

Brave :star::star::star::star:

评级:顶级

官网: Brave Search API | Brave
Github:brave/brave-search-mcp-server

  • 免费额度:1000次/月
  • QPS限制:50
  • 需要注册:邮箱
  • 是否自带Fetch:否
5 个赞

opencode 内置的就是 exa :joy:

1 个赞

omo内置的是,我没装,所以就自己装一个 :winking_face_with_tongue:

装了omo就内置有这个啦

没有啊,我这个是原生态的,没装过插件啥的,唯一改过的地方就是将 iflow 的 mcp 配置复制粘贴过去

这是之前刚从 iflow 转 opencode 时习惯性说 帮我联网搜索 xx 时发现的,因为 iflow 自带联网搜索,不然之前都是说 帮我使用 context7 检索 xx:joy:

那奇怪了,我这没装之前是没有的

可能需要关键词 联网搜索 :zany_face: 因为刚刚测试时没有这几个字也是没调用 exa

OK​:ok_hand:
能用就好~

别的vibe coding工具也能用 :wink:

所以还是要看模型的思考情况,主动调用工具的意愿:rofl:

放到全局规则里可能能好一些

Exa 默认1QPS,注册并添加密钥后,可达到 10QPS,每秒10次调用。

1 个赞

我装了omo也没有…

神奇……难道是某个版本新增,不清楚了,自己装一个吧,还是挺好用的~