base.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. from abc import ABC, abstractmethod
  2. from collections.abc import Generator, Sequence
  3. from typing import Any, Optional
  4. from core.agent.entities import AgentInvokeMessage
  5. from core.agent.plugin_entities import AgentStrategyParameter
  6. class BaseAgentStrategy(ABC):
  7. """
  8. Agent Strategy
  9. """
  10. def invoke(
  11. self,
  12. params: dict[str, Any],
  13. user_id: str,
  14. conversation_id: Optional[str] = None,
  15. app_id: Optional[str] = None,
  16. message_id: Optional[str] = None,
  17. ) -> Generator[AgentInvokeMessage, None, None]:
  18. """
  19. Invoke the agent strategy.
  20. """
  21. yield from self._invoke(params, user_id, conversation_id, app_id, message_id)
  22. def get_parameters(self) -> Sequence[AgentStrategyParameter]:
  23. """
  24. Get the parameters for the agent strategy.
  25. """
  26. return []
  27. @abstractmethod
  28. def _invoke(
  29. self,
  30. params: dict[str, Any],
  31. user_id: str,
  32. conversation_id: Optional[str] = None,
  33. app_id: Optional[str] = None,
  34. message_id: Optional[str] = None,
  35. ) -> Generator[AgentInvokeMessage, None, None]:
  36. pass