KameleonDB

🦎 自适应 Schema 的 Agent 记忆数据库

面向AI Agent的零模式设计数据库,支持会话间记忆持久化、动态字段演进与SQL查询,无需迁移即可构建CRM、知识库等系统

收藏
6.5k
安装
2.5k
版本
0.1.3
CLS 安全扫描中
预计需要 3 分钟...

使用说明

KameleonDB 综合评估

核心用法

KameleonDB 是一款专为 AI Agent 设计的自适应结构化数据库,其核心理念是"先存储,后设计"。Agent 无需预先定义完整 Schema,即可立即开始存储数据,并在使用过程中动态发现、添加新字段。

典型使用流程
1. 初始化:通过 pip install kameleondb 安装,配置 KAMELEONDB_URL 环境变量(支持 SQLite 零配置启动或 PostgreSQL 生产环境)

2. 创建实体:使用 schema create 定义基础实体与关键字段,支持 string/int/float/bool/datetime/json 类型及 required/unique/indexed 修饰符

3. 动态演进:通过 schema add-field 随时扩展字段,旧记录自动兼容(新字段显示为 null)

4. 数据操作:使用 data insert/update/delete/get/list 进行 CRUD 操作

5. SQL 查询:通过 query run 执行标准 SQL,支持跨实体 JOIN 与 JSON 字段提取

6. 性能优化:系统主动提示慢查询并提供 storage materialize 物化命令加速

显著优点

| 维度 | 优势 |
|------|------|
| **零摩擦启动** | SQLite 无需服务器,单命令初始化,Agent 可立即投入生产使用 |
| **模式自适应** | 字段可随时追加,附带 `--reason` 审计追踪,完美匹配探索性数据收集场景 |
| **Agent 原生设计** | 全 `--json` 输出支持、内置 schema context 辅助 SQL 生成、性能自诊断 |
| **关系能力** | 通过 `project_id` 等外键模式与 JOIN 查询支持实体关联,可构建完整 CRM/项目管理 |
| **渐进式优化** | 从 SQLite 开发无缝迁移至 PostgreSQL 生产,性能提示引导索引创建 |

潜在缺点与局限性

1. 架构复杂度:底层基于 JSONB 存储(PostgreSQL)或 TEXT 存储(SQLite),高频复杂查询下性能可能不及原生关系型数据库
2. 功能边界:不支持严格外键约束、事务级级联操作、存储过程等高级 RDBMS 特性

3. 生态成熟度:开源项目(GitHub 0.1.3 版本),相比 Postgres/MySQL 社区规模较小,第三方工具集成有限

4. 查询学习成本:JSON 路径操作(data->>'field')对不熟悉 JSON SQL 的用户有门槛

5. 并发扩展:SQLite 版本存在写锁限制,高并发场景必须切换 PostgreSQL

适合人群

  • AI Agent 开发者:需要为 Agent 构建持久化记忆层、长期状态管理
  • 快速原型验证:需求不明确、Schema 频繁变化的项目启动阶段
  • 个人/小型知识管理:联系人追踪、任务管理、读书笔记等结构化但非关键业务场景
  • ETL/数据摄取管道:接收结构不定的外部 API 数据,先存后清洗

常规风险

| 风险类别 | 说明 | 缓解建议 |
|----------|------|----------|
| **数据丢失** | SQLite 单文件损坏风险 | 生产环境强制使用 PostgreSQL + 定期备份 |
| **查询性能退化** | 无索引的大表 JSON 查询随数据量增长变慢 | 关注查询提示,及时执行 `materialize` |
| **Schema 膨胀** | 无约束的字段追加导致混乱 | 定期审查 `admin changelog`,建立字段命名规范 |
| **版本兼容性** | 0.x 版本 API 可能变动 | 锁定版本号,升级前测试 |

总体评价

KameleonDB 精准击中了 AI Agent 领域的痛点——传统数据库的 Schema 严格性与 Agent 探索性工作流的矛盾。其"存储优先、模式演进"的设计哲学,配合完善的 CLI 工具链与 JSON 输出支持,使其成为 Agent 记忆层建设的优秀候选。建议作为 Agent 专属数据层使用,核心业务系统仍建议采用成熟 RDBMS。

KameleonDB 内容

examples文件夹
手动下载zip · 7.8 kB
schema.jsonapplication/json
请选择文件