背景
PR #131 ("feat(ai): add full AI support for SQLite") 是一个大型 PR (32 commits, 5000+ 行),旨在为 SQLite 添加完整的 AI 功能支持。
在审查和 rebase 过程中发现,该 PR 使用了过时的 API(AIMessage/AIConversation),而 main 分支已经迁移到新的 AIBlock API。
问题分析
1. API 不兼容
PR #131 实现了以下功能的 SQLite 版本:
AIConversation / AIMessage - 旧的对话持久化 API
EpisodicMemory - 情景记忆
UserPreferences - 用户偏好
AgentMetrics / ToolMetrics - 性能指标
但这些实现使用的是已被废弃的 API。main 分支已经使用 AIBlock 统一模型。
2. Rebase 复杂度
PR #131 落后 main 分支 32 个 commits,包含:
- AI 架构重构(UniversalParrot、Unified Block Model)
- 路由层优化(三层意图分类)
- 性能优化(缓存、并发)
每次 rebase 都需要解决大量冲突,增加维护成本。
✅ 解决方案:分阶段完成
阶段 1:缩小 PR #131 范围(已完成)
将 PR #131 限定为向量搜索功能:
- ✅ 保留
memo_embedding 表和向量搜索逻辑
- ✅ 保留
sqlite-vec 静态链接集成
- ❌ 移除
AIConversation / AIMessage 相关代码
- ❌ 移除
EpisodicMemory / UserPreferences / AgentMetrics
理由:向量搜索是独立功能,与对话 API 解耦。
阶段 2:后续 PR 计划
| PR |
功能 |
优先级 |
复杂度 |
状态 |
| #131 (当前) |
向量搜索 + sqlite-vec |
P0 |
中 |
✅ 审查中 |
| #132 |
AIBlock SQLite 支持 |
P0 |
高 |
🚧 待创建 |
| #133 |
EpisodicMemory SQLite 支持 |
P1 |
中 |
🚧 待创建 |
| #134 |
UserPreferences SQLite 支持 |
P1 |
低 |
🚧 待创建 |
💡 建议:频繁 Rebase
为避免大型 PR 的 rebase 痛苦,建议:
- 小步快跑:每个 PR 专注于单一功能
- 频繁 rebase:每周至少 rebase 一次 main 分支
- 及时合并:代码审查通过后立即合并,不要堆积
理想流程:
feature branch ──▶ small PR ──▶ review ──▶ merge ──▶ delete branch
避免:
feature branch ──▶ large PR ──▶ 32 commits behind ──▶ painful rebase
🚧 依赖变更说明
SQLite 驱动切换
⚠️ 重大变更: 从 modernc.org/sqlite 切换到 mattn/go-sqlite3
| 驱动 |
CGO |
扩展支持 |
用途 |
modernc.org/sqlite |
❌ 否 |
❌ |
默认模式(纯 Go) |
mattn/go-sqlite3 |
✅ 是 |
✅ |
AI 模式(sqlite-vec) |
影响:
- 启用 sqlite-vec 需要
CGO_ENABLED=1
- 交叉编译需要相应工具链
- 不启用 AI 功能时,仍可使用纯 Go 构建
📝 破坏性变更说明
此 PR 删除了 ai_conversation 和 ai_message 表定义,因为它们使用了已废弃的 API。
对于现有 SQLite 用户:
任务清单
后续 PR
相关链接
标签: sqlite, ai, refactor, good first issue
Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com
背景
PR #131 ("feat(ai): add full AI support for SQLite") 是一个大型 PR (32 commits, 5000+ 行),旨在为 SQLite 添加完整的 AI 功能支持。
在审查和 rebase 过程中发现,该 PR 使用了过时的 API(
AIMessage/AIConversation),而 main 分支已经迁移到新的AIBlockAPI。问题分析
1. API 不兼容
PR #131 实现了以下功能的 SQLite 版本:
AIConversation/AIMessage- 旧的对话持久化 APIEpisodicMemory- 情景记忆UserPreferences- 用户偏好AgentMetrics/ToolMetrics- 性能指标但这些实现使用的是已被废弃的 API。main 分支已经使用
AIBlock统一模型。2. Rebase 复杂度
PR #131 落后 main 分支 32 个 commits,包含:
每次 rebase 都需要解决大量冲突,增加维护成本。
✅ 解决方案:分阶段完成
阶段 1:缩小 PR #131 范围(已完成)
将 PR #131 限定为向量搜索功能:
memo_embedding表和向量搜索逻辑sqlite-vec静态链接集成AIConversation/AIMessage相关代码EpisodicMemory/UserPreferences/AgentMetrics理由:向量搜索是独立功能,与对话 API 解耦。
阶段 2:后续 PR 计划
AIBlockSQLite 支持EpisodicMemorySQLite 支持UserPreferencesSQLite 支持💡 建议:频繁 Rebase
为避免大型 PR 的 rebase 痛苦,建议:
🚧 依赖变更说明
SQLite 驱动切换
modernc.org/sqlitemattn/go-sqlite3影响:
CGO_ENABLED=1📝 破坏性变更说明
此 PR 删除了
ai_conversation和ai_message表定义,因为它们使用了已废弃的 API。对于现有 SQLite 用户:
AIConversation/AIMessageAPI,需要停止使用AIBlockSQLite 支持任务清单
当前 PR #131
AIConversation/AIMessage相关代码EpisodicMemory/UserPreferences/AgentMetricsmemo_embedding)后续 PR
AIBlock支持EpisodicMemory支持UserPreferences支持相关链接
specs/unified-block-model.mddocs/dev-guides/SQLITE_VEC_USAGE_GUIDE.md标签:
sqlite,ai,refactor,good first issueCo-Authored-By: Claude Opus 4.6 noreply@anthropic.com