> ## 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 • Rust AI Agent SDK

> SkillManager: Manager for discovering and using skills.

# SkillManager

> Defined in the [**skills**](../modules/skills) module.

<Badge color="orange">Rust AI Agent SDK</Badge>

Manager for discovering and using skills.

## Fields

| Name         | Type                 | Description                  |
| ------------ | -------------------- | ---------------------------- |
| `loader`     | `SkillLoader`        | Skill loader                 |
| `skill_dirs` | `Vec&lt;PathBuf&gt;` | Discovered skill directories |

## Methods

### `new`

```rust theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
fn new() -> Self
```

Create a new manager.

### `discover`

```rust theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
fn discover(&mut self, dirs: &[impl AsRef<Path>]) -> Vec<SkillMetadata>
```

Discover skills in the given directories.

**Parameters:**

| Name   | Type                        |
| ------ | --------------------------- |
| `dirs` | `&[impl AsRef&lt;Path&gt;]` |

### `get_default_dirs`

```rust theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
fn get_default_dirs() -> Vec<PathBuf>
```

Get default skill directories.

### `load`

```rust theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
fn load(&mut self, name: &str) -> Result<&SkillProperties, ParseError>
```

Load a skill by name.

**Parameters:**

| Name   | Type   |
| ------ | ------ |
| `name` | `&str` |

### `to_prompt`

```rust theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
fn to_prompt(&self) -> String
```

Generate XML prompt for all discovered skills.

### `skill_count`

```rust theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
fn skill_count(&self) -> usize
```

Get skill count.

### `list_skills`

```rust theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
fn list_skills(&self) -> Vec<&str>
```

List all discovered skill names.

## Source

<Card title="View on GitHub" icon="github" href="https://github.com/MervinPraison/PraisonAI/blob/main/src/praisonai-rust/praisonai/src/skills/mod.rs#L334">
  `praisonai/src/skills/mod.rs` at line 334
</Card>

***

## Related Documentation

<CardGroup cols={2}>
  <Card title="Rust LLM" icon="microchip" href="/docs/rust/llm" />

  <Card title="Rust Providers" icon="server" href="/docs/rust/providers" />

  <Card title="Rust Failover" icon="shield" href="/docs/rust/failover" />

  <Card title="Rust Skills" icon="wand-magic-sparkles" href="/docs/rust/skills" />
</CardGroup>
