> ## Documentation Index
> Fetch the complete documentation index at: https://praison.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Discover Bundles • AI Agent SDK

> discover_bundles: Discover bundle manifests alongside skills.

# discover\_bundles

<div className="flex items-center gap-2">
  <Badge color="teal">Function</Badge>
</div>

> This function is defined in the [**bundles**](../modules/bundles) module.

Discover bundle manifests alongside skills.

Mirrors :func:`discovery.discover_skills`: scans the same roots, is
forgiving of invalid manifests, and reports name collisions (first
wins, later entries shadowed-and-logged).

## Signature

```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
def discover_bundles(skill_dirs: Optional[List[str]], include_defaults: bool) -> List[BundleManifest]
```

## Parameters

<ParamField query="skill_dirs" type="Optional" required={false}>
  Explicit skill-root directories to scan.
</ParamField>

<ParamField query="include_defaults" type="bool" required={false} default="True">
  Whether to include default skill directories.
</ParamField>

### Returns

<ResponseField name="Returns" type="List[BundleManifest]">
  List of discovered BundleManifest objects.
</ResponseField>

## Uses

* `resolve`
* `expanduser`
* `Path`
* `path.exists`
* `path.is_dir`
* `get_default_skill_dirs`
* `seen_dirs.add`
* `logger.info`

## Used By

* [`Agent.skill_manager`](../functions/Agent-skill_manager)

## Source

<Card title="View on GitHub" icon="github" href="https://github.com/MervinPraison/PraisonAI/blob/main/src/praisonai-agents/praisonaiagents/skills/bundles.py#L148">
  `praisonaiagents/skills/bundles.py` at line 148
</Card>
