Improve retrieval of deep workspace evidence

This commit is contained in:
Hamza Ayed
2026-10-03 18:56:36 +03:00
parent 652546d462
commit cfca1ebff0
7 changed files with 526 additions and 22 deletions
+10 -2
View File
@@ -599,7 +599,12 @@ def list_agent_skills() -> dict[str, Any]:
async def _search_local_knowledge(
query: str, *, user_id: str, workspace_path: Any
) -> tuple[list[dict[str, Any]], str]:
lexical = knowledge.search(query, user_id=user_id, workspace_path=workspace_path)
lexical = knowledge.search(
query,
user_id=user_id,
workspace_path=workspace_path,
limit=knowledge.MAX_SEARCH_RESULTS,
)
model_name = embeddings.embedding_model_name()
if not model_name or not knowledge.has_embeddings(
user_id=user_id, workspace_path=workspace_path, model=model_name
@@ -612,13 +617,16 @@ async def _search_local_knowledge(
user_id=user_id,
workspace_path=workspace_path,
model=model_name,
limit=knowledge.MAX_SEARCH_RESULTS,
)
except (embeddings.EmbeddingUnavailable, ValueError, IndexError) as exc:
logger.warning("Local semantic knowledge search unavailable: %s", exc)
return lexical, "keyword"
if not semantic:
return lexical, "keyword"
return knowledge.merge_search_results(lexical, semantic), "hybrid"
return knowledge.merge_search_results(
lexical, semantic, limit=knowledge.MAX_SEARCH_RESULTS
), "hybrid"
@app.post("/v1/agent/knowledge/index")