Web 搜索与抓取
Myrm 内置 web_search 与 web_fetch,协同工作:搜索找来源,抓取读页面 — 均在进入 LLM 之前过滤内容。为何重要
多数 Agent 把原始搜索片段或整页 HTML 塞进模型,浪费 Token 且降低质量。Myrm 本地过滤流水线: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
5 层智能路由
不同于竞品的单一检索路径,Myrm 采用 5 层路由智能 —— 全程无需额外 Planner LLM 调用:web_fetch vs browser(智能分工)
同时开启 web_fetch 与 browser 时,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
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 自托管实例,满足企业隐私或高吞吐需求
- 一键验证 — 设置界面可测试你配置的端点连通性(含自托管地址)
- 默认关闭 — 不影响 Turn1 工具装载与 Prompt 缓存
- 会话次数上限(1–50)— 防止远程抓取失控计费
- SSRF 防护 — 远程请求前强制校验
- deep_crawl 已移除 — 全站索引请用 search+fetch+browser,或接入 Firecrawl MCP
- 企业级 deny —
MYRM_WEB_FETCH_ESCALATION=denied硬阻断
隐私保护
显式配置才启用: 搜索仅在你手动配置并启用提供商后才会激活。与某些竞品在后台静默将用户查询发送到免费引擎(如 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:
- 3 级爬取(HTTP → Browser → Stealth)
- 页面分块
- BM25 + 向量混合检索(Qdrant)
- Reranker 重排 → 仅 top 相关段落
web_extract + Gemini)。
内容清洗
文本进 Agent 上下文前:- DOM 剪枝 — 去导航、广告、页脚、侧栏
- HTML → Markdown — 结构化、LLM 友好
- 智能截断 —
max_chars+was_truncated标志 - 二进制路由 — PDF 单独解析(无乱码 HTML)
- YouTube 字幕快路径 — 自动识别 YouTube 链接,直接提取带时间戳的字幕;不可用时自动 fallback 到 HTML 抓取
- 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_extract用 LLM 摘要跳过本地 embedding — 配置简单,每页耗 Token- SSRF + URL 秘密阻断 — 成熟,与 Myrm 同级(非差异化)
自动去广告与冗余
通俗说: 我们不把整页丢给 AI — 提取正文、去广告导航、去重,只保留与问题相关的段落。
零配置对比
Myrm 在抓取上更零配置 — 本地清洗无需云 API。
检索充分性守卫 (RSG)
在 deep search 模式下,Myrm 会自动验证检索内容是否足够回答用户问题 — 在主 LLM 开始生成回答之前。工作原理
每次web_search 或 web_fetch 调用后(当 search_depth == "deep" 时):
- 轻量级 LLM(你配置的
lite_model)评估检索结果与原始查询的匹配度 - 返回结构化评估:充分/不充分 + 缺失信息 + 建议的后续查询
- 检测 负面约束违规(如”排除 React”但结果包含 React 内容)
- 结果附加到工具输出,供主 Agent 决策
核心设计
负面约束检测(独有能力)
向量搜索和 BM25 无法处理”排除X”这类条件。RSG 显式提取这些约束并逐一校验:vs 竞品
没有竞品(Hermes、OpenClaw、Claude Code、Perplexity)有等价的后检索充分性校验。它们完全依赖主 LLM 判断信息是否充足 — 这是不可靠的,因为:- LLM 倾向于即使数据不足也自信作答(幻觉)
- 没有专用评估器就无法做显式负面约束检测
- 没有结构化指导告诉 Agent 接下来该搜什么
PTC 集成
在 Programmatic Tool Calling 脚本中:配置
- 设置 → 搜索 — 选引擎、API Key、SearxNG URL
- 检索设置启用 Reranker — 长文档 Precision 模式
- Web Fetch 开箱可用(浏览器级用 Patchright 若已安装)
迁移提示
完整迁移收益见竞品对比。