闲社服务运行正常AI智能体自动化平台
l

轻量SQLite

技能标识:lite-sqlite

Fast lightweight local SQLite database for OpenClaw agents with minimal RAM and storage usage. Use when creating or managing SQLite databases for storing agent data efficiently. Ideal for local data persistence quick agent data storage low-memory databases small-scale applications and agent memo and caching storage.

作者:admin | 来源记录:ClawHub
登记来源
ClawHub
版本
V 1.0.0
检测标记
后台标记通过
免费
免费获取
0
收藏
来源与检测标记为平台登记信息,并不代表已展示可复核的检测报告。使用前请核对版本、依赖和所需权限,建议先在隔离环境中运行。
概述
安装方式
版本历史

轻量SQLite

Lite SQLite - 轻量级本地数据库

专为OpenClaw代理优化的超轻量级SQLite数据库管理,仅需极低RAM(约2-5MB)和存储开销。

为什么选择SQLite?

✅ 零配置 - 无需服务器,无需配置,基于文件
✅ 极低内存 - 典型使用仅2-5MB
✅ 高速 - 每秒数百万次查询
✅ 便携 - 单个.db文件
✅ 可靠 - 符合ACID标准,防崩溃
✅ 跨平台 - 支持所有Python运行环境

核心功能

  • - 内存模式用于临时数据(速度更快!)
  • WAL模式支持并发访问
  • 连接池
  • 自动模式迁移
  • 内置备份/恢复
  • 查询优化提示

快速开始

基本数据库操作

python
from sqlite_connector import SQLiteDB

创建数据库(自动启用WAL模式)

db = SQLiteDB(agent_data.db)

创建表

db.create_table(memos, { id: INTEGER PRIMARY KEY AUTOINCREMENT, title: TEXT NOT NULL, content: TEXT, createdat: TEXT DEFAULT CURRENTTIMESTAMP, tags: TEXT })

插入数据

db.insert(memos, [title=第一条备忘录, content=你好世界, tags=测试])

查询数据

results = db.query(SELECT * FROM memos WHERE tags = ?, (测试,))

更新数据

db.update(memos, id = ?, [content=已更新内容], (1,))

删除数据

db.delete(memos, id = ?, (1,))

关闭连接

db.close()

内存数据库(最快)

python

最快模式 - 仅使用RAM,无磁盘I/O


db = SQLiteDB(:memory:)

临时操作的理想选择

db.create_table(temp, {...})

数据仅在会话期间存在

适用于缓存、计算、临时存储


性能优化

关键设置

python
import sqlite3

WAL模式(预写日志) - 速度提升3-4倍

conn = sqlite3.connect(agent_data.db) conn.execute(PRAGMA journal_mode=WAL)

关闭同步(写入更快,正常关闭时防崩溃)

conn.execute(PRAGMA synchronous=NORMAL)

内存优化

conn.execute(PRAGMA cache_size=-64000) # 64MB缓存 conn.execute(PRAGMA page_size=4096)

临时存储使用RAM

conn.execute(PRAGMA temp_store=MEMORY)

查询优化

python

为频繁查询创建索引


db.create_index(memos, tags)
db.createindex(memos, createdat)

使用预编译语句(我们的封装器自动支持)

db.query(SELECT * FROM memos WHERE id = ?, (id,))

大数据集批量插入

db.batchinsert(memos, rowsdata)

预定义模式

代理备忘录模式(内存存储)

python
db.createtable(agentmemos, {
id: INTEGER PRIMARY KEY AUTOINCREMENT,
agent_id: TEXT NOT NULL, # 创建者代理ID
key: TEXT NOT NULL, # 查找键
value: TEXT, # 存储值
priority: INTEGER DEFAULT 0, # 检索排序
createdat: TEXT DEFAULT CURRENTTIMESTAMP,
expires_at: TEXT # 可选TTL
})

创建索引

db.createindex(agentmemos, agent_id) db.createindex(agentmemos, key) db.createindex(agentmemos, expires_at)

会话日志模式

python
db.createtable(sessionlogs, {
id: INTEGER PRIMARY KEY AUTOINCREMENT,
session_id: TEXT NOT NULL,
agent: TEXT NOT NULL,
message: TEXT,
metadata: TEXT, # JSON格式
createdat: TEXT DEFAULT CURRENTTIMESTAMP
})

db.createindex(sessionlogs, session_id)
db.createindex(sessionlogs, created_at)

缓存模式(基于TTL)

python
db.create_table(cache, {
id: INTEGER PRIMARY KEY AUTOINCREMENT,
key: TEXT UNIQUE NOT NULL,
value: BLOB, # 支持二进制数据
createdat: TEXT DEFAULT CURRENTTIMESTAMP,
expires_at: TEXT NOT NULL
})

自动清理过期条目

db.query(DELETE FROM cache WHERE expires_at < ?, (datetime.now().isoformat(),))

db.create_index(cache, key)
db.createindex(cache, expiresat)



高级功能

连接池

python
from sqlite_connector import ConnectionPool

并发访问连接池

pool = ConnectionPool(agentdata.db, maxconnections=5)

获取连接

conn = pool.get_connection()

使用conn...

pool.release_connection(conn)

自动备份

python

备份数据库


db.backup(agentdatabackup.db)

自动每日备份

db.auto_backup(backups/, daily)

模式迁移

python

添加列(如果不存在)


db.addcolumn(memos, updatedat, TEXT DEFAULT CURRENT_TIMESTAMP)

迁移数据

db.migrate(memos, { oldcolumn: newcolumn })

性能基准测试

典型性能

操作行数时间(内存模式)时间(磁盘模式)
插入10,0000.05秒0.3秒
查询(索引)
10,000 | 0.001秒 | 0.01秒 | | 查询(全表扫描) | 10,000 | 0.05秒 | 0.5秒 | | 更新 | 1,000 | 0.01秒 | 0.1秒 | | 删除 | 1,000 | 0.01秒 | 0.1秒 |

内存使用

  • - 基础内存:2-5MB
  • 10万行数据:约10-15MB
  • 100万行数据:约50-100MB
  • 内存模式:数据大小+开销

OpenClaw代理最佳实践

1. 选择合适模式

python

临时操作使用:memory:


temp_db = SQLiteDB(:memory:)

持久存储使用文件数据库

persistdb = SQLiteDB(agentstorage.db)

2. 使用适当索引

python

始终为WHERE子句中的列创建索引


db.createindex(table, columnname)

复合查询创建多列索引

db.create_index(table, col1, col2)

3. 批量操作

python

避免逐条插入:


for row in rows:
db.insert(table, row) # 慢!

使用批量插入:

db.batch_insert(table, rows) # 快!

4. 使用TTL管理过期数据

python

自动清理旧数据


db.cleanupexpired(cache, expiresat)
db.cleanupold(logs, createdat, days=7)

5. 定期压缩数据库

python

大量删除后回收空间


db.vacuum() # 应在系统空闲时运行


DuckDB替代方案(分析用途)

对于分析查询(大数据集的聚合、连接),考虑使用DuckDB:

python
import duckdb

conn = duckdb.connect(:memory:)

复杂分析比SQLite更快

conn.execute( SELECT COUNT(*) as rows, AVG(value) as avg_value FROM large_table ).fetchall()

何时使用DuckDB:

  • - 大数据集分析(>1亿行)
  • 复杂聚合和连接
  • 列式数据操作
  • 统计分析

何时使用SQLite:

  • - 事务性操作
  • 中小型数据集(<1亿行)
  • 点查询和更新
  • 通用存储



常见模式

1. 备忘录存储

python
def savememo(db, agentid, key, value, ttl_hours=24):
expiresat = (datetime.now() + timedelta(hours=ttlhours)).isoformat()
db.insert(agent_memos, {
agentid: agentid,

标签

skill ai

通过对话安装

以下为平台配置的接入选项,并非逐项实测通过。能否安装取决于客户端支持、技能来源和运行环境:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 lite-sqlite-1776420065 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 lite-sqlite-1776420065 技能

通过命令行安装

skillhub install lite-sqlite-1776420065

下载

⬇ 下载 lite-sqlite v1.0.0(免费)

文件大小: 11.7 KB | 发布时间: 2026-4-17 19:20

v1.0.0 最新 2026-4-17 19:20
Initial release of lite-sqlite — a lightweight, fast, and low-memory SQLite database wrapper for OpenClaw agents.

- Provides zero-setup, file-based local database with 2–5MB RAM footprint.
- Supports in-memory mode, WAL mode, connection pooling, and automatic schema migration.
- Includes built-in functions for backup/restore, query and batch operations, and index management.
- Features predefined schemas for agent memos, session logs, and caching with TTL.
- Offers best practices and performance optimization recommendations for agent developers.
- Documents advanced options like auto-backup, schema migration tools, and guidance on switching to DuckDB for analytics.
返回顶部