Adapters

ADK stores use the same adapters as the rest of SQLSpec. Configure your database with a standard config class, then pass it to the ADK store.

Choosing an Adapter

Use async adapters for best performance with ADK runners:

  • PostgreSQL (recommended): asyncpg, psycopg (async mode), psqlpy

  • CockroachDB: cockroach_asyncpg, cockroach_psycopg (full FTS support)

  • MySQL/MariaDB: asyncmy

  • SQLite: aiosqlite (development and single-process)

  • Oracle: oracledb

  • DuckDB: duckdb (analytics; reduced-scope for ADK)

  • ADBC: adbc (Arrow-native, driver-agnostic)

  • Spanner: spanner (Google Cloud, globally distributed)

Sync adapters (psycopg sync mode, sqlite, mysqlconnector, pymysql) work but require wrapping with anyio for async ADK runners.

Each Adapter Provides

Every adapter with ADK support ships three store classes:

  • Session store (e.g., AsyncpgADKStore) – sessions and events.

  • Memory store (e.g., AsyncpgADKMemoryStore) – long-term memory with FTS.

  • Artifact store (e.g., AsyncpgADKArtifactStore) – artifact metadata.

Import from the adapter’s adk subpackage:


Example

adk backend config
from sqlspec.adapters.adbc import AdbcConfig

adk_config = {
    "session_table": "adk_sessions",
    "events_table": "adk_events",
    "memory_table": "adk_memory_entries",
    "memory_use_fts": True,
}

gizmo = AdbcConfig(
    connection_config={"driver_name": "gizmosql", "gizmosql_backend": "duckdb"},
    extension_config={"adk": adk_config},
)

See Also