Datasette Agent:用自然语言查询数据库的开源AI助手

Simon Willison发布Datasette Agent,用自然语言对话查询数据库的AI助手
Simon Willison发布了Datasette Agent首个版本,将其LLM库与Datasette数据探索工具融合,实现通过自然语言对话查询SQLite数据库。系统利用LLM工具调用能力完成从自然语言到SQL再到自然语言回答的完整链路,支持插件扩展(图表生成、图像生成、代码执行),兼容云端和本地开源模型,代表了工具增强型AI应用的发展方向。
Simon Willison 刚刚发布了 Datasette Agent 的首个版本——一个为 Datasette 打造的可扩展 AI 助手。这标志着他维护了三年多的 LLM Python 库与 Datasette 数据探索工具的正式融合,为数据查询和分析带来了全新的对话式交互体验。
关于这两个工具的背景:Datasette 是 Simon 于2017年创建的开源数据探索工具,专为 SQLite 数据库设计,允许用户通过 Web 界面浏览、查询和发布数据集,在新闻数据分析、政府开放数据可视化等领域被广泛采用。LLM 则是他维护的 Python 命令行工具和库,提供统一接口访问 OpenAI、Anthropic、Google 等主流大语言模型,并通过插件支持本地模型。两个项目均采用插件化架构,积累了活跃的开发者社区。如今两者的合流,是一次水到渠成的技术整合。

用自然语言查询数据库
Datasette Agent 的核心能力是让用户通过自然语言对话来查询存储在 Datasette 中的数据。你不需要会写 SQL,只需要像跟人聊天一样提问。
这背后依赖的是自然语言转 SQL(Text-to-SQL)技术与 LLM 工具调用能力的结合。Text-to-SQL 是 NLP 领域的经典任务,现代大语言模型在此任务上表现出色,尤其是对 SQLite 这类语法相对简洁的方言。更关键的是,Datasette Agent 利用了 LLM 的工具调用(Function Calling)能力——模型不仅生成 SQL,还能通过预定义工具接口直接执行查询并获取结果,形成完整的 ReAct(Reasoning + Acting)循环,这比单纯的 SQL 生成更接近真正的智能体行为。
在演示中,Simon 向系统提问:"Simon 最近一次看到鹈鹕是什么时候?" Agent 自动生成了一条精确的 SQLite 查询语句:
SELECT title, commentary, created
FROM blog_beat
WHERE beat_type = 'sighting'
AND (title LIKE '%pelican%' OR commentary LIKE '%pelican%')
ORDER BY created DESC
LIMIT 5
系统不仅返回了查询结果,还用自然语言组织了回答:最近一次鹈鹕观测记录于 2026 年 5 月 20 日,同时还观察到了加州棕鹈鹕、普通潜鸟、加拿大鹅等物种。这种从自然语言到 SQL 再到自然语言回答的完整链路,展示了 AI 在数据探索领域的实用价值。
在线演示实例 agent.datasette.io 运行在 Google 的 Gemini 3.1 Flash-Lite 模型上,Simon 评价它"便宜、快速,写 SQLite 查询毫无压力"。
插件生态:可扩展的AI能力
Datasette Agent 最令人兴奋的特性之一是继承了 Datasette 的插件化架构。目前已发布三个官方插件:
datasette-agent-charts
基于 Observable Plot 实现,让 Agent 能够根据查询结果自动生成数据可视化图表。Observable Plot 是由 D3.js 作者 Mike Bostock 主导开发的声明式图表库,专为探索性数据分析设计,提供了比 D3.js 更高层次的抽象,用更少的代码生成统计图表。该插件让 AI 能够根据查询结果自动选择合适的图表类型并生成配置代码,采用服务端生成配置、客户端渲染的架构,既保证了灵活性,也避免了服务器端图表渲染的复杂性。用户只需描述想看什么样的图表,Agent 就能完成从数据查询到图表渲染的全过程。
datasette-agent-openai-imagegen
集成了 ChatGPT Images 2.0 的图像生成能力,为 Agent 增加了 AI 绘图工具。这意味着你可以在数据分析的对话中直接请求生成相关的图像。
datasette-agent-sprites
提供在 Fly Sprites 持久化沙箱中执行代码的能力,进一步扩展了 Agent 的计算边界。
Simon 特别提到,开发插件的体验"非常有趣",他手头还有大量尚未达到 alpha 质量的原型。更有意思的是,Claude Code 和 OpenAI Codex 都能很好地辅助编写 Datasette Agent 插件——只需将它们指向 datasette-agent 仓库作为参考,描述你想构建的功能即可。
本地模型也能跑
Datasette Agent 并不绑定特定的云端模型。Simon 展示了一个用 uv 一行命令在本地运行的方案,使用 LM Studio 加载 Google 的 gemma-4-26b-a4b 开源模型:
uvx --prerelease=allow \\
--with datasette-agent --with llm-lmstudio \\
datasette --internal internal.db --root \\
-s plugins.datasette-llm.default_model lmstudio/google/gemma-4-26b-a4b \\
data.db
这里有几个值得关注的技术细节。uvx 命令来自 uv——由 Astral 公司用 Rust 编写的新一代 Python 包管理器,速度比 pip 快10-100倍,其 uvx 子命令类似 npx,无需预先安装即可运行 Python 工具并自动处理依赖隔离,代表了 Python 生态在开发者体验上的重要进步。LM Studio 则是一款桌面应用,提供本地模型管理和 OpenAI 兼容 API 服务,使开发者无需修改代码即可将云端模型替换为本地模型。模型名称中的 'a4b' 表示该模型采用了混合专家(MoE)架构,激活参数量约为4B,在保持较高能力的同时显著降低了推理资源需求。
Datasette Agent 对模型的核心要求是:可靠的工具调用能力(tool calls)以及生成正确 SQLite 查询的能力。Simon 指出,过去六个月发布的开源权重模型在这方面的表现越来越好——早期开源模型在工具调用可靠性上与 GPT-4 差距明显,但 Llama 3、Qwen 2.5、Gemma 等系列模型的持续迭代已大幅弥合了这一差距——这意味着完全离线、本地化的数据分析助手已经成为现实。
未来蓝图:个人AI助手的雏形
Datasette Agent 的发布不仅是一个产品里程碑,更打开了 LLM 和 Datasette 生态的诸多可能性:
LLM 库的重构:Agent 的开发直接推动了 LLM 0.32a0 的重大重构,Simon 计划将其中一些"LLM agent"抽象提取出来,形成稳定版本发布。
类 Claude Artifacts 体验:Simon 正在探索自己版本的 Artifacts 功能,作为插件形态开发,进展顺利。
**个人 AI 助手 "Claw
相关推荐
科技前沿GitHub Agent HQ发布:AI编程工具进入平台化竞争时代
GitHub Universe大会发布Agent HQ平台,统一管理编码Agent,Copilot升级支持多模型集成。同期OpenAI完成重组,Anthropic新模型测试,NVIDIA开源系列AI模型,AI编程工具格局加速整合。
科技前沿Gemini 3.5 Flash在GDPval基准上实现巨大飞跃
Google Gemini 3.5 Flash在GDPval基准测试中超越Gemini 3.1 Pro,轻量级Flash模型借助后训练技术逼近前沿水平,重新定义性能与成本的平衡点,为AI应用开发者带来重大利好。
科技前沿Google Gemini Antigravity周配额三倍提升,AI编程不再受限
Google Gemini团队再次将Antigravity周配额提升至三倍,继日配额提升后再次加码。本文解析此次配额调整对开发者的实际影响,以及在AI编程助手竞争格局中的战略意义。