Dash:可部署生产级 Text-to-SQL 能力的开源数据智能体


Dash 是一个开源的自学习数据代理,由 Agno 创始人 Ashpreet Bedi 开发,灵感来自 OpenAI 内部数据代理架构。它通过六层上下文(表结构、人工标注、查询模式、机构知识、记忆、运行时上下文)和"GPU 贫困式持续学习"机制,让 AI 在写 SQL 时不再瞎猜,而是像老司机一样越开越熟。这个项目验证了企业级 AI 代理的核心真理:上下文基础设施比模型选择更重要。


当 OpenAI 把自家宝贝公开,全世界数据分析师都该起立鼓掌

想象一下这个场景:你是一家估值千亿美元的 AI 公司的员工,每天面对七万张数据表和六百 PB 的数据海洋,你想知道"上季度我们到底赚了多少钱",结果你的 AI 助手给你返回了一个完全错误的数字,因为它把"预订收入"当成了"实际到账收入",还漏掉了"企业客户"和"中小客户"的区分定义。这就是 OpenAI 内部曾经真实发生的日常。

OpenAI 最近干了件大事,他们把自己内部用了很久的数据代理架构公开了。这相当于把自家厨房的秘密食谱贴在了橱窗上,让全世界都能看到他们是怎么解决"AI 写 SQL 瞎编乱造"这个世纪难题的。六层上下文架构、自学习记忆系统、生产环境里的血泪教训,全都摊在台面上。读完那篇博客的人都有一个共同感受:这可能是目前最经得起实战检验的企业级 AI 代理蓝图。

而在这个消息发布的同时,有个叫 Ashpreet Bedi 的工程师在电脑前露出了"我早就知道会这样"的微笑。这位老兄在 Airbnb 和 Facebook 干了十年数据基础设施,见过太多"AI 项目从 demo 惊艳到生产拉胯"的惨剧。他一直在测试一种"GPU 贫困式持续学习"的方法,OpenAI 的这篇文章正好验证了他的思路。于是他在 GitHub 上按下了开源按钮,Dash 诞生了。

六层上下文:让 AI 从瞎猜变成真懂

很多人不理解为什么 Text-to-SQL 这么难。不就是让 AI 把"上个月销售额是多少"翻译成 SELECT SUM(amount) FROM orders 吗?太天真了。真实世界的数据表命名跟程序员的心情一样难以捉摸,有个字段叫 state,另一个表里同样的概念却叫 status,还有个表里的 revenue 其实是 ARR 而不是账面收入。没有上下文,再强的模型也是个只会背字典的外国人。

OpenAI 的洞察简单粗暴:上下文就是一切。没有它,GPT-5 也会幻觉出根本不存在的列名,会忽略那些"只有老员工才知道"的类型陷阱,会完全 miss 掉那些散落在 Slack 和 Confluence 里的部落知识。Dash 把这个洞察变成了六层防御工事。

第一层叫表使用模式,说白了就是表结构、列定义、表之间的关系。Dash 会读取你提供的 JSON 文件,了解每张表是干嘛的,哪些列是主键,哪些列是外键,哪些列藏着坑。第二层是人工标注,这是人类智慧的注入点。你可以定义指标、写业务规则、标记那些"千万别踩"的坑。比如你可以明确告诉 Dash:"MRR 的意思是活跃订阅总和,不包括试用期用户",或者"revenue 字段存的是分,不是元,查询时要除以一百"。

第三层是查询模式,也就是那些已经被验证过的 SQL 语句。Dash 不会从零开始瞎写,它会先看看"以前类似的问题是怎么解决的"。第四层是机构知识,通过 MCP 协议接入外部的文档、Wiki、研究资料。第五层是最有意思的记忆层,这是 Dash 的"错题本"。当一次查询因为 position 字段是 TEXT 类型而不是 INTEGER 类型而失败时,Dash 会把这个教训记下来,下次遇到同样的情况,它会自动修正。第六层是运行时上下文,当数据结构发生变化时,Dash 会实时去数据库里探查最新的 schema,确保自己不会拿着过期的地图找宝藏。

这六层上下文通过混合搜索在运行时动态检索,AI 基于这些上下文生成 SQL,执行后再基于结果给出洞察。这不是在回答问题,这是在基于组织的集体智慧进行推理。

自学习循环:越用越聪明的秘密武器

大多数 Text-to-SQL 代理有个致命缺陷:它们是状态less 的。你纠正了它的一个错误,下次对话它照样犯同样的错,因为每次会话都是全新的开始,就像金鱼一样只有七秒记忆。Dash 彻底解决了这个问题,它通过两个互补的系统实现持续学习。

静态知识系统存储的是经过验证的查询、业务上下文、表结构、数据质量说明、指标定义、部落知识和各种坑。这些内容由你的团队维护,Dash 也会自动把成功的查询添加进去。持续学习系统则是 Dash 在试错中发现的模式。你用得越多,它变得越聪明。比如它会自己发现:A 表里的 state 列对应 B 表里的 status 列。它还会学习你们团队当前的关注点。如果你们正在准备 IPO,Dash 会学会 S-1 指标存放在单独的数据集里,学会"收入"在这个语境下指的是 ARR 而不是账面预订额,学会董事会想要按企业客户和中小客户拆分看的留存率。

每一次学习都成为一个数据点,让下一次查询更准确。Ashpreet Bedi 给这种方法起了个名字叫"GPU 贫困式持续学习",意思是完全不需要 GPU 训练,只需要五行代码就能实现。这五行代码创建了一个 LearningMachine 实例,配置了知识库、用户画像、用户记忆和习得知识,全部设置为 AGENTIC 模式。对于那些买不起英伟达显卡集群的团队来说,这简直就是福音。

从零开始:五分钟跑起来

Dash 的安装简单到让人感动。克隆仓库、复制环境变量文件、填入 OpenAI API 密钥、运行 docker compose up,四行命令搞定。然后加载示例数据和知识库,你就拥有了一个完整的数据代理。示例数据是一级方程式赛车从 1950 年到 2020 年的完整数据集,足够你玩个痛快。

你可以问"谁赢得了最多 F1 世界冠军",可以问"汉密尔顿赢了多少场比赛",可以问"2015 到 2020 年法拉利和梅赛德斯的积分对比"。Dash 不会只给你一个干巴巴的数字,它会像真正的数据分析师一样给你上下文:"刘易斯·汉密尔顿在 2019 年统治了赛场,21 场比赛中赢了 11 场,是博塔斯 4 场胜利的两倍多。这一表现确保了他的第六个世界冠军。"

Dash 还自带一个基于 Agno 的 Web UI。打开 os.agno.com,添加本地服务,输入 http://localhost:8000,点击连接,你就有了一个漂亮的数据分析界面。可以看到会话历史、追踪每一次查询的执行过程、监控代理的表现。

评估体系:知道它有多靠谱

AI 代理最怕什么?最怕你根本不知道它什么时候对、什么时候错。Dash  ships 了一套完整的评估套件,包括字符串匹配、LLM 评分、黄金 SQL 对比。你可以运行基础评估检查输出格式,可以运行 LLM 评分让另一个 AI 来判断答案质量,可以对比 Dash 生成的 SQL 和人工编写的标准答案。

这在 AI 项目里简直是稀罕物。大多数项目只有"看起来对"的 demo,没有"真的对"的评估。Dash 的作者显然吃过生产环境的亏,知道没有评估的 AI 就是定时炸弹。

为什么这很重要:数据代理是企业 AI 的最佳场景

Dash 的 README 里有句话特别扎心:"数据代理是目前企业 AI 的最佳应用场景之一。每家公司(达到一定规模的)都应该有一个。Vercel 有 d0,OpenAI 自己建了一个。Dash 是我试图让每个人都能拥有这种能力的尝试。"

想想你的公司是不是这样:数据分析师每天花一半时间找表、理解业务逻辑、重写别人写过的查询。CEO 问一个简单问题,三天后才能拿到答案,而且不同部门给的数字还对不上。Dash 解决的就是这个痛点。它把找表、理解字段含义、写 SQL、解释结果这些脏活累活都揽了过去,让分析师可以专注于真正的洞察和决策。

更重要的是,Dash 证明了企业级 AI 的关键不在于用多大的模型,而在于有多少上下文。OpenAI 用 GPT-5 也得靠六层上下文才能做好数据代理,你用同样的架构,即使是 GPT-4,也能获得靠谱的结果。这是架构的胜利,不是算力的炫耀。

关于作者:从 Airbnb 到 Agno 的基础设施老兵

Ashpreet Bedi 这个人值得多说几句。他在德里出生,在伦敦大学学院读书,然后在思科、Facebook、Airbnb 一路打拼,在 Airbnb 干了五年数据基础设施、机器人检测、事件摄取、核心搜索、供需模型。2022 年他离开 Airbnb,开始帮各种公司建 AI 产品。

2023 年 GPT-3.5 出来的时候,RAG 正火,他试了所有框架都觉得不对劲。那些"本月框架"总是把简单的事情搞复杂,链式调用和提示模板让他抓狂。于是他回归手写代码,直接调用 API,自己做分块、爬取、加载向量数据库。慢慢地,他把这些工具封装成类,取名"Assistants",后来开源成了 Phidata,再后来改名为 Agno。

Agno 现在已经是 GitHub 上两万两千多星的项目,每周有一百万个新代理被创建。它的特点是极致的性能:代理实例化只需要 3 微秒,内存占用只有 6.5KB。Ashpreet 对复杂性的厌恶贯穿了整个项目,Agno 的 Assistant 类点进去就能看到全部代码,绝没有那种嵌套十八层的类继承地狱。

Dash 是 Agno 生态的最新成员,它继承了 Agno 的性能优势,又加入了数据代理特有的六层上下文架构。这不是一个玩具项目,这是一个在生产环境里摸爬滚打过的老兵拿出的解决方案。

独特性评价:为什么 Dash 不只是又一个 Text-to-SQL 工具

市面上 Text-to-SQL 的工具多如牛毛,从开源的到商业的,为什么 Dash 值得关注?

首先,它解决了"记忆"问题。大多数工具每次查询都是独立的,Dash 的 LearningMachine 让代理真正能从错误中学习。其次,它区分了"知识"和"学习":知识是人工 curated 的确定性内容,学习是代理自己发现的概率性模式。这种双层架构既保证了准确性,又赋予了成长性。

第三,它是"GPU 贫困友好"的。不需要微调,不需要训练集群,只需要一个 OpenAI API 密钥和一台能跑 Docker 的机器。这对于资源有限的团队来说意义重大。第四,它来自一个经历过 Airbnb 和 Facebook 数据基础设施洗礼的工程师,不是学术界的纸上谈兵,而是工业界的实战结晶。

最后,也是最重要的一点:Dash 验证了 OpenAI 的内部实践是可以复制的。OpenAI 有七万张表、六百 PB 数据、专门的团队维护数据代理,Dash 证明了你不需要这些资源也能获得类似的能力。六层上下文的架构是通用的,自学习循环的机制是通用的,剩下的只是填充你自己的业务知识。

如果你正在考虑给公司上一个数据代理,Dash 应该在你的评估清单上。它不只是一个工具,它是一个经过验证的架构模式,一份来自前线工程师的实战手册。



总结:

Dash 是 Agno 创始人 Ashpreet Bedi 开源的数据代理,复刻 OpenAI 内部六层上下文架构,通过静态知识与持续学习双系统实现零 GPU 自进化,让企业用 Docker 和 OpenAI API 即可部署生产级 Text-to-SQL 能力。