diff --git a/.gitignore b/.gitignore index 29a0285a..1376ba5d 100644 --- a/.gitignore +++ b/.gitignore @@ -31,7 +31,7 @@ __pycache__/ build/ develop-eggs/ dist/ -plugins/ +/plugins/ plugins_config.yaml downloads/ eggs/ diff --git a/autogpt/plugins/__init__.py b/autogpt/plugins/__init__.py index d0a4864c..30a43d9f 100644 --- a/autogpt/plugins/__init__.py +++ b/autogpt/plugins/__init__.py @@ -259,9 +259,10 @@ def scan_plugins(config: Config, debug: bool = False) -> List[AutoGPTPluginTempl if key.startswith("__"): continue a_module = getattr(zipped_module, key) - a_keys = dir(a_module) + if ( - "_abc_impl" in a_keys + inspect.isclass(a_module) + and issubclass(a_module, AutoGPTPluginTemplate) and a_module.__name__ != "AutoGPTPluginTemplate" ): plugin_name = a_module.__name__ @@ -284,6 +285,10 @@ def scan_plugins(config: Config, debug: bool = False) -> List[AutoGPTPluginTempl f"they are enabled in plugins_config.yaml. Zipped plugins should use the class " f"name ({plugin_name}) as the key." ) + else: + logger.debug( + f"Skipping {key}: {a_module.__name__} because it doesn't subclass AutoGPTPluginTemplate." + ) # OpenAI plugins if config.plugins_openai: