> ## 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.

# bundles • AI Agent SDK

> Skill bundles: named, reusable sets of skills.

# bundles

AI Agent

Skill bundles: named, reusable sets of skills.

A *bundle* is a small manifest that references existing skills by name and is
itself selectable as one unit. It is composition over the existing skills
layer — not a new execution primitive. A bundle expands to its member skills,
which then flow through the unchanged budget + prompt-injection path.

Bundles are discovered alongside skills:

* a top-level `BUNDLE.yaml` / `BUNDLE.yml` inside a skill directory, or
* any `*.yaml` / `*.yml` file inside a `bundles/` subdirectory of a
  skill root.

Selection uses a `@` marker everywhere a skill is selected
(`skills=["@backend-dev"]`), mirroring how skills already behave:
forgiving membership, precedence-with-logging, and budget-awareness.

## Import

```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
from praisonaiagents.skills import bundles
```

## Classes

> [card] [BundleManifest](https://praison.ai/docs/sdk/reference/praisonaiagents/classes/BundleManifest.md)
>
> A named set of skills selectable as one unit.

## Functions

> [card] [strip\_bundle\_marker()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/strip_bundle_marker.md)
>
> Return the bundle name for a `@name` selector (or the name itself).

> [card] [is\_bundle\_selector()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/is_bundle_selector.md)
>
> True if `selector` is a `@bundle` reference.

> [card] [discover\_bundles()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/discover_bundles.md)
>
> Discover bundle manifests alongside skills.

### Constants

| Name | Value |
| - | - |
| `BUNDLE_MARKER` | `'@'` |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.