Skip to main content

Web 搜索与抓取

Myrm 内置 web_searchweb_fetch,协同工作:搜索找来源,抓取读页面 — 均在进入 LLM 之前过滤内容。

为何重要

多数 Agent 把原始搜索片段或整页 HTML 塞进模型,浪费 Token 且降低质量。Myrm 本地过滤流水线:
结果: Web 密集任务约少 40–50% Token,本地运行 $0/月 :::note 客观对比 Hermes、OpenClaw、OpenCode、Claude Code 都有基础 web 搜索/抓取。Myrm 优势是完整本地过滤流水线 — 不仅是「有工具」,而是在进 LLM 前清洗内容。 :::

Web 搜索

引擎

支持 7 个提供商(在 设置 → 搜索 配置):

X (Twitter) 实时搜索

Myrm 提供专属 X/Twitter 实时搜索,基于 xAI Responses API —— 检索帖子、话题和热门讨论,附带内联引用。 两种认证方式: 能力: 日期范围过滤、用户句柄包含/排除(最多 10 个)、匹配帖中图片/视频理解、内联引用含源 URL、降级结果检测(过滤无源数据时发出警告)。 OAuth token 以 AES-256-GCM 加密存储,过期前自动刷新,在 5 项 xAI 服务(X 搜索、图片生成、视频生成、TTS、STT)间复用 —— 一次登录解锁完整 xAI 多模态能力。

意图检测(零 LLM 成本)

自动识别 7 种意图并调整引擎参数:
  • Code、News、Academic、Finance、Security、Social、General
「最新 AI 安全 CVE」 — 无需选手动模式。

5 层智能路由

不同于竞品的单一检索路径,Myrm 采用 5 层路由智能 —— 全程无需额外 Planner LLM 调用:

web_fetch vs browser(智能分工)

同时开启 web_fetchbrowser 时,Myrm 通过工具层引导 Agent 选型,不耦合 System Prompt 机制:工具描述 + Dynamic Hints(仅在配对工具可用时注入)+ Loop Guard 对称建议 + 浏览器池隔离(CRAWL vs AGENT)。Hermes 仅 browser→web_extract 单向 hint;OpenClaw 无互引。 效果:零额外延迟、不破坏 prompt cache、比静态预规划更灵活。

检索模式

Precision 用语义重排(阈值 0.6)— 低相关块丢弃。

同源衰减排序(Domain Diversity Sort)

多查询搜索结果自动按域名指数衰减重排序,防止单一网站刷屏。每个域名的后续结果按衰减因子(默认 0.8)递减:
  • 第 1 条 example.com 结果 — 原始分数
  • 第 2 条 example.com 结果 — 分数 × 0.8
  • 第 3 条 example.com 结果 — 分数 × 0.64
确保 Agent 看到多样化的信息来源,而非同一网站的多个页面。无需配置,combine_search_results_unified 中默认启用。

视觉参考(无独立 image search 工具)

需要找参考图时,Agent 使用 web_search → web_fetch / browser 从页面获取图片 URL,再配合 image_tool 生图。与 OpenClaw / Hermes 等通用助手一致,不维护单独的 DuckDuckGo 搜图依赖。

韧性

  • 引擎回退 — 主引擎失败自动切换
  • 15 分钟结果缓存 — 重复查询零成本
  • 30s 健康探测 — 提前发现不可用引擎

Web 抓取

3 级架构

AdaptiveRouter 学习每域成本并自动选最优级。

可选 L4 远程兜底(默认关闭)

L1–L3 全部失败后,可在 设置 → 搜索 → 网页抓取远程兜底主动开启 Firecrawl v2 亮点:
  • 零配置即用 — 无需 API Key 即可使用 Firecrawl 免费层(1,000 次/月)
  • 自定义 API Base — 指向你自己的 Firecrawl 自托管实例,满足企业隐私或高吞吐需求
  • 一键验证 — 设置界面可测试你配置的端点连通性(含自托管地址)
与竞品差异(Hermes/OpenClaw 常直接走云 API 且必须 Key):
  • 默认关闭 — 不影响 Turn1 工具装载与 Prompt 缓存
  • 会话次数上限(1–50)— 防止远程抓取失控计费
  • SSRF 防护 — 远程请求前强制校验
  • deep_crawl 已移除 — 全站索引请用 search+fetch+browser,或接入 Firecrawl MCP
  • 企业级 denyMYRM_WEB_FETCH_ESCALATION=denied 硬阻断
Myrm 坚持 本地优先,云端仅作显式、可封顶的最后手段。

隐私保护

显式配置才启用: 搜索仅在你手动配置并启用提供商后才会激活。与某些竞品在后台静默将用户查询发送到免费引擎(如 DuckDuckGo)不同,Myrm 在没有你的显式配置时绝不会发起任何网络请求。未配置 API key = 不搜索。 透明回退通知: 当主服务故障切换到你配置的备用服务时,你会在对话中收到实时通知,绝不会静默切换。 配置代理后,L2/L3 自动启用 DNS over HTTPS (DoH)——DNS 查询加密传输,ISP 和网络管理员无法得知你在访问哪些网站。零配置、零性能损耗。

广告/追踪器域名拦截

L2 和 L3 在网络层自动拦截 3500+ 已知广告和追踪域名(Peter Lowe 精选列表)。广告脚本根本不会加载——页面渲染更快、DOM 更干净、Token 消耗更低。零配置,standard 模式默认开启。

fetch_and_extract(智能提取)

配置 Reranker + embedding 后,web_fetch 支持 fetch_and_extract
  1. 3 级爬取(HTTP → Browser → Stealth)
  2. 页面分块
  3. BM25 + 向量混合检索(Qdrant)
  4. Reranker 重排 → 仅 top 相关段落
零 LLM 本地过滤替代云端 LLM 摘要(如 Hermes web_extract + Gemini)。

内容清洗

文本进 Agent 上下文前:
  1. DOM 剪枝 — 去导航、广告、页脚、侧栏
  2. HTML → Markdown — 结构化、LLM 友好
  3. 智能截断max_chars + was_truncated 标志
  4. 二进制路由 — PDF 单独解析(无乱码 HTML)
  5. YouTube 字幕快路径 — 自动识别 YouTube 链接,直接提取带时间戳的字幕;不可用时自动 fallback 到 HTML 抓取
  6. B站字幕快路径 — 自动识别 Bilibili 视频链接,通过公开 API(view + player)提取带时间戳的字幕;支持 SessionVault Cookie 获取 AI 生成字幕;不可用时 fallback 到浏览器抓取

缓存

  • 请求合并(并发同 URL 只抓一次)
  • Stale-While-Revalidate
  • ETag / Last-Modified 条件请求
  • 剥离 35+ 跟踪 URL 参数

Deep Research:五阶段生命周期

Myrm 的 Deep Research 采用结构化的 CLARIFY → PLAN → EXPLORE → RESEARCH → REPORT 管线 — 不是简单的”搜一下再总结”:

Research Studio(三栏研究工作台)

/research 路由提供专为深度研究优化的三栏布局:
  • PC:三栏并列,分割线可拖拽调整宽度(左栏 240–480px,右栏 280–600px)
  • 移动端:自动降级为 Tab 切换(768px 断点)
  • 资料同步:勾选资料池中的条目自动注入对话上下文(mentionReferences);取消勾选自动移除,不影响用户手动 @ 的其他引用
  • 产出操作:下载工件或一键存入 Wiki(按当前 Agent 作用域)

研究中途控制

  • 计划确认闸门 — 审阅、编辑或批准研究计划后才开始执行
  • HITL 回调 — 每轮结束可暂停调整方向
  • 预算守卫max_budget_usd + 阈值告警
  • 取消保留 — 随时停止,已完成结果保留
  • ReplanMiddleware — 自动检测偏离并纠正

vs MiroFlow(GAIA/BrowseComp 基准测试领先者)

对比竞品

Hermes 差异(非更强)

  • 插件后端(Exa/Tavily/Firecrawl)— 更多云厂商,均需 API Key
  • web_extractLLM 摘要跳过本地 embedding — 配置简单,每页耗 Token
  • SSRF + URL 秘密阻断 — 成熟,与 Myrm 同级(非差异化)

自动去广告与冗余

通俗说: 我们不把整页丢给 AI — 提取正文、去广告导航、去重,只保留与问题相关的段落。

零配置对比

Myrm 在抓取上更零配置 — 本地清洗无需云 API。

检索充分性守卫 (RSG)

deep search 模式下,Myrm 会自动验证检索内容是否足够回答用户问题 — 在主 LLM 开始生成回答之前。

工作原理

每次 web_searchweb_fetch 调用后(当 search_depth == "deep" 时):
  1. 轻量级 LLM(你配置的 lite_model)评估检索结果与原始查询的匹配度
  2. 返回结构化评估:充分/不充分 + 缺失信息 + 建议的后续查询
  3. 检测 负面约束违规(如”排除 React”但结果包含 React 内容)
  4. 结果附加到工具输出,供主 Agent 决策

核心设计

负面约束检测(独有能力)

向量搜索和 BM25 无法处理”排除X”这类条件。RSG 显式提取这些约束并逐一校验:
Agent 看到违规后会自动补搜以获取更精准结果。

vs 竞品

没有竞品(Hermes、OpenClaw、Claude Code、Perplexity)有等价的后检索充分性校验。它们完全依赖主 LLM 判断信息是否充足 — 这是不可靠的,因为:
  1. LLM 倾向于即使数据不足也自信作答(幻觉)
  2. 没有专用评估器就无法做显式负面约束检测
  3. 没有结构化指导告诉 Agent 接下来该搜什么

PTC 集成

在 Programmatic Tool Calling 脚本中:
无额外 API 往返 — 搜索与抓取在沙箱内执行。

配置

  1. 设置 → 搜索 — 选引擎、API Key、SearxNG URL
  2. 检索设置启用 Reranker — 长文档 Precision 模式
  3. Web Fetch 开箱可用(浏览器级用 Patchright 若已安装)

迁移提示

完整迁移收益见竞品对比