
🧠 图解记忆: State 决定“带什么上下文”,Agent 决定“下一步去哪查、何时停”。
💡 答案要点
传统检索的问题:
- 静态top-k检索,不考虑用户意图的动态变化
- 不考虑对话上下文(多轮对话场景)
- 缺乏时效性控制和多样性控制
state-aware retrieval(状态感知检索):
python
# 传统检索 vs 状态感知检索
# 传统:
static_docs = vector_db.top_k(query, k=5)
# 状态感知:
def state_aware_retrieve(query, user_context, conversation_history):
# 1. 提取用户真实意图
intent = intent_extractor.parse(query)
# 2. 应用元数据过滤器
filtered_docs = apply_filters(intent.metadata_constraints)
# 3. 时效性权重(近期文档优先)
recency_boost(intent.requires_fresh_docs, filtered_docs)
# 4. 多样性控制(避免重复主题)
diversified = diversify(filtered_docs, conversation_history)
return diversifiedagentic retrieval(智能体式检索):
python
# Azure AI Search的agentic retrieval示例
"""
用户复杂查询:"对比Q1和Q2季度营收,分析增长原因"
→ 分解为多个子查询:
子查询1: Q1季度营收数据
子查询2: Q2季度营收数据
子查询3: 季度增长原因分析
→ 并行执行 → 结果融合 → 结构化响应
"""
# 核心流程:
class AgenticRetriever:
def retrieve(self, complex_query):
# 1. 查询分解
sub_queries = self.query_decomposer.split(complex_query)
# 2. 并行检索
results = parallel_retrieve(sub_queries)
# 3. 结果融合
fused = self.fusion_engine.merge(results)
# 4. 返回结构化响应(优化给LLM)
return structured_response(fused)2026年检索新趋势:
| 趋势 | 技术 | 效果 |
|---|---|---|
| **状态感知 | 对话上下文+意图识别 | 多轮场景召回+25% |
| **agentic检索 | 查询分解+并行检索 | 复杂问题准确+30% |
| **动态chunk | 根据查询动态调整块大小 | 上下文利用率+40% |
| **多跳推理 | 跨文档关联推理 | 推理型问题准确+35% |
面试话术:
"state-aware retrieval解决的是'用户问了一半的问题,系统不知道在聊什么'的问题。agentic retrieval则是让检索本身变成一个Agent——自动分解复杂查询、并行检索、融合结果。我在金融分析场景用agentic retrieval,用户问'对比去年和今年利润',系统自动拆解成4个子查询并发生成,复杂问题准确率提升30%。"