Dynavera/apps/agents/langgraph_adapter.py
2025-11-19 12:55:15 +00:00

29 lines
951 B
Python

from typing import Any
import logging
from .llm import get_llm_for_domain
logger = logging.getLogger(__name__)
class SimpleAgent:
"""Minimal agent abstraction that calls a local LLM and returns responses."""
def __init__(self, name: str, domain: str, system_message: str | None = None):
self.name = name
self.domain = domain
self.system_message = system_message or "You are an assistant."
self._llm = get_llm_for_domain(domain)
def run(self, prompt: str, **kwargs: Any) -> str:
full_prompt = f"{self.system_message}\n\nUser: {prompt}"
logger.debug("Agent %s running prompt: %s", self.name, prompt)
return self._llm.generate(full_prompt)
def build_agents_for_domains(domains: list[str]) -> dict[str, SimpleAgent]:
agents = {}
for d in domains:
agents[d] = SimpleAgent(name=f"agent-{d}", domain=d, system_message=f"You are a tutor for {d}.")
return agents