RAGAgent

May 15, 2026 · View on GitHub


该类在类层次结构中的位置:

[Oxy](./base_oxy.md)
├── [BaseFlow](./base_flow.md)
│   └── [BaseAgent](./base_agent.md)
│       ├── [LocalAgent](./local_agent.md)
│       │   ├── [ChatAgent](./chat_agent.md)
│       │   │   └── [RAGAgent](./rag_agent.md)
│       │   ├── [ReActAgent](./react_agent.md)
│       │   │   ├── [ShellUseAgent](./shell_use_agent.md)
│       │   │   └── [SkillAgent](./skill_agent.md)
│       │   ├── [ParallelAgent](./parallel_agent.md)
│       │   ├── [WorkflowAgent](./workflow_agent.md)
│       │   └── [PlanAndSolveAgent](./plan_and_solve_agent.md)
│       └── [RemoteAgent](./remote_agent.md)
│           ├── [SSEOxyGent](./sse_oxy_agent.md)
│           └── [A2AClientAgent](./a2a_client_agent.md)
└── [BaseTool](../tools/base_tools.md)

简介

RAGAgent 是一个检索增强生成 Agent,在 LLM 生成之前获取相关上下文。它扩展了 ChatAgent,在 LLM 调用之前将检索到的知识注入提示词中,从而基于外部数据源生成有据可依的回复。

参数

参数类型 / 允许的值默认值描述
knowledge_placeholderstr"knowledge"提示词模板中用于注入检索知识的占位符键名。
func_retrieve_knowledgeCallable必须赋值一个异步可调用对象,接收 OxyRequest 并返回检索到的知识字符串。

方法

方法协程(async)返回值用途(简要)
set_default_prompt()selfPydantic 模型验证器,在未提供提示词时注入默认的 RAG 提示词。
_pre_process(oxy_request)OxyRequest调用父类预处理,然后调用 func_retrieve_knowledge 并注入结果。

继承

请参阅 ChatAgent 类以了解继承的参数和方法。

使用方式

RAGAgent 的简单用法如下:

async def retrieve_knowledge(oxy_request):
    query = oxy_request.get_query()
    # Your retrieval logic here (e.g., vector DB search)
    return "Retrieved context: ..."

oxy.RAGAgent(
    name="rag_agent",
    desc="A RAG-powered assistant",
    llm_model="default_llm",
    func_retrieve_knowledge=retrieve_knowledge,
),