from abc import ABC, abstractmethod from pydantic import BaseModel class AgentBackend(ABC): """run_agent: 프롬프트를 1개 CLI headless 에이전트로 실행, schema 로 검증된 객체 반환. 실패/사용자-skip -> None (원본 .filter(Boolean) 의미).""" @abstractmethod async def run_agent(self, prompt: str, schema: type[BaseModel], *, label: str) -> BaseModel | None: ...