From 9e7db72997a5a22ab82b4338acfb3ad502824b0e Mon Sep 17 00:00:00 2001 From: Yiorgis Gozadinos Date: Sat, 18 Jul 2026 11:00:33 +0300 Subject: [PATCH] Load capabilities eagerly for dedicated single-agent consumers --- app/backend/main.py | 2 +- examples/custom_agent.py | 4 ++-- examples/custom_agent_agui.py | 2 +- haiku_rag_slim/haiku/rag/chat/__init__.py | 8 ++++++-- haiku_rag_slim/haiku/rag/chat/app.py | 4 ++-- 5 files changed, 12 insertions(+), 8 deletions(-) diff --git a/app/backend/main.py b/app/backend/main.py index 3ecfc783..ad8a451d 100644 --- a/app/backend/main.py +++ b/app/backend/main.py @@ -76,7 +76,7 @@ class AppDeps: state: dict[str, Any] = field(default_factory=dict) -capability = create_capability(db_path=db_path, config=Config) +capability = create_capability(db_path=db_path, config=Config, defer_loading=False) agent = Agent( get_model(Config.qa.model, Config), diff --git a/examples/custom_agent.py b/examples/custom_agent.py index 71a13577..99ecadf8 100644 --- a/examples/custom_agent.py +++ b/examples/custom_agent.py @@ -1,6 +1,6 @@ """Custom agent using the native haiku.rag RAG capability. -Demonstrates composing a deferred Pydantic AI capability into an agent. +Demonstrates composing a native Pydantic AI capability into an agent. Requirements: - An Ollama instance running locally (default embedder) @@ -21,7 +21,7 @@ from haiku.rag.capabilities.rag import create_capability async def main(db_path: str) -> None: - capability = create_capability(db_path=Path(db_path)) + capability = create_capability(db_path=Path(db_path), defer_loading=False) agent = Agent( "anthropic:claude-haiku-4-5-20251001", diff --git a/examples/custom_agent_agui.py b/examples/custom_agent_agui.py index c6813fda..96976108 100644 --- a/examples/custom_agent_agui.py +++ b/examples/custom_agent_agui.py @@ -32,7 +32,7 @@ if not db_path: ) sys.exit(1) -capability = create_capability(db_path=Path(db_path)) +capability = create_capability(db_path=Path(db_path), defer_loading=False) agent = Agent( "anthropic:claude-haiku-4-5-20251001", diff --git a/haiku_rag_slim/haiku/rag/chat/__init__.py b/haiku_rag_slim/haiku/rag/chat/__init__.py index 1846d688..dcce7f99 100644 --- a/haiku_rag_slim/haiku/rag/chat/__init__.py +++ b/haiku_rag_slim/haiku/rag/chat/__init__.py @@ -40,12 +40,16 @@ def run_chat( if "rag" in enabled: from haiku.rag.capabilities.rag import create_capability - capability_list.append(create_capability(db_path=db_path, config=config)) + capability_list.append( + create_capability(db_path=db_path, config=config, defer_loading=False) + ) if "analysis" in enabled: from haiku.rag.capabilities.analysis import create_capability - capability_list.append(create_capability(db_path=db_path, config=config)) + capability_list.append( + create_capability(db_path=db_path, config=config, defer_loading=False) + ) app = ChatApp( db_path, diff --git a/haiku_rag_slim/haiku/rag/chat/app.py b/haiku_rag_slim/haiku/rag/chat/app.py index 7f7cf372..6d5f0ea1 100644 --- a/haiku_rag_slim/haiku/rag/chat/app.py +++ b/haiku_rag_slim/haiku/rag/chat/app.py @@ -1,6 +1,6 @@ import asyncio import uuid -from collections.abc import Iterable +from collections.abc import Iterable, Sequence from dataclasses import dataclass, field from pathlib import Path from typing import TYPE_CHECKING, Any @@ -78,7 +78,7 @@ class ChatApp(App): def __init__( self, db_path: Path, - capabilities: list[RAGCapabilityBase[Any]], + capabilities: Sequence[RAGCapabilityBase[Any]], read_only: bool = False, model: str | None = None, ) -> None: