meeting_memory/agent.py

51 lines
1.7 KiB
Python
Raw Normal View History

2026-06-24 07:05:19 +00:00
from __future__ import annotations
from pathlib import Path
from typing import List, Optional
from core_agent.session import AgentRunResult, ConversationSession
from providers.base import AgentProvider
from tools.registry import ToolRegistry
class CoreAgent:
"""Top-level assembly layer, aligned with the referenced my_agent project."""
def __init__(
self,
*,
provider: AgentProvider,
workspace: str | Path,
skill_dirs: Optional[List[str | Path]] = None,
tool_registry: Optional[ToolRegistry] = None,
system_prompt: Optional[str] = None,
max_iterations: int = 12,
) -> None:
self.provider = provider
self.workspace = Path(workspace).resolve()
self.skill_dirs = list(skill_dirs or [self.workspace / "skills"])
self.tool_registry = tool_registry
self.system_prompt = system_prompt
self.max_iterations = max_iterations
def run(self, user_message: str, *, active_skills: Optional[List[str]] = None) -> AgentRunResult:
return self.new_session(active_skills=active_skills).ask(user_message)
def new_session(self, *, active_skills: Optional[List[str]] = None, session_id: str = "default") -> ConversationSession:
return ConversationSession(
provider=self.provider,
workspace=self.workspace,
session_id=session_id,
skill_dirs=self.skill_dirs,
tool_registry=self.tool_registry,
system_prompt=self.system_prompt,
max_iterations=self.max_iterations,
active_skills=active_skills,
)
if __name__ == "__main__":
from main_cli import main
main()