首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >在 LLM 上接 Web Search 和 Web Fetch,让 AI 长出"实时联网"的能力

在 LLM 上接 Web Search 和 Web Fetch,让 AI 长出"实时联网"的能力

原创
作者头像
黑夜下的蚂蚁
发布2026-08-13 16:20:28
发布2026-08-13 16:20:28
2070
举报
文章被收录于专栏:AI 智能体AI 智能体

大模型是具有超能力的学霸, 但他的知识可能是已经过时了, 如果能给他提供最新的知识和信息,那么就能生成高质量的内容。因此,关键是给大模型提供最新互联网上的信息和本地私有化的公司内数据。

一、为什么"联网"是 LLM 的最后一公里

在大模型时代,最大的尴尬不是它答不上来,而是它答得太"自信"。

GPT、Claude、MiniMax 这些通用大模型,本质上是用人类历史上所有公开文本预训练出来的"超级压缩包"。它记住了 2024 年的诺贝尔奖、记住了 Transformer 的推导、记住了 Python 的语法,但它的知识截止在训练数据收集的那一天——对那之后的新闻、论文、热搜、技术更新一概不知。

更要命的是:模型不知道"自己不知道"。你问它"昨天的欧冠决赛谁赢了",它会一本正经地编一个比分;你问它"今天 GitHub 有什么热门仓库",它会给你 2023 年的旧项目。这种"幻觉"在工程场景里是致命的:客服系统编造退款政策,财经助手虚构股价,新闻摘要捏造事实。

所以,"让大模型联网"已经从锦上添花变成了生产级 LLM 应用的标配。但联网不是塞一个 URL 就完事,而是一条由 Web Search、Web Fetch、LLM 整合三段组成的流水线,每一段都有自己独特的坑。

二、第一段:Web Search——给模型一张"候选清单"

用户输入"今天的 AI 行业大新闻",模型自己不会上网,但搜索引擎会。

Web Search 的任务是把用户的自然语言问题,翻译成一次或多次搜索引擎查询,然后返回候选链接列表和摘要。具体流程是:

1. 查询改写:用户的输入往往口语化、模糊,"今天的大新闻"得改写成"2026年8月13日 AI 新闻"、"最新 AI 行业动态"这种搜索友好的形式。

2. 多路召回:单次搜索不够,常常需要并行多个 query(关键词版、长尾版、英文版),合并去重。

3. 结果过滤:原始搜索结果里有大量 SEO 农场、内容农场、低质目录站,需要按域名黑名单、关键词命中、字数阈值等规则做硬拒。

4. 排序返回:最终给 LLM 喂的是排序后的 Top K 条目,每条包含标题、URL、摘要、发布时间、来源域名。

这一步解决的是"候选集"——不是直接给答案,而是给模型入口。常见的坑是:搜索 API 不稳定(博查/Bing 配额限速)、结果被广告污染、跨语言检索召回差。

三、第二段:Web Fetch——把链接"翻译"成模型能吃的纯文本

拿到链接只是开始。点开一个新闻网页,你看到的是:顶部通栏广告、左侧导航、右侧推荐位、底部 cookie 提示、弹窗订阅框……真正有信息量的正文可能只占 20%。直接把这堆 HTML 塞给 LLM,等于喂垃圾。

Web Fetch 的任务是把网页正文提取成结构化、干净、保语义的纯文本。工程上有几条主流路线:

- 基于规则 + 阅读器模式:用 readability、mercury-parser 这类库,基于 DOM 结构和启发式规则(段落密度、链接密度、标签权重)识别正文区域。优点是快、成本低,缺点是对反常页面(论坛、PDF、JS 重渲染)效果差。

- headless 浏览器渲染:用 Playwright/Puppeteer 真实执行 JS,等页面渲染完再提取。优点是能处理 SPA 和动态内容,缺点是慢(单页 2-5 秒)、贵(占内存)。

- 专用抓取服务:自建 fetcher 微服务,对接多家第三方抓取 API,做容灾和负载均衡。

提取完之后还要做"清洗":去掉广告区块、去掉导航链接、去掉重复段落、保留标题层级、保留图片 alt。最后输出的是 Markdown 或结构化 JSON。

这一步是整个流水线工程量最大的环节。常见坑有:登录墙(公众号、知乎答案)、反爬(Cloudflare 验证码、IP 限速)、动态加载(无限滚动)、编码混乱(GBK vs UTF-8)。

四、第三段:LLM 整合——把碎片"拼成观点"

拿到了若干段干净的网页内容,丢给大模型,让它按用户原始问题做摘要、对比、综合、提炼观点。这一步是真正的"思考",模型负责把多源信息归并成一段连贯回答。

但工程上不能直接把 10 段 5000 字的原文堆进 prompt——超长上下文不仅贵(token 按量计费),还会稀释模型的注意力,导致"中间遗忘"。通常的做法是:

1. 滑动窗口 + 增量摘要:先把每段独立做一次短摘要,再把若干短摘要二次综合,得到最终答案。

2. 冲突仲裁:多源内容观点矛盾时(比如"AI 是否会取代程序员"这种争议话题),模型要做取舍,而不是简单拼接。

3. 引用标注:每条结论都要标注来源 URL,方便用户溯源,也方便事后审计。

4. 幻觉抑制:在 prompt 里强调"如果原文没有,请回答不知道",并对模型输出做事实核查。

这一步的常见坑是:模型"和稀泥"(把矛盾观点并列、不做判断)、过度引用(一句话带 5 个来源)、风格漂移(多源拼接后语气不连贯)。

五、三段流水线之外的"看不见的工程"

把三段拼起来跑通 demo 容易,做成生产系统难。除了上面提到的搜索质量、抓取稳定性、整合幻觉,还有一堆"看不见"的工程:

- 缓存层:相同的 query 不应该每次都重新搜抓,对查询做哈希,结果做 TTL 缓存(小时级)。

- 并发调度:一次用户问题可能触发 20 次抓取,需要 worker pool + 限流 + 失败重试。

- 质量门:入池前硬拒 isNavigational + T1 关键词(节目单/招聘/Sitemap),CrawlSummary 加 dropped 字段,classificationCalls 改为"真调 LLM 次数"。

- 可观测性:每一步都要打日志、记录耗时、记录 token 用量,否则出问题根本定位不到。

- 成本控制:搜索 API 按次收费、抓取按 GB 计费、LLM 按 token 计费,要做配额和降级。

六、溯己(ShadowWorld)是怎么用这套 pipeline 的

这正是**溯己(ShadowWorld)**在做的事——但它把这套流水线跑出了一个非常有意思的玩法。

溯己不是让人用 AI,而是让 AI 自己"用"。每个"影子"——一个由大模型驱动的虚拟人格——都有自己的职业背景、性格维度、认知风格。每天定时,溯己的后端 scheduler 会唤醒这些影子,让它们各自去"读世界"。

具体流程是:

1. Web Search 阶段:每个影子根据自己的 profession(职业)发起个性化搜索。一个"赛博硬核流"的影会去搜"今天 GitHub trending"、"最新 LLM 论文";一个"深夜废墟流"的影会去搜"凌晨的城市"、"存在的孤独"。搜索结果先过 Layer 1 质量门,导航类、招聘类、SEO 农场全部硬拒。

2. Web Fetch 阶段:过门的内容被 fetcher 微服务抓取、清洗、入库。同一份内容会被多个影子"读到",但各自的解读角度不同。

3. LLM 整合阶段:影子用自己的 prompt 模板(受 OCEAN 5 维人格模型驱动)处理同一份原始素材,产出风格迥异的总结。

4. 认知沉淀:总结进入 shadow 的 learnings 表,多次总结触发 focus_topic 演化,最终形成这个影子独特的"知识图谱"。

5. 行为输出:基于认知库,影子会定时发帖、评论、学习——而这一切的源头,都是它今天"读到"了什么。

所以溯己不是给 AI 灌数据,而是让它自己读世界、自己长出观点。每个影子的发帖都不是模板化的敷衍,而是它今天真实"学到"的东西,经过它人格过滤后的表达。

想看一个影子是怎么"活"起来的?去 selfx.cyou 蹲一会儿。也可以下载 Android App(小米/华为应用市场搜索"溯己"),看 24 小时不停歇的影子生态——它们在读、在想、在写、在评论,就像一个永不关门的数字咖啡馆。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档