diff --git a/haiku_rag_slim/haiku/rag/capabilities/analysis.py b/haiku_rag_slim/haiku/rag/capabilities/analysis.py index 1f4989f3..cbb1e593 100644 --- a/haiku_rag_slim/haiku/rag/capabilities/analysis.py +++ b/haiku_rag_slim/haiku/rag/capabilities/analysis.py @@ -116,7 +116,9 @@ class AnalysisCapability(RAGCapabilityBase[AnalysisState]): return await self._with_state(self._cite(chunk_ids)) return FunctionToolset( - [analysis_search, analysis_execute_code, analysis_cite], id=_CAPABILITY_ID + [analysis_search, analysis_execute_code, analysis_cite], + id=_CAPABILITY_ID, + max_retries=3, ) diff --git a/haiku_rag_slim/haiku/rag/capabilities/rag.py b/haiku_rag_slim/haiku/rag/capabilities/rag.py index 4aa67c0f..f46b2f41 100644 --- a/haiku_rag_slim/haiku/rag/capabilities/rag.py +++ b/haiku_rag_slim/haiku/rag/capabilities/rag.py @@ -57,7 +57,7 @@ class RAGCapability(RAGCapabilityBase[RAGState]): """Register exact search-result chunk IDs as citations for the answer.""" return await self._with_state(self._cite(chunk_ids)) - return FunctionToolset([rag_search, rag_cite], id=_CAPABILITY_ID) + return FunctionToolset([rag_search, rag_cite], id=_CAPABILITY_ID, max_retries=3) def create_capability( diff --git a/tests/capabilities/test_capabilities.py b/tests/capabilities/test_capabilities.py index 696e9cf7..6b7cb7e1 100644 --- a/tests/capabilities/test_capabilities.py +++ b/tests/capabilities/test_capabilities.py @@ -44,6 +44,7 @@ def test_rag_capability_api(temp_db_path): assert capability.id == "haiku-rag" assert capability.defer_loading is True assert set(capability.get_toolset().tools) == {"rag_search", "rag_cite"} + assert capability.get_toolset().max_retries == 3 assert capability.state_type is RAGState assert capability.state_namespace == "rag" @@ -59,6 +60,7 @@ def test_analysis_capability_api(temp_db_path): "analysis_execute_code", "analysis_cite", } + assert capability.get_toolset().max_retries == 3 assert capability.state_type is AnalysisState