{"record":{"id":"00bbba140d780790","repo":"HKUDS/DeepTutor","slug":"rag-requires-an-explicit-kb-name-00bbba","errorCode":null,"errorMessage":"RAG requires an explicit kb_name.","messagePattern":"RAG requires an explicit kb_name\\.","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"deeptutor/tools/rag_tool.py","lineNumber":34,"sourceCode":"    query: str,\n    kb_name: str,\n    provider: Optional[str] = None,\n    kb_base_dir: Optional[str] = None,\n    event_sink=None,\n    **kwargs,\n) -> dict:\n    \"\"\"Retrieve passages from ``kb_name`` and synthesise an answer.\n\n    ``kb_name`` must match a knowledge base the current user can access;\n    multi-user routing is delegated to :func:`resolve_for_rag` when no\n    explicit ``kb_base_dir`` is given.\n    \"\"\"\n    query = query.strip() if isinstance(query, str) else \"\"\n    kb_name = kb_name.strip() if isinstance(kb_name, str) else \"\"\n    if not query:\n        raise ValueError(\"RAG query must be a non-empty string.\")\n    if not kb_name:\n        raise ValueError(\"RAG requires an explicit kb_name.\")\n\n    if kb_base_dir is None:\n        from deeptutor.multi_user.knowledge_access import resolve_for_rag\n\n        resource = resolve_for_rag(kb_name)\n        if resource is None:\n            raise ValueError(f\"Knowledge base '{kb_name}' is not accessible.\")\n        kb_base_dir = str(resource.base_dir)\n        kb_name = resource.name\n\n    service = RAGService(kb_base_dir=kb_base_dir, provider=provider)\n    return await service.search(\n        query=query,\n        kb_name=kb_name,\n        event_sink=event_sink,\n        **kwargs,\n    )\n","sourceCodeStart":16,"sourceCodeEnd":52,"githubUrl":"https://github.com/HKUDS/DeepTutor/blob/3e82f130422a813cdd73c10b21a44e9325f5821a/deeptutor/tools/rag_tool.py#L16-L52","documentation":"Error \"RAG requires an explicit kb_name.\" thrown in HKUDS/DeepTutor.","triggerScenarios":"Thrown at deeptutor/tools/rag_tool.py:34 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"3e82f130422a813cdd73c10b21a44e9325f5821a","analyzedAt":"2026-08-27T06:57:25.364Z","schemaVersion":2},"datasetVersion":"2026-08-27T08:17:20.692Z"}