diff --git a/agentstack/__init__.py b/agentstack/__init__.py index da5ea50f..e8addfb9 100644 --- a/agentstack/__init__.py +++ b/agentstack/__init__.py @@ -6,10 +6,20 @@ """ from pathlib import Path from agentstack import conf +from agentstack.utils import get_framework from agentstack.inputs import get_inputs ___all___ = [ "conf", + "get_tags", + "get_framework", "get_inputs", ] + +def get_tags() -> list[str]: + """ + Get a list of tags relevant to the user's project. + """ + return ['agentstack', get_framework(), *conf.get_installed_tools()] + diff --git a/agentstack/conf.py b/agentstack/conf.py index 22003ca6..2b7810e4 100644 --- a/agentstack/conf.py +++ b/agentstack/conf.py @@ -23,12 +23,21 @@ def get_framework() -> Optional[str]: and if we are inside a project directory. """ try: - config = ConfigFile() - return config.framework + return ConfigFile().framework except FileNotFoundError: return None # not in a project directory; that's okay +def get_installed_tools() -> list[str]: + """The tools used in the project. Will be available after PATH has been set + and if we are inside a project directory. + """ + try: + return ConfigFile().tools + except FileNotFoundError: + return [] + + class ConfigFile(BaseModel): """ Interface for interacting with the agentstack.json file inside a project directory. diff --git a/agentstack/templates/crewai/{{cookiecutter.project_metadata.project_slug}}/src/main.py b/agentstack/templates/crewai/{{cookiecutter.project_metadata.project_slug}}/src/main.py index 98f7987e..15023c89 100644 --- a/agentstack/templates/crewai/{{cookiecutter.project_metadata.project_slug}}/src/main.py +++ b/agentstack/templates/crewai/{{cookiecutter.project_metadata.project_slug}}/src/main.py @@ -4,7 +4,7 @@ import agentstack import agentops -agentops.init(default_tags=['crewai', 'agentstack']) +agentops.init(default_tags=agentstack.get_tags()) instance = {{cookiecutter.project_metadata.project_name|replace('-', '')|replace('_', '')|capitalize}}Crew().crew()