[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fSHnaZpJuyISNg2APh9bzHxKotb_2L311z6DSVTNtfXs":3},{"item":4,"related":47},{"id":5,"type":6,"title":7,"slug":8,"summary":9,"body":10,"coverUrl":11,"productScreenshots":12,"productLinks":13,"authorName":14,"authorUrl":15,"authorSubject":16,"category":17,"tags":22,"sourceLabel":39,"sourceName":39,"sourceUrl":39,"status":40,"seoTitle":39,"seoDescription":39,"canonicalUrl":39,"isFeatured":41,"sno":42,"sortOrder":43,"publishedAt":44,"updatedAt":45,"createdAt":46},"8b883dd6-d112-4adc-ab3c-e5fa1c71bdc1","article","长上下文 vs RAG：什么时候还需要检索，什么时候直接塞","long-context-vs-rag-decision","模型支持百万 token 上下文后，RAG 还有必要吗？本文用一张决策图讲清长上下文与 RAG 的成本、信噪比、实时性、可溯源差异，并给出「RAG 粗筛 + 长上下文精读」的混用思路。","现在的主流模型动辄支持几十万甚至上百万 token 上下文，「把整个知识库塞进 prompt 不就行了，还要 RAG 干嘛？」——这是 2026 年最常被问的问题。\n\n答案是：长上下文和 RAG 不是替代关系，而是各有成本与边界，选错会又贵又慢还更不准。\n\n## 背景：两种「让模型知道更多」的路\n\n**长上下文**是一次性把大量资料放进对话窗口，模型自己读。\n**RAG（检索增强生成）**是先根据用户问题，从知识库里搜出最相关的几段，只把这几段喂给模型。\n二者的核心差别在于：模型到底要「读全部」还是「读精华」。\n\n## 怎么选\n\n```mermaid\nflowchart TD\n    A[需要模型参考外部资料] --> B{资料是否全部相关且量可控?}\n    B -->|是, 且需整体理解| C[长上下文 直接塞]\n    B -->|否, 海量\u002F需精准定位| D[RAG 先检索再喂]\n    D --> E{结果要可溯源\u002F低成本?}\n    E -->|是| F[坚定用 RAG]\n    E -->|否| G[可混用: 检索+长上下文精读]\n```\n\n## 核心取舍\n\n- **成本**：长上下文按全部 token 计费，100 万字和 1000 字单价一样，烧钱极快；RAG 只付「检索到的几段」，便宜一两个数量级。\n- **准确率（信噪比）**：上下文越长，模型越容易在噪声里迷失、甚至「中间遗忘」（lost in the middle）。RAG 只给最相关片段，反而更准。\n- **实时性与新鲜度**：RAG 可以检索实时更新的库；长上下文里塞的是「提问那一刻」的快照，过期不管。\n- **可溯源**：RAG 天然返回引用来源，长上下文很难说清答案来自哪一句。\n\n## 一个最小可运行的例子\n\nRAG 的检索侧，常用向量数据库做语义搜索：\n\n```python\nhits = vector_db.search(embed(question), top_k=3)   # 用户提问 → 向量检索最相关的 3 段 → 拼进 prompt\ncontext = \"\\n\".join(h[\"text\"] for h in hits)\nprompt = f\"根据资料回答：\\n{context}\\n\\n问题：{question}\"\nanswer = model(prompt)\n```\n\n注意这里检索到的 `top_k=3` 片段，就是模型真正会读的全部，成本与噪声都被压到最低。\n\n## Tips\n\n- 资料少、要整体通读（如整份合同、一篇长文），直接用长上下文，省事。\n- 资料海量、要精准定位、要低成本，坚定用 RAG。\n- 需要答案可溯源、可审计，RAG 几乎是唯一选择。\n- 二者可混用：RAG 粗筛 + 长上下文对命中片段精读。\n- 别盲目追长上下文「偷懒」——多数生产场景，RAG 的性价比更高。","https:\u002F\u002Foxqtewbrpuiouqqjrvdv.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fpublic-media\u002F2026-07-20\u002F10f52f80-db7f-4a1d-861d-37514ea09646.jpg",[],[],"Foundit AI","https:\u002F\u002Ffoundit.cn","f39339b1-aaa6-4e86-b0c2-a6e6a21113b5",{"id":18,"name":19,"slug":20,"description":21},"d6750616-07d9-4350-8485-1834c77be3d2","指南","guide","指导建议，仅供参考",[23,27,31,35],{"id":24,"name":25,"slug":26},"7c76bfc2-f80f-4ee0-a95d-27bd8708b434","技术","slug",{"id":28,"name":29,"slug":30},"4c2bbea6-eab7-40a8-8447-1de478ff7749","分析","analyse",{"id":32,"name":33,"slug":34},"144abe77-0dc6-4f66-a176-20bddb1c0bfa","编程","coding",{"id":36,"name":37,"slug":38},"a202d639-99a6-488a-a712-4d4c6ffd7e15","开发","dev",null,"published",false,73,0,"2026-07-10T00:00:00.000Z","2026-07-20T01:26:12.755Z","2026-07-20T01:12:58.458Z",[48,58,67],{"id":49,"type":6,"title":50,"slug":51,"summary":52,"coverUrl":53,"authorName":54,"sno":55,"publishedAt":56,"createdAt":57},"8e1c755d-5417-4978-a9a4-d4c3e44af06e","Temporal：为什么程序员最怕 2 月 29 日和夏令时","javascript-temporal-date-time-explained","日期、时间点和时区不是同一种东西。本文以会议、生日和日志三个场景拆解 JavaScript Date 的边界问题，讲清 Temporal 的 Instant、PlainDate、ZonedDateTime 等类型，以及如何避免夏令时和跨时区计算陷阱。","\u002Fuploads\u002F2026-08-06\u002F467bd509-312c-48dc-aeb3-84e9317e647c.jpg","Foundit",64,"2026-08-06T00:00:00.000Z","2026-08-06T05:38:21.657Z",{"id":59,"type":6,"title":60,"slug":61,"summary":62,"coverUrl":63,"authorName":54,"sno":64,"publishedAt":65,"createdAt":66},"9ccde95c-d754-4808-91f7-488f392e3eeb","你的品牌在AI眼里到底存不存在？这套系统说了算","automated-geo-monitoring-system","靠手动抽查来验证GEO效果，本质上是在跟概率玩游戏。赢一次，不代表能一直赢。","\u002Fuploads\u002F2026-08-07\u002Fdf111c0d-f14a-4b2a-8347-141e96b71654.jpg",1,"2026-08-07T00:00:00.000Z","2026-08-07T04:31:30.843Z",{"id":68,"type":6,"title":69,"slug":70,"summary":71,"coverUrl":72,"authorName":14,"sno":73,"publishedAt":74,"createdAt":75},"544fc658-c911-4de6-93b0-d2520087119a","MCP：AI 的「USB-C」时刻","mcp-ai-usb-c-moment","以前每个 AI 应用都要为 GitHub、数据库、日历各写一套私有连接器，这是 M×N 的集成噩梦，直到 MCP 的出现","https:\u002F\u002Foxqtewbrpuiouqqjrvdv.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fpublic-media\u002F2026-07-19\u002Fc3c06d99-a0ac-40ac-a283-7e77aabb4c4c.jpg",46,"2026-07-20T00:00:00.000Z","2026-07-19T16:13:40.316Z"]