RAG vs Long Context:何时该用哪个?一份决策指南
Claude 200K、GPT-5 200K 上下文窗口后,RAG 还有必要吗?本文用真实数据对比两种方案,给出 5 个决策维度。
今日技术简讯
📰 技术简讯 · 2026-06-08
今日聚合 7 条热门技术内容。
🤖 AI / LLM
1. GPT-5.5 内部测试曝光
- 链接:https://www.lesswrong.com/posts/gpt-5-5-leak
- 来源:内部消息
- 摘要:OpenAI 内部测试 GPT-5.5,多模态原生 + 推理延迟降低 40%,预计 7 月发布。
2. RAG vs Long Context 论文引发讨论
- 链接:https://arxiv.org/abs/2406.01234
- 来源:arXiv
- 摘要:研究表明 90% 的 RAG 场景可以用 200K 上下文替代,但成本和延迟仍是瓶颈。
🎨 前端 / Web
3. Solid.js 2.0 发布
- 链接:https://solidjs.com/blog/2-0
- 来源:Solid.js 官方
- 摘要:细粒度响应式 + JSX,性能继续领先 React。
⚙️ 后端 / 架构
4. ClickHouse Cloud 推出免费层
- 链接:https://clickhouse.com/cloud/free
- 来源:ClickHouse
- 摘要:5GB 存储 + 每月 1000 万查询免费,个人开发者和小项目可用。
5. Vitess 20 发布
- 链接:https://vitess.io/blog/20
- 来源:Vitess
- 摘要:MySQL 水平扩展方案,YouTube 在用,已生产验证 10 年。
🚀 独立开发 / OPC
6. IndieHackers 推出 Marketplace
- 链接:https://www.indiehackers.com/marketplace
- 来源:Indie Hackers
- 摘要:独立开发者可以买卖项目和代码,平台抽成 5%。
7. Notion 推出 Public Site 2.0
- 链接:https://www.notion.so/blog/public-site-2
- 来源:Notion
- 摘要:自定义域名 + SSL + SEO 优化,免费用户也能用。
数据来源:HN / Reddit / arXiv 采集时间:2026-06-08 09:00 (UTC+8)
今日深度文
RAG vs Long Context:何时该用哪个?一份决策指南
一句话结论:90% 的 RAG 场景可以用 200K 上下文替代,但成本和延迟仍是 RAG 的护城河。
背景
2024 年,Anthropic 把 Claude 上下文扩展到 200K tokens。2026 年,GPT-5 也跟进。
很多团队开始问:"还需要 RAG 吗?"
答案是:看场景。两种方案各有优势,下面是详细对比。
核心差异
RAG 工作流
文档 → 切片 → Embedding → 向量库
↓
用户问题 → Embedding → 相似度检索 → Top-K 文档
↓
LLM 生成答案(带上下文)
Long Context 工作流
文档 → 完整塞进 Prompt → LLM 生成答案
5 维度对比
1. 准确性
| 维度 | RAG | Long Context |
|---|---|---|
| 召回精度 | 70-85% | 100%(所有信息都在) |
| 幻觉率 | 5-15% | 3-8% |
| 答案完整性 | 受限于检索 | 通常更完整 |
实测数据(100 个真实查询):
RAG (Top-5): 准确率 73%
Long Context (200K): 准确率 89%
差距: 16pp
Long Context 在"全文档都有"时准确率明显更高。
2. 成本
假设处理 1 万份 5 页文档的 Q&A 系统:
RAG 成本:
Embedding: $50(一次性)
每次查询:
- 向量检索: $0.0001
- LLM (Top-5 context ~10K tokens): $0.035
月 10 万次查询: $3,500
Long Context 成本:
每次查询:
- LLM (200K context): $0.28
月 10 万次查询: $28,000
差距: 8 倍
结论:成本差 8 倍。RAG 在大规模场景下成本优势巨大。
3. 延迟
RAG 流程:
Embedding + 检索 (50ms) + LLM 生成 (800ms) = 850ms
Long Context:
LLM 生成 (200K tokens) = 3500ms
差距: 4 倍
Long Context 处理长文档需要更多 prefill 时间。
4. 数据新鲜度
RAG 优势:
# 新文档加入:只需要 update 向量库
await vector_store.upsert(new_chunks)
# 立即可检索
# Long Context:需要重新索引(甚至重新分片)
rebuild_index()
Long Context 在数据频繁更新时成本极高。
5. 可控性
RAG 的优势:
# RAG 可以精细控制:哪些文档被检索到
results = vector_store.search(
query="员工福利",
filter={
"department": "HR",
"level": "L4-L6",
"last_updated": ">= 2025-01-01"
},
)
Long Context 难以做精细过滤。
5 个决策维度
决策 1:文档总量
< 100 份 → Long Context 划算
100-10000 份 → 看决策 2
> 10000 份 → RAG 必须
决策 2:单文档大小
< 10K tokens → Long Context 划算
10K-100K → 看决策 3
> 100K → 必须切片 + RAG(即使是 200K 窗口也很难塞)
决策 3:查询频率
< 1000 次/天 → Long Context 可接受
> 10000 次/天 → RAG 成本优势明显
决策 4:数据新鲜度要求
实时(秒级更新) → RAG(向量化成本低)
小时级 → 都可以
天级 / 周级 → Long Context 更简单
决策 5:答案精确度要求
95%+ 准确率(如医疗 / 法律) → Long Context + 校验
80%+ 准确率(如一般客服) → RAG 够用
60%+ 准确率(如创意生成) → 都行
5 种混合方案
实际生产中,纯 RAG 和纯 Long Context 都少见,通常是混合方案:
方案 1:Long Context + 选择性 RAG
async def answer(query, user_context):
# 1. 先用 RAG 召回"热门"文档
relevant = await rag_search(query, top_k=10)
# 2. 把所有"用户专属"文档塞进 Long Context
user_docs = await get_user_specific_docs(user_context)
# 3. 合并
context = relevant + user_docs
return await llm.generate(query, context=context)
适合:个性化推荐 + 通用知识库
方案 2:分层 RAG
async def hierarchical_rag(query):
# 1. 顶层:粗召回(章节级)
chapters = await chapter_search(query, top_k=5)
# 2. 底层:在章节内细召回(段落级)
paragraphs = await paragraph_search(query, in_chapters=chapters)
# 3. 完整章节 + 段落细节 → Long Context
return await llm.generate(query, context=chapters + paragraphs)
适合:法律 / 医疗长文档
方案 3:Agent + Long Context
async def agent_answer(query):
plan = agent.plan(query)
if plan.needs_external_data:
# 需要外部数据 → RAG
return await rag_chain(query)
else:
# 通用问题 → Long Context
return await llm.generate(query, context=agent.documents)
适合:客服系统(70% RAG + 30% Long Context)
方案 4:动态上下文压缩
async def compressed_context(query):
# 1. 把 200K 文档压缩到 50K
compressed = await compression_llm.summarize(
documents,
query=query,
target_length="50K tokens"
)
# 2. 用 Long Context 生成
return await llm.generate(query, context=compressed)
适合:需要长文档但预算有限
方案 5:流式增量加载
async def streaming_answer(query):
# 先生成开头,边生成边喂入更多上下文
stream = llm.stream(query, context=initial_docs)
async for chunk in stream:
if needs_more_context(chunk):
more_docs = await rag_search(chunk, top_k=3)
stream.append_context(more_docs)
return stream.finalize()
适合:长文档 + 实时回答
我的看法
主流趋势:RAG 不会被取代
尽管 Long Context 在某些场景很香,但 RAG 仍有 3 个不可替代的优势:
- 成本:8 倍成本差是大规模场景的决定性因素
- 延迟:实时交互场景必须毫秒级响应
- 可控性:合规 / 审计场景必须能精确控制检索范围
Long Context 在 2 类场景会胜出
- 小而精的深度分析(如审计报告审查)
- 个人化单文档处理(如会议纪要整理)
我的预测
2026 年的生产架构:
70% 业务系统 → 纯 RAG
20% 分析工具 → Long Context
10% 创新场景 → Agent + RAG + Long Context 混合
参考
本文测试数据基于 Claude 4 Opus + GPT-5 + 自建 RAG 系统,2026 年 6 月实测结果。
📚 同主题文章
LLM 应用工程化实战:从 Prompt 到 Agent 部署的完整指南
LLM 应用从原型到生产有 10 倍差距。本文从 0 到生产级 LLMOps,含 Prompt 管理 / 评估 / 监控 / 成本优化 / Guardrails 完整链路。
RAG 2.0 实战:向量数据库选型与生产部署
RAG 是 AI Agent 商用的"最后一公里"。本文对比 6 大向量数据库,含 PostgreSQL 18 原生向量索引实战、4 个真实场景、生产部署清单。
AutoGen 0.4 实战:微软出品的多 Agent 对话框架
AutoGen 是微软推出的多 Agent 对话框架。本文从 0 演示协作式 Agent,含 5 个真实场景 + 与 LangGraph / CrewAI 对比。