Skip to content

[`agentic_crew.core.discovery`](#module-agentic_crew.core.discovery)

Discovery module - finds packages with crew configuration directories.

Supports framework-specific configuration directories:

  • .crewai/ - CrewAI-specific configurations (default)
  • .langgraph/ - LangGraph-specific configurations
  • .strands/ - Strands-specific configurations

The discovery order matches framework priority for auto-detection.

get_workspace_rootGet the workspace root directory.
discover_packagesDiscover all packages with crew configuration directories.
discover_all_framework_configsDiscover all framework-specific config directories for all packages.
load_manifestLoad a package’s CrewAI manifest.
get_framework_from_config_dirDetermine the required framework from a config directory path.
get_crew_configLoad a specific crew’s configuration.
list_crewsList all available crews, optionally filtered by package or framework.
FRAMEWORK_DIRS
DIR_TO_FRAMEWORK
FRAMEWORK_TO_DIR

agentic_crew.core.discovery.FRAMEWORK_DIRS

Section titled “agentic_crew.core.discovery.FRAMEWORK_DIRS”

[‘.crew’, ‘.crewai’, ‘.langgraph’, ‘.strands’]

None

None

Get the workspace root directory.

Walks up from the current file to find the root (where pyproject.toml is).

Discover all packages with crew configuration directories.

Args: workspace_root: Root of the workspace. If None, auto-detected. framework: Optional framework to filter by (crewai, langgraph, strands). If None, returns first found directory per package.

Returns: Dict mapping package name to its config directory path.

Discover all framework-specific config directories for all packages.

This finds ALL framework directories, not just the first one per package.

Args: workspace_root: Root of the workspace. If None, auto-detected.

Returns: Dict mapping package name to dict of framework -> config_dir. Example: {“otterfall”: {“crewai”: Path(…), “strands”: Path(…)}} Framework can be None for framework-agnostic .crew/ directories.

Load a package’s CrewAI manifest.

Args: crewai_dir: Path to the .crewai/ directory.

Returns: Parsed manifest as a dictionary.

Determine the required framework from a config directory path.

Args: config_dir: Path to a framework config directory (.crewai, .strands, etc.)

Returns: Framework name if directory indicates a specific framework, None otherwise.

Load a specific crew’s configuration.

Args: config_dir: Path to the config directory (.crewai/, .strands/, .langgraph/). crew_name: Name of the crew to load.

Returns: Dict with agents, tasks, knowledge_paths, and required_framework. The required_framework field indicates which framework MUST be used if the config is in a framework-specific directory.

Raises: ValueError: If crew not found in manifest.

List all available crews, optionally filtered by package or framework.

Args: package_name: If provided, only list crews for this package. framework: If provided, only list crews that can run on this framework.

Returns: Dict mapping package name to list of crew info dicts. Each crew dict includes:

  • name: Crew name
  • description: Crew description
  • required_framework: Framework required (if in framework-specific dir)