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

# Session Data • Rust AI Agent SDK

> SessionData: Complete session data structure

# SessionData

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

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

Complete session data structure

## Fields

| Name         | Type                        | Description                      |
| ------------ | --------------------------- | -------------------------------- |
| `session_id` | `String`                    | Session ID                       |
| `messages`   | `Vec&lt;SessionMessage&gt;` | Messages in the session          |
| `created_at` | `String`                    | Creation timestamp (ISO 8601)    |
| `updated_at` | `String`                    | Last update timestamp (ISO 8601) |
| `agent_name` | `Option&lt;String&gt;`      | Agent name (optional)            |
| `user_id`    | `Option&lt;String&gt;`      | User ID (optional)               |
| `metadata`   | `HashMap&lt;String`         | Additional metadata              |
| `serde_json` | `:Value&gt;`                | Additional metadata              |

## Methods

### `new`

```rust theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
fn new(session_id: impl Into<String>) -> Self
```

Create new session data

**Parameters:**

| Name         | Type                      |
| ------------ | ------------------------- |
| `session_id` | `impl Into&lt;String&gt;` |

### `get_chat_history`

```rust theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
fn get_chat_history(&self, max_messages: Option<usize>) -> Vec<Message>
```

Get chat history in LLM-compatible format

**Parameters:**

| Name           | Type                  |
| -------------- | --------------------- |
| `max_messages` | `Option&lt;usize&gt;` |

### `add_message`

```rust theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
fn add_message(&mut self, message: SessionMessage) -> ()
```

Add a message

**Parameters:**

| Name      | Type             |
| --------- | ---------------- |
| `message` | `SessionMessage` |

### `clear`

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

Clear all messages

## Source

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

***

## Related Documentation

<CardGroup cols={2}>
  <Card title="Rust Sessions" icon="clock" href="/docs/rust/sessions" />

  <Card title="Rust Memory" icon="database" href="/docs/rust/memory" />
</CardGroup>
