Update to v0.9.1 #1

Merged
serversdown merged 44 commits from dev into main 2026-01-18 02:46:25 -05:00
2 changed files with 23 additions and 11 deletions
Showing only changes of commit 2da58a13c7 - Show all commits

View File

@@ -28,12 +28,15 @@ class ToolOrchestrator:
tools = {} tools = {}
# Import tool modules as they become available # Import tool modules as they become available
try: if os.getenv("NEOMEM_ENABLED", "false").lower() == "true":
from memory.neomem_client import search_neomem try:
tools["RAG"] = search_neomem from memory.neomem_client import search_neomem
logger.debug("[ORCHESTRATOR] RAG tool available") tools["RAG"] = search_neomem
except ImportError: logger.debug("[ORCHESTRATOR] RAG tool available")
logger.debug("[ORCHESTRATOR] RAG tool not available") except ImportError:
logger.debug("[ORCHESTRATOR] RAG tool not available")
else:
logger.info("[ORCHESTRATOR] NEOMEM_ENABLED is false; RAG tool disabled")
try: try:
from integrations.web_search import web_search from integrations.web_search import web_search

View File

@@ -24,6 +24,7 @@ from neomem_client import NeoMemClient
# Configuration # Configuration
# ----------------------------- # -----------------------------
NEOMEM_API = os.getenv("NEOMEM_API", "http://neomem-api:8000") NEOMEM_API = os.getenv("NEOMEM_API", "http://neomem-api:8000")
NEOMEM_ENABLED = os.getenv("NEOMEM_ENABLED", "false").lower() == "true"
RELEVANCE_THRESHOLD = float(os.getenv("RELEVANCE_THRESHOLD", "0.4")) RELEVANCE_THRESHOLD = float(os.getenv("RELEVANCE_THRESHOLD", "0.4"))
VERBOSE_DEBUG = os.getenv("VERBOSE_DEBUG", "false").lower() == "true" VERBOSE_DEBUG = os.getenv("VERBOSE_DEBUG", "false").lower() == "true"
@@ -148,6 +149,10 @@ async def _search_neomem(
Returns: Returns:
List of memory objects with full structure, or empty list on failure List of memory objects with full structure, or empty list on failure
""" """
if not NEOMEM_ENABLED:
logger.info("NeoMem search skipped (NEOMEM_ENABLED is false)")
return []
try: try:
# NeoMemClient reads NEOMEM_API from environment, no base_url parameter # NeoMemClient reads NEOMEM_API from environment, no base_url parameter
client = NeoMemClient() client = NeoMemClient()
@@ -259,11 +264,15 @@ async def collect_context(session_id: str, user_prompt: str) -> Dict[str, Any]:
logger.debug(json.dumps(intake_data, indent=2, default=str)) logger.debug(json.dumps(intake_data, indent=2, default=str))
# D. Search NeoMem for relevant memories # D. Search NeoMem for relevant memories
rag_results = await _search_neomem( if NEOMEM_ENABLED:
query=user_prompt, rag_results = await _search_neomem(
user_id="brian", # TODO: Make configurable per session query=user_prompt,
limit=5 user_id="brian", # TODO: Make configurable per session
) limit=5
)
else:
rag_results = []
logger.info("Skipping NeoMem RAG retrieval; NEOMEM_ENABLED is false")
if VERBOSE_DEBUG: if VERBOSE_DEBUG:
logger.debug(f"[COLLECT_CONTEXT] NeoMem search returned {len(rag_results)} results") logger.debug(f"[COLLECT_CONTEXT] NeoMem search returned {len(rag_results)} results")