SQLite
A self-contained, serverless, zero-configuration SQL database engine embedded directly into applications. The database is a single cross-platform file. Available in Python's standard library (sqlite3 module), and via better-sqlite3 for Node.js. The most widely deployed database engine in the world, found in every browser, OS, and mobile device.
Score Breakdown
⚙ Agent Friendliness
🔒 Security
No auth needed — file system access controls security. No network exposure by default. SQLite is battle-tested and dependency-light. Full read-write to DB file — access control at OS level only.
⚡ Reliability
Best When
An agent runs locally or in a single process and needs reliable SQL storage without the overhead of a database server. Ideal for agentic tools, local state management, and development workflows.
Avoid When
Multiple agents or processes need to write concurrently to the same database, or the database needs to be accessed over a network.
Use Cases
- • Local agent state persistence without requiring a database server
- • Prototyping and development before migrating to a server database
- • Single-user or single-agent applications with moderate data volumes
- • Read-heavy analytical queries on local datasets (especially with WAL mode)
- • Embedding structured storage in CLI tools, scripts, and agent frameworks
Not For
- • Multi-agent concurrent write workloads (write serialization bottleneck)
- • Distributed or replicated databases across multiple nodes
- • Very large datasets (>100GB practical limit)
- • Applications requiring user-level access control or remote connections
Interface
Authentication
No built-in authentication — access is controlled entirely by OS filesystem permissions on the database file. SQLCipher adds AES-256 encryption at rest. For agents, this means the database is as secure as the filesystem it lives on. No network exposure by default, which is actually a security advantage for local workloads. SQLite SEE (Encryption Extension) is available for commercial use.
Pricing
SQLite is public domain — no copyright, no license requirements. The most permissive licensing of any major database. Turso (libSQL fork) provides distributed/cloud SQLite with a generous free tier.
Agent Metadata
Known Gotchas
- ⚠ SQLITE_BUSY errors occur when multiple processes/threads try to write simultaneously — implement exponential backoff retry logic
- ⚠ WAL mode (PRAGMA journal_mode=WAL) is almost always better for agent workloads — enable it explicitly, it is not the default
- ⚠ Python sqlite3 module check_same_thread=True by default — set to False for multi-threaded agents but ensure proper locking
- ⚠ Integer overflow: SQLite uses dynamic typing — Python ints > 2^63 are silently stored as REAL (float) losing precision
- ⚠ The MCP server exposes full read/write access to the file — scope it carefully, consider read-only connections for read-only agents
- ⚠ No concurrent writers: even with WAL mode, only one writer at a time — design agent workflows accordingly
- ⚠ Turso/libSQL extends SQLite with remote access but changes some behaviors — test compatibility if migrating
Alternatives
Full Evaluation Report
Detailed scoring breakdown, competitive positioning, security analysis, and improvement recommendations for SQLite.
Scores are editorial opinions as of 2026-03-06.