返回顶部
l

lite-sqlite轻量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
安全检测
已通过
730
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

lite-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.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部