aboutsummaryrefslogtreecommitdiff
path: root/autogpt/core/ability/base.py
diff options
context:
space:
mode:
Diffstat (limited to 'autogpt/core/ability/base.py')
-rw-r--r--autogpt/core/ability/base.py92
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:
- ...