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

# Learn Protocol • AI Agent SDK

> LearnProtocol: Protocol for learning store implementations.

# LearnProtocol

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

AI Agent

Protocol for learning store implementations.

Enables custom backends (file, SQLite, Redis, MongoDB, etc.)
while maintaining a consistent interface.

## Methods

> [card] [add()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/LearnProtocol-add.md)
>
> Add a new entry to the store.

> [card] [search()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/LearnProtocol-search.md)
>
> Search entries by query.

> [card] [list\_all()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/LearnProtocol-list_all.md)
>
> List all entries.

> [card] [get()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/LearnProtocol-get.md)
>
> Get entry by ID.

> [card] [update()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/LearnProtocol-update.md)
>
> Update an existing entry.

> [card] [delete()](https://praison.ai/docs/sdk/reference/praisonaiagents/functions/LearnProtocol-delete.md)
>
> Delete an entry.

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

## Usage

```python theme={"theme":{"light":"vitesse-light","dark":"vitesse-dark"}}
class RedisLearnStore:
        def add(self, content: str, metadata=None) -> Dict[str, Any]:
            # Store in Redis
            return {"id": "...", "content": content}
        
        def search(self, query: str, limit: int = 10) -> List[Dict[str, Any]]:
            # Search Redis
            return []
        
        def list_all(self, limit: int = 100) -> List[Dict[str, Any]]:
            return []
        
        def delete(self, entry_id: str) -> bool:
            return True
        
        def clear(self) -> int:
            return 0
```

## Source

> [card] [View on GitHub](https://github.com/MervinPraison/PraisonAI/blob/main/src/praisonai-agents/praisonaiagents/memory/learn/protocols.py#L15)
>
> `praisonaiagents/memory/learn/protocols.py` at line 15

***

## Related Documentation

> [card] [Agent Learn](https://praison.ai/docs/docs/concepts/agent-learn)

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


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