> ## Documentation Index
> Fetch the complete documentation index at: https://agno-v2-service-account.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Learning Machine

> Demonstrates team learning with LearningMachine and user profile extraction.

```python learning_machine.py theme={null}
"""
Learning Machine
=============================

Demonstrates team learning with LearningMachine and user profile extraction.
"""

from agno.agent import Agent
from agno.db.sqlite import SqliteDb
from agno.learn import LearningMachine, LearningMode, UserProfileConfig
from agno.models.openai import OpenAIResponses
from agno.team import Team

# ---------------------------------------------------------------------------
# Setup
# ---------------------------------------------------------------------------
team_db = SqliteDb(db_file="tmp/teams.db")

# ---------------------------------------------------------------------------
# Create Members
# ---------------------------------------------------------------------------
researcher = Agent(
    name="Researcher",
    model=OpenAIResponses(id="gpt-5.2"),
    role="Collect user preference details and context.",
)

writer = Agent(
    name="Writer",
    model=OpenAIResponses(id="gpt-5.2"),
    role="Write concise recommendations tailored to the user.",
)

# ---------------------------------------------------------------------------
# Create Team
# ---------------------------------------------------------------------------
learning_team = Team(
    name="Learning Team",
    model=OpenAIResponses(id="gpt-5.2"),
    members=[researcher, writer],
    db=team_db,
    learning=LearningMachine(
        user_profile=UserProfileConfig(mode=LearningMode.AGENTIC),
    ),
    markdown=True,
)

# ---------------------------------------------------------------------------
# Run Team
# ---------------------------------------------------------------------------
if __name__ == "__main__":
    user_id = "team-learning-user"

    learning_team.print_response(
        "My name is Alex, and I prefer concise responses with bullet points.",
        user_id=user_id,
        session_id="learning_team_session_1",
        stream=True,
    )

    learning_team.print_response(
        "What do you remember about how I prefer responses?",
        user_id=user_id,
        session_id="learning_team_session_2",
        stream=True,
    )
```

## Run the Example

<Steps>
  <Snippet file="create-venv-step.mdx" />

  <Step title="Install dependencies">
    ```bash theme={null}
    uv pip install -U agno openai sqlalchemy
    ```
  </Step>

  <Step title="Export your OpenAI API key">
    <CodeGroup>
      ```bash Mac/Linux theme={null}
      export OPENAI_API_KEY="your_openai_api_key_here"
      ```

      ```bash Windows theme={null}
      $Env:OPENAI_API_KEY="your_openai_api_key_here"
      ```
    </CodeGroup>
  </Step>

  <Step title="Run the example">
    Save the code above as `learning_machine.py`, then run:

    ```bash theme={null}
    python learning_machine.py
    ```
  </Step>
</Steps>

Full source: [cookbook/03\_teams/06\_memory/learning\_machine.py](https://github.com/agno-agi/agno/blob/main/cookbook/03_teams/06_memory/learning_machine.py)
