psychology
3.1 智能体设计模式的应用
Agentic RAG借鉴了多种智能体设计模式,包括:
loop
ReAct模式
智能体在推理(Reasoning)和行动(Acting)间交替进行。例如,先推理"我需要先了解Agentic RAG的基本定义",然后执行检索行动;再推理"现在需要找到具体应用案例",执行下一轮检索。
checklist
Plan-and-Execute模式
智能体先生成整体计划,再逐步执行。例如,对于"比较Agentic RAG与传统RAG"的查询,智能体会规划先检索两者定义,再检索优缺点,最后检索应用场景。
help
Self-Ask模式
智能体通过自问自答引导检索过程。例如,先问"什么是Agentic RAG的核心创新?",检索答案后再问"这些创新如何解决传统RAG的问题?"
layers
3.2 上下文工程优化
Agentic RAG充分利用上下文工程提升效果:
- 动态上下文构建:根据任务阶段动态调整注入模型的上下文内容,避免信息过载。
- 查询理解与增强:智能体对用户原始查询进行语义解析和扩展,生成更适合检索的查询变体。
- 结果重排序:使用交叉编码器等高级模型对检索结果进行精细排序,确保最相关信息优先。
api
3.3 工具调用标准化
Agentic RAG顺应工具调用标准化趋势,采用模型上下文协议(MCP)作为智能体与检索工具间的标准化接口。MCP像"AI领域的USB-C接口",为不同来源的检索工具提供统一接入规范,解决传统Function Calling的碎片化问题。
# MCP工具调用示例
from mcp import Tool, ToolRegistry
# 定义检索工具
search_tool = Tool(
name="knowledge_search",
description="搜索知识库中的相关信息",
parameters={
"query": {"type": "string", "description": "搜索查询"},
"max_results": {"type": "integer", "default": 5}
}
)
# 注册工具
registry = ToolRegistry()
registry.register(search_tool)
# 智能体调用工具
def agent_search(query):
# 智能体决策是否需要检索
if needs_search(query):
# 调用检索工具
results = registry.call("knowledge_search", query=query)
return results
return None