Skip to main content

Module sqlite

Module sqlite 

Source
Expand description

SQLite database management tools

This module provides a comprehensive set of tools for managing SQLite databases through an AI agent. Tools are separated into read-only (safe) and write/modify (destructive) categories for granular permission control.

§Quick Start

Use the helper functions to add tool groups to your agent:

use mixtape_core::Agent;
use mixtape_tools::sqlite;

// Read-only agent - can explore but not modify databases
let agent = Agent::builder()
    .bedrock(ClaudeSonnet4)
    .add_tools(sqlite::read_only_tools())
    .build()
    .await?;

// Full access agent - can read, write, and manage schemas
let agent = Agent::builder()
    .bedrock(ClaudeSonnet4)
    .add_tools(sqlite::all_tools())
    .build()
    .await?;

§Tool Groups

FunctionToolsUse Case
read_only_tools()9 toolsDatabase exploration, querying, backups
mutative_tools()4 toolsData modifications
transaction_tools()3 toolsTransaction management
migration_tools()7 toolsSchema evolution via stored migrations
all_tools()23 toolsFull database management

§Common Patterns

§Read-Only Database Explorer

For agents that should only query and explore databases without modifying them:

use mixtape_tools::sqlite;

let agent = Agent::builder()
    .add_tools(sqlite::read_only_tools())
    .build()
    .await?;

This includes: open/close/list databases, list/describe tables, SELECT queries, schema export, and backups.

§Data Entry Agent

For agents that need to insert/update data but not modify schema:

use mixtape_tools::sqlite::{self, *};

let agent = Agent::builder()
    .add_tools(sqlite::read_only_tools())
    .add_tool(WriteQueryTool)      // INSERT/UPDATE/DELETE
    .add_tool(BulkInsertTool)      // Batch inserts
    .add_tools(sqlite::transaction_tools())
    .build()
    .await?;

§Schema Migration Agent

For agents that manage database schemas via migrations:

use mixtape_tools::sqlite;

let agent = Agent::builder()
    .add_tools(sqlite::read_only_tools())
    .add_tools(sqlite::migration_tools())
    .build()
    .await?;

§Tool Categories

§Database Management (Safe)

  • sqlite_open_database - Open or create a database
  • sqlite_close_database - Close a database connection
  • sqlite_list_databases - Discover database files in a directory
  • sqlite_database_info - Get database metadata and statistics

§Table Operations

  • sqlite_list_tables - List all tables and views (Safe)
  • sqlite_describe_table - Get table schema details (Safe)

§Query Operations

  • sqlite_read_query - Execute SELECT/PRAGMA/EXPLAIN queries (Safe)
  • sqlite_write_query - Execute INSERT/UPDATE/DELETE queries (Destructive)
  • sqlite_schema_query - Execute DDL statements (Destructive)
  • sqlite_bulk_insert - Batch insert records (Destructive)

§Transaction Management (Configurable)

  • sqlite_begin_transaction - Start a transaction
  • sqlite_commit_transaction - Commit a transaction
  • sqlite_rollback_transaction - Rollback a transaction

§Maintenance Operations

  • sqlite_export_schema - Export schema as SQL or JSON (Safe)
  • sqlite_backup - Create a database backup (Safe)
  • sqlite_vacuum - Optimize database storage (Destructive)

§Migration Operations

  • sqlite_add_migration - Store a new pending migration (Destructive)
  • sqlite_run_migrations - Apply pending migrations in order (Destructive)
  • sqlite_list_migrations - List migrations with status filter (Safe)
  • sqlite_get_migration - Get migration details by version (Safe)
  • sqlite_remove_migration - Remove a pending migration (Destructive)
  • sqlite_export_migrations - Export migrations for transfer (Safe)
  • sqlite_import_migrations - Import migrations as pending (Destructive)

Re-exports§

pub use database::CloseDatabaseTool;
pub use database::DatabaseInfoTool;
pub use database::ListDatabasesTool;
pub use database::OpenDatabaseTool;
pub use error::SqliteToolError;
pub use maintenance::BackupDatabaseTool;
pub use maintenance::ExportSchemaTool;
pub use maintenance::VacuumDatabaseTool;
pub use manager::with_connection;
pub use manager::DATABASE_MANAGER;
pub use migration::AddMigrationTool;
pub use migration::ExportMigrationsTool;
pub use migration::GetMigrationTool;
pub use migration::ImportMigrationsTool;
pub use migration::ListMigrationsTool;
pub use migration::RemoveMigrationTool;
pub use migration::RunMigrationsTool;
pub use query::BulkInsertTool;
pub use query::ReadQueryTool;
pub use query::SchemaQueryTool;
pub use query::WriteQueryTool;
pub use table::DescribeTableTool;
pub use table::ListTablesTool;
pub use transaction::BeginTransactionTool;
pub use transaction::CommitTransactionTool;
pub use transaction::RollbackTransactionTool;
pub use types::*;

Modules§

database
Database management tools
error
SQLite-specific error types
maintenance
Schema and maintenance tools
manager
Database connection manager for SQLite tools
migration
Schema migration tools for SQLite databases
query
Query operation tools
table
Table operation tools
transaction
Transaction management tools
types
Shared types for SQLite tools

Functions§

all_tools
Returns all SQLite tools
migration_tools
Returns all migration management SQLite tools
mutative_tools
Returns all mutative (write/modify) SQLite tools
read_only_tools
Returns all read-only SQLite tools
transaction_tools
Returns all transaction management SQLite tools