# Valkey for Team (/database/providers/valkey/usage/valkey-for-team)



Agno supports using Valkey as a storage backend for Teams using the `ValkeyDb` class.

## Usage [#usage]

Start in a [virtual environment](/sdk/setup).

Install dependencies:

```bash
uv pip install -U agno ddgs openai valkey-glide-sync
```

### Run Valkey [#run-valkey]

Install [docker desktop](https://docs.docker.com/desktop/install/mac-install/) and run **Valkey** on port **6379** using:

```bash
docker run -d \
  --name my-valkey \
  -p 6379:6379 \
  valkey/valkey
```

Set your OpenAI API key:

## Set OpenAI Key [#set-openai-key]

Set your `OPENAI_API_KEY` as an environment variable. You can get one [from OpenAI](https://platform.openai.com/account/api-keys).

<CodeBlockTabs defaultValue="Mac">
  <CodeBlockTabsList>
    <CodeBlockTabsTrigger value="Mac">
      Mac
    </CodeBlockTabsTrigger>

    <CodeBlockTabsTrigger value="Windows PowerShell">
      Windows PowerShell
    </CodeBlockTabsTrigger>
  </CodeBlockTabsList>

  <CodeBlockTab value="Mac">
    ```bash
    export OPENAI_API_KEY=sk-***
    ```
  </CodeBlockTab>

  <CodeBlockTab value="Windows PowerShell">
    ```powershell
    $env:OPENAI_API_KEY = "your-openai-api-key"
    ```
  </CodeBlockTab>
</CodeBlockTabs>

```python title="valkey_for_team.py"
"""
Run: `uv pip install openai agno ddgs valkey-glide-sync` to install the dependencies
"""

from typing import List

from agno.agent import Agent
from agno.db.valkey import ValkeyDb
from agno.models.openai import OpenAIResponses
from agno.team import Team
from agno.tools.hackernews import HackerNewsTools
from agno.tools.websearch import WebSearchTools
from pydantic import BaseModel

db = ValkeyDb(
    host="localhost",
    port=6379,
)

class Article(BaseModel):
    title: str
    summary: str
    reference_links: List[str]

hn_researcher = Agent(
    name="HackerNews Researcher",
    model=OpenAIResponses(id="gpt-5.2"),
    role="Gets top stories from hackernews.",
    tools=[HackerNewsTools()],
)

web_searcher = Agent(
    name="Web Searcher",
    model=OpenAIResponses(id="gpt-5.2"),
    role="Searches the web for information on a topic",
    tools=[WebSearchTools()],
    add_datetime_to_context=True,
)

hn_team = Team(
    name="HackerNews Team",
    model=OpenAIResponses(id="gpt-5.2"),
    members=[hn_researcher, web_searcher],
    db=db,
    instructions=[
        "First, search hackernews for what the user is asking about.",
        "Then, ask the web searcher to search for each story to get more information.",
        "Finally, provide a thoughtful and engaging summary.",
    ],
    output_schema=Article,
    markdown=True,
    show_members_responses=True,
)

hn_team.print_response("Write an article about the top 2 stories on hackernews")

```

## Run the example [#run-the-example]

Save the code as `valkey_for_team.py`, start the database described above, and run:

```shell
python valkey_for_team.py
```

## Params [#params]

| Parameter         | Type                                               | Default            | Description                                                                                                                  |
| ----------------- | -------------------------------------------------- | ------------------ | ---------------------------------------------------------------------------------------------------------------------------- |
| `id`              | `Optional[str]`                                    | -                  | Database ID. Derived deterministically from the host and port (or client representation) and key prefix when omitted.        |
| `valkey_client`   | `Optional[Union[GlideClient, GlideClusterClient]]` | -                  | Pre-configured Valkey GLIDE client. If not provided a new client will be created.                                            |
| `host`            | `str`                                              | `"localhost"`      | Valkey server host.                                                                                                          |
| `port`            | `int`                                              | `6379`             | Valkey server port.                                                                                                          |
| `database_id`     | `Optional[int]`                                    | -                  | Logical database index (e.g. 0-15).                                                                                          |
| `username`        | `Optional[str]`                                    | -                  | Username for authentication.                                                                                                 |
| `password`        | `Optional[str]`                                    | -                  | Password for authentication.                                                                                                 |
| `use_tls`         | `bool`                                             | `False`            | Enable TLS encryption.                                                                                                       |
| `request_timeout` | `Optional[int]`                                    | -                  | Milliseconds to wait for a request to complete. If unset, the GLIDE client default (250 ms) applies.                         |
| `db_prefix`       | `str`                                              | `"agno"`           | Prefix for all Valkey keys.                                                                                                  |
| `client_name`     | `str`                                              | `"agno_db_client"` | Connection name, visible in `CLIENT LIST`.                                                                                   |
| `expire`          | `Optional[int]`                                    | -                  | TTL for Valkey keys in seconds.                                                                                              |
| `session_table`   | `Optional[str]`                                    | -                  | Name of the table to store sessions.                                                                                         |
| `runs_table`      | `Optional[str]`                                    | `None`             | Storage name for individual runs. Defaults to `agno_runs`, or `<session_table>_runs` when a custom session name is supplied. |
| `memory_table`    | `Optional[str]`                                    | -                  | Name of the table to store memories.                                                                                         |
| `metrics_table`   | `Optional[str]`                                    | -                  | Name of the table to store metrics.                                                                                          |
| `eval_table`      | `Optional[str]`                                    | -                  | Name of the table to store evaluation runs.                                                                                  |
| `knowledge_table` | `Optional[str]`                                    | -                  | Name of the table to store knowledge documents.                                                                              |
| `traces_table`    | `Optional[str]`                                    | -                  | Name of the table to store traces.                                                                                           |
| `spans_table`     | `Optional[str]`                                    | -                  | Name of the table to store spans.                                                                                            |
| `learnings_table` | `Optional[str]`                                    | -                  | Name of the table to store learnings.                                                                                        |
