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

# Skill Manager • AI Agent SDK

> SkillManager: Manager for discovering, loading, and using Agent Skills.

# SkillManager

> Defined in the [**manager**](https://praison.ai/docs/sdk/reference/praisonaiagents/modules/manager.md) module.

AI Agent

Manager for discovering, loading, and using Agent Skills.

This is the main entry point for Agent Skills integration.
Supports progressive disclosure and zero performance impact
when skills are not used.

## Constructor

**enforcement\_level** `Optional[EnforcementLevel]`

No description available.

**write\_approval** `Optional[bool]`

No description available.

## Methods

> [card] [skills()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/SkillManager-skills.md)
>
> Get all loaded skills.

> [card] [skill\_names()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/SkillManager-skill_names.md)
>
> Get names of all loaded skills.

> [card] [discover()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/SkillManager-discover.md)
>
> Discover skills from directories.

> [card] [reload()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/SkillManager-reload.md)
>
> Re-scan skill sources and refresh the in-memory index.

> [card] [bundles()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/SkillManager-bundles.md)
>
> Get all registered bundle manifests.

> [card] [bundle\_names()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/SkillManager-bundle_names.md)
>
> Get names of all registered bundles.

> [card] [add\_bundle()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/SkillManager-add_bundle.md)
>
> Register a bundle manifest.

> [card] [get\_bundle()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/SkillManager-get_bundle.md)
>
> Get a bundle manifest by name (`@` marker optional).

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

> [card] [resolve()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/SkillManager-resolve.md)
>
> Expand `@bundle` selectors into member skill names.

> [card] [get\_bundle\_instructions()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/SkillManager-get_bundle_instructions.md)
>
> Return bundle-level instructions for selected bundles, in order.

> [card] [add\_skill()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/SkillManager-add_skill.md)
>
> Add a single skill from a directory path.

> [card] [add\_skill\_by\_name()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/SkillManager-add_skill_by_name.md)
>
> Add a single skill resolved by *name* (not path).

> [card] [get\_skill()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/SkillManager-get_skill.md)
>
> Get a skill by name.

> [card] [activate()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/SkillManager-activate.md)
>
> Activate a skill (load its instructions).

> [card] [activate\_by\_name()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/SkillManager-activate_by_name.md)
>
> Activate a skill by name.

> [card] [get\_available\_skills()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/SkillManager-get_available_skills.md)
>
> Get metadata for all available skills.

> [card] [get\_user\_invocable\_skills()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/SkillManager-get_user_invocable_skills.md)
>
> Return skills the *user* may invoke via slash-commands.

> [card] [get\_allowed\_tools()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/SkillManager-get_allowed_tools.md)
>
> Return the `allowed-tools` list for a skill as a list of names.

> [card] [invoke()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/SkillManager-invoke.md)
>
> Render a skill body into a ready-to-send prompt.

> [card] [to\_prompt()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/SkillManager-to_prompt.md)
>
> Generate XML prompt for available skills.

> [card] [get\_instructions()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/SkillManager-get_instructions.md)
>
> Get instructions for a skill, activating if needed.

> [card] [load\_resources()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/SkillManager-load_resources.md)
>
> Load all resources for a skill.

> [card] [create\_skill()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/SkillManager-create_skill.md)
>
> Create a new skill with the given content.

> [card] [edit\_skill()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/SkillManager-edit_skill.md)
>
> Edit an existing skill's content (full rewrite).

> [card] [patch\_skill()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/SkillManager-patch_skill.md)
>
> Apply a patch to a skill using fuzzy find-and-replace.

> [card] [delete\_skill()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/SkillManager-delete_skill.md)
>
> Remove a skill.

> [card] [archive\_skill()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/SkillManager-archive_skill.md)
>
> Archive a skill (recoverable, never hard-deleted).

> [card] [restore\_skill()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/SkillManager-restore_skill.md)
>
> Restore a previously archived skill back to active use.

> [card] [list\_archived\_skills()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/SkillManager-list_archived_skills.md)
>
> List the names of skills currently in the archive store.

> [card] [rollback\_skill()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/SkillManager-rollback_skill.md)
>
> Roll a skill's SKILL.md back to its content before the last mutation.

> [card] [write\_skill\_file()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/SkillManager-write_skill_file.md)
>
> Write a file within a skill's directory.

> [card] [remove\_skill\_file()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/SkillManager-remove_skill_file.md)
>
> Remove a file from a skill's directory.

> [card] [validate\_skill\_capabilities()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/SkillManager-validate_skill_capabilities.md)
>
> Validate a skill's capability requirements.

> [card] [get\_available\_skills\_by\_state()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/SkillManager-get_available_skills_by_state.md)
>
> Get skills filtered by their capability validation state.

> [card] [get\_skills\_diagnostics()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/SkillManager-get_skills_diagnostics.md)
>
> Get capability diagnostics for all skills.

> [card] [list\_pending()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/SkillManager-list_pending.md)
>
> List all pending skill mutations awaiting approval.

> [card] [approve()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/SkillManager-approve.md)
>
> Approve a pending skill mutation and apply it to disk.

> [card] [reject()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/SkillManager-reject.md)
>
> Reject a pending skill mutation without applying it.

> [card] [create()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/SkillManager-create.md)
>
> Protocol alias for :meth:`create_skill`.

> [card] [edit()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/SkillManager-edit.md)
>
> Protocol alias for :meth:`edit_skill`.

> [card] [patch()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/SkillManager-patch.md)
>
> Protocol alias for :meth:`patch_skill`.

> [card] [delete()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/SkillManager-delete.md)
>
> Protocol alias for :meth:`delete_skill`.

> [card] [write\_file()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/SkillManager-write_file.md)
>
> Protocol alias for :meth:`write_skill_file`.

> [card] [remove\_file()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/SkillManager-remove_file.md)
>
> Protocol alias for :meth:`remove_skill_file`.

> [card] [clear()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/SkillManager-clear.md)
>
> Clear all loaded skills.

## Usage

```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
manager = SkillManager()

    # Discover skills from directories
    manager.discover(["./skills", "~/.praisonai/skills"])

    # Get XML for system prompt
    prompt_xml = manager.to_prompt()

    # Activate a specific skill
    skill = manager.get_skill("pdf-processing")
    manager.activate(skill)
```

## Source

> [card] [View on GitHub](https://github.com/MervinPraison/PraisonAI/blob/main/src/praisonai-agents/praisonaiagents/skills/manager.py#L23)
>
> `praisonaiagents/skills/manager.py` at line 23

***

## Related Documentation

> [card] [Models Overview](https://praison.ai/docs/docs/models)

> [card] [LLM Configuration](https://praison.ai/docs/docs/configuration/llm-config)

> [card] [Model Router](https://praison.ai/docs/docs/features/model-router)

> [card] [Model Failover](https://praison.ai/docs/docs/features/model-failover)

> [card] [Skills Concept](https://praison.ai/docs/docs/concepts/skills)


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