diff options
Diffstat (limited to 'autogpt/core/ability/base.py')
-rw-r--r-- | autogpt/core/ability/base.py | 92 |
1 files changed, 0 insertions, 92 deletions
diff --git a/autogpt/core/ability/base.py b/autogpt/core/ability/base.py deleted file mode 100644 index ac26f0267..000000000 --- a/autogpt/core/ability/base.py +++ /dev/null @@ -1,92 +0,0 @@ -import abc -from pprint import pformat -from typing import ClassVar - -import inflection -from pydantic import Field - -from autogpt.core.ability.schema import AbilityResult -from autogpt.core.configuration import SystemConfiguration -from autogpt.core.planning.simple import LanguageModelConfiguration - - -class AbilityConfiguration(SystemConfiguration): - """Struct for model configuration.""" - - from autogpt.core.plugin.base import PluginLocation - - location: PluginLocation - packages_required: list[str] = Field(default_factory=list) - language_model_required: LanguageModelConfiguration = None - memory_provider_required: bool = False - workspace_required: bool = False - - -class Ability(abc.ABC): - """A class representing an agent ability.""" - - default_configuration: ClassVar[AbilityConfiguration] - - @classmethod - def name(cls) -> str: - """The name of the ability.""" - return inflection.underscore(cls.__name__) - - @classmethod - @abc.abstractmethod - def description(cls) -> str: - """A detailed description of what the ability does.""" - ... - - @classmethod - @abc.abstractmethod - def arguments(cls) -> dict: - """A dict of arguments in standard json schema format.""" - ... - - @classmethod - def required_arguments(cls) -> list[str]: - """A list of required arguments.""" - return [] - - @abc.abstractmethod - async def __call__(self, *args, **kwargs) -> AbilityResult: - ... - - def __str__(self) -> str: - return pformat(self.dump) - - def dump(self) -> dict: - return { - "name": self.name(), - "description": self.description(), - "parameters": { - "type": "object", - "properties": self.arguments(), - "required": self.required_arguments(), - }, - } - - -class AbilityRegistry(abc.ABC): - @abc.abstractmethod - def register_ability( - self, ability_name: str, ability_configuration: AbilityConfiguration - ) -> None: - ... - - @abc.abstractmethod - def list_abilities(self) -> list[str]: - ... - - @abc.abstractmethod - def dump_abilities(self) -> list[dict]: - ... - - @abc.abstractmethod - def get_ability(self, ability_name: str) -> Ability: - ... - - @abc.abstractmethod - def perform(self, ability_name: str, **kwargs) -> AbilityResult: - ... |