为什么我做了一个反直觉的 Data Agent — Lakemind 的设计哲学与技术架构
先说结论
我做了一个开源 Data Agent 叫 Lakemind。它的核心哲学是:
不要追求让大模型一次写对 SQL,而是让它快速试错、自我纠错。
这个想法可能反直觉——大部分 Text-to-SQL 产品的优化方向都是"提高单次准确率"。但我在实际做数据分析时发现:现实业务数据太脏太乱,LLM 单次准确率有一个物理上限,你堆再多 schema 描述、规则约束都突破不了。
传统方案的困境
当前主流的"问数"产品有几个结构性问题:
- 数据安全风险:原始数据行需要上传到云端才能让大模型分析
- 单次生成模式:SQL 写错只能重试,缺乏基于执行错误的自我修正
- 跨源查询缺失:本地文件和远程数据库无法直接 JOIN
- “问完即走”:分析结果只是一张静态表,不能就地落盘复用
- 成本高昂:强绑定 GPT-4/Claude 等旗舰模型,高频使用成本吓人
Lakemind 的解法
1. 快速试错-纠偏环
本地 DuckDB 执行查询是毫秒级的。Agent 写了一条 SQL,执行报错了?没关系——拿到 DuckDB 的原始报错信息,Agent 立刻修正再试。1 分钟内可以跑 10 轮,总有一次是对的。
这比花 2 分钟让大模型冥思苦想一条"完美"语句高效得多。
2. 本地优先,零 ETL
DuckDB 作为中央查询协调器:
- 本地文件(CSV/Parquet/Excel)在本地 CPU 直接计算
- 远程数据库(PostgreSQL/MySQL)的大表通过查询下推,在源端预聚合后只拉取轻量结果
- 两者在本地内存中 JOIN,不需要 Trino 这样的中间件
关键:大模型只收到表结构(Schema)和 OKF 语义定义,原始数据行绝对不上网。
3. 主动物化(Active Materialization)
Agent 不是只打印 SQL 字符串和静态表格。它会主动清洗、转换、聚合数据,把结果物化为:
t_前缀:最终干净物理表(如t_sales_monthly)v_前缀:最终干净虚拟视图
下次分析可以直接复用这些资产表,不需要从零开始。
4. DuckLake 持久化
每个工作区有自己的 lake.ducklake + lake_data/ 目录。导入的源文件物化为 s_* 表/视图后持久化到磁盘——重启不丢失,下次打开不需要重新扫描。
5. OKF — 可携带的上下文
借鉴谷歌开源的 Open Knowledge Format 思路,Lakemind 把 Schema、主外键 JOIN 关系网、指标定义打包成一个 .okf/ 文件夹(Markdown + YAML),随数据库文件一起流转。
把数据集分享给同事时,对方的 Agent 立刻继承所有业务记忆,不会 LLM 冷启动。
6. 可进化准则库
分析准则不是糊在系统提示词里的静态文本,而是遵循 OKF v0.1 规范的分层知识库:
- 宪法总则:跨行业普适的数据纪律红线
- 阶段分则:按分析主题(转化、增长等)组织
- 行业分则:教育、旅游、房地产等,按 frontmatter 标签多维分类
Agent 运行时通过 search_tenets / load_tenets 工具按需检索注入。新增行业只需加一个 Markdown 文件,零代码。
7. 普惠成本
因为本地执行反馈是毫秒级的,轻量模型(如 deepseek-v4-flash)通过自纠错循环就能表现很好。Token 成本降到几毛钱级别,真正可以走进每个分析师的日常工作流。
技术架构
| 层 | 选型 | 理由 |
|---|---|---|
| 桌面壳 | Tauri 2.0 + Rust | 原生级性能,安装包几十 MB,内存占用远低于 Electron |
| 计算引擎 | DuckDB (duckdb-rs, bundled) + DuckLake | 进程内 OLAP,GB 级数据亚秒响应,持久化 catalog |
| 元数据 | SQLite (rusqlite) | 工作区 + 任务 + 源表 + 配置 + 连接 + 日志,统一索引 |
| Agent 框架 | Rig SDK (rig-core) | Rust 原生智能体框架,流式 ReAct 循环,16 个工具 |
| 前端 | SolidJS + TanStack | 响应式 UI,百万行虚拟化表格 60fps |
| 编辑器 | CodeMirror 6 | SQL 语法高亮,Ctrl/Cmd+Enter 执行 |
| LLM 提供商 | OpenAI / Anthropic | 流式输出,429 限流自动指数退避重试 |
当前状态
- v0.5.5 已发布(2026-07-12),420 次提交,14 个 Release
- M2 已交付:流式 LLM ReAct 循环 + 16 个工具全部上线
- 当前重心:bug 修复 + 推广
- M3:Profiler + Polars 清洗管线 + 分析画布 + Arrow IPC 零拷贝传输
- M4:企业级隔离 + LanceDB 记忆 + 审计日志
试用方式
- 直接下载:GitHub Releases
- 源码编译:
git clone https://github.com/tsingliuwin/lakemind.git
cd lakemind
npm install --include=dev
npm run tauri dev
- 配置大模型 API(支持 OpenAI / Anthropic),开始用自然语言分析数据
项目地址: https://github.com/tsingliuwin/lakemind
官网: https://lakemind.xi-n.com
许可证: AGPL-3.0,完全开源
欢迎 Star、提 Issue、给建议。如果你经常需要分析本地数据文件,这个工具可能正是你需要的。
更多推荐



所有评论(0)