导读 本次分享题目为 Data Engineering Agent 的成长之路,主要介绍 Datus AI 相关的行业背景、设计架构、特性、未来规划、设计理念。

主要内容包括以下几个部分:

  1. data agent 现状

  2. Datus 设计架构

  3. 交互式上下文工程

  4. Datus 未来规划

  5. Datus 设计理念

分享嘉宾|赵恒 DatusAI CEO & 联合创始人

编辑整理|龚萱

内容校对|郭慧敏

出品社区|DataFun


01

data agent 现状

Datus AI 是一个开源的 Data Engineering Agent 项目,目前开源约两个月,已在 LinkedIn、Expedia、Coinbase 等海外企业开展测试,国内亦有多个大型客户上线相关业务。

Data Engineering Agent(数据工程智能体)的大规模生产落地面临多重挑战:传统基于 RAG(检索增强生成)与固定工作流的方法虽能处理特定场景,但泛化能力有限,难以适应多变的业务需求;真实数据仓库中存在大量隐性知识,若无法有效提取并形式化,则问题定义与结果评估均难以精确进行;此外,构建持续的反馈与在线学习闭环,使模型能够从人工纠正与多轮交互中持续进化,是实现稳定交付的核心难点。

针对上述问题,Datus 项目并未局限于构建另一个通用对话式 Data Agent 或 Chat BI 工具,而是将核心创新聚焦于可迭代的上下文工程。其开源产品形态类似于“面向数据工程师的 Copilot”,旨在构建一个专为数据服务、可持续迭代增强的 Data Context 体系,以支撑智能体在实际工作流中的可靠运行与持续优化。

在 AI 时代,数据工程的工作范畴已从传统的构建数仓、进行表转换并交付仪表盘,扩展到需同时支撑多种新型需求:既要为人类用户提供自然语言查询接口,也需为其他智能体提供 API 服务,还需将已有的指标与语义层与各类 BI 工具对齐。

行业正推动语义层的标准化建设,旨在解决各公司或领域“黑话”向标准化 SQL 转换的难题。因此,数据工程师的核心任务正从编写 SQL 转变为为 AI 系统构建高质量、可演化的数据上下文。

关键挑战在于如何从历史 SQL、交互反馈等环节中持续提取有价值的元数据与语义信息,以构建并迭代这一上下文。当前工作流需同时服务于人类与后续智能体,因而融合了更多“人在回路”的交互式体验,其形态类似于为数据工程量身打造的 Copilot 工具。

02

Datus 设计架构

Datus 系统整体架构:

  • 适配器层

系统底层为适配器层,支持接入多种大语言模型、数据仓库、元数据目录服务、语义层及BI工具。例如,已实现 Snowflake、StarRocks、Trino、Redshift 等数据源连接,部分由开源社区贡献。该层也支持与 Polaris 等元数据目录及类似 Metric Flow 的开源语义层集成,并可对接企业内部指标平台。

  • 核心上下文引擎

架构核心是上下文引擎,负责整合元数据、指标定义、历史 SQL、文档及成功案例,构建统一的数据上下文。该引擎通过标准化工具接口向上层提供能力。

  • 设计哲学:智能体原生循环

在实现路径上,系统选择了更偏向智能体(Agentic)的交互范式,而非固定工作流。其核心决策逻辑是:随着底层大语言模型能力的持续进化,智能体多轮规划与决策的方式更能充分“复用”模型能力提升带来的红利,具备更强的适应性与成长性。尽管单次执行耗时可能高于预定义工作流,但对数据工程任务而言,能否最终可靠解决问题是更关键的效率指标。

  • 工具与集成形态

系统以 Datus CLI 命令行工具为主要载体,为数据工程师提供类似 Copilot 的编码辅助体验。同时,支持创建面向特定场景的子智能体(Sub-Agent),这些智能体可作为聊天机器人嵌入到 Superset 等 BI 工具的侧边栏中,供数据分析师交互使用,并在此过程中收集反馈。

  • 核心资产与反馈闭环

系统的核心资产是持续演化的数据上下文。其结构体现为两棵树:目录树 与 主题树。整个系统的目标是不断积累高质量的上下文,并通过集成丰富的子智能体与反馈闭环,实现上下文质量的持续迭代与提升,从而支撑实际数据工程工作。固定的工作流在特定场景仍具价值,系统会在未来予以辅助支持。

Datus 系统通过两棵树形结构构建其核心数据上下文:

  • 目录树 (Catalog Tree)

目录树是底层数据目录(数据库、模式、表、视图、物化视图等)的结构化映射。在此基础上,系统通过 AI 或人机协同的方式,为这些数据对象生成语义模型,明确其维度、指标定义及常用注释。

  • 主题树 (Subject Tree)

主题树按业务域进行组织(如一级/二级主题),其叶节点承载具体的指标、可参考的 SQL 模板以及相关的知识文档。指标可定义为 YAML 并通过稳定 API 暴露,直接提供查询结果或可复用的 SQL;参考 SQL 则为特定 ETL 场景提供范例。

  • 构建方式与优势

与传统 RAG 或手工维护 schema 的方式不同,该系统从历史 SQL、仪表盘等来源自动提取信息来构建并迭代上下文。最终,它提供一套标准化工具集,专门服务于大语言模型,以支撑上层的数据工程智能体。

03

交互式上下文工程

Datus 系统通过以下流程构建和利用数据上下文:

系统初始化知识库时,支持多种方式。核心方法是通过内置 Agent 自动读取历史 SQL,从中提取表结构、数据样本及参考 SQL,并将其存储于一个基于向量数据库(支持混合检索)的知识库中。同时,系统会自动将这些信息组织成结构化的上下文树,并添加标签与摘要,便于大语言模型在特定场景下精准检索。

此外,若历史 SQL 包含完整注释或问题描述,系统可进一步从中抽取指标定义,并将其存储为 YAML 文件或向量索引。用户也可通过命令行工具或交互界面,手动编辑或生成单个指标,以人机协同的方式持续优化数据上下文。

完成构建后,这些结构化的上下文即可提供给大语言模型,用于可靠地执行数据查询与转换任务。

Datus 项目内置了一套针对自然语言转 SQL(NL2SQL)的基准测试与评估框架。测试表明,在完全无上下文的情况下,大语言模型自由生成的 SQL 经过多轮尝试,平均准确率仅约 50%。而在通过系统自动初始化并引入历史 SQL 与指标作为上下文后,准确率可提升至 80% 以上。

为进一步提升效果,框架支持并行测试与一致性检查策略(类似于测试时增强技术)。通过让模型对同一问题生成多个答案并进行比对,可以在消耗额外计算资源的代价下,换取更高的最终准确率。该评估框架为衡量和优化数据工程智能体的核心能力提供了基础工具。

该系统致力于通过自动化反馈循环提升准确性,减少人工调优。其核心逻辑是基于评估结果对问题进行分类:部分问题始终正确,部分始终错误,部分波动。针对始终错误的案例,通常归因于上下文信息不足或语义模糊。

系统采用基于评估的反馈机制:让大语言模型对同一问题多次生成回答,并引导其自我比较正确结果与错误结果之间的差异,从中抽取出新的知识片段(例如特定的 JOIN 逻辑或空值处理规则)。这些知识通过智能体循环被提炼后,可自动补充至上下文知识库中。

实际测试表明,在无外部知识的基准下,44 个案例的准确率为 26%;提供精准匹配知识时,准确率可超过 90%;而通过更贴近真实场景的上下文检索方式,准确率虽略有下降,但仍处于可用水平,且抽取的知识具备业务语义逻辑。

对于大概率能做对的问题,可通过运行时一致性校验进一步提升准确率;对于正确率波动的案例,本质是强化学习(如从“尝试一次”逼近“尝试多次”)可优化的范畴;而对于始终无法做对的难题,仅靠强化学习难以解决,其根本仍依赖于上下文的补充与完善。

该系统支持从用户现有的 BI 报表(如 Superset Dashboard)中自动抽取知识,以丰富上下文。仪表盘中蕴含了业务分析师已梳理清晰的业务逻辑,例如核心指标的定义、关联关系、关键筛选条件及下钻路径。这些逻辑与经过生产验证的 SQL,是构建高质量上下文的重要来源。

最新版本的系统能够自动解析 Dashboard 链接,识别其中的数据表、图表构成,并提取每个图表背后的 SQL 语句。进一步地,系统可以从这些 SQL 中自动抽取出公共的指标与维度定义,将其转化为结构化知识,汇入统一的上下文引擎,供智能体在生成查询时参考使用。这降低了对大语言模型凭空编写准确 SQL 的依赖,提升了输出的可靠性与业务贴合度。

Datus AI 项目的核心开源价值在于构建标准化的工具生态与可共享的智能体经验。

当前市场缺少专为数据工程师设计的 AI 编码工具,这构成了明确的机会。更深层的开源动机在于,统一与规范化大语言模型所需调用的工具接口至关重要。若连接数据库、查询元数据与指标的工具定义杂乱不一,将严重阻碍模型的理解、泛化与后续训练优化。

数据领域缺乏像 GitHub 那样丰富、复杂的公开任务库来驱动智能体能力的持续进化。因此,开源项目可通过定义一组通用、规范的“Tools Back”,为整个领域的工程化与模型训练奠定基础。在此之上,社区可以共享和复用针对不同场景的子智能体与技能模板,使各数据团队的经验得以沉淀和流通。

项目团队计划围绕此开源核心,提供 CLI 及 IDE 扩展等工具,并在国内专注于开源生态建设,暂不进行商业化运营。

Datus AI 开源项目的核心价值之一,在于为数据工程领域提供了一套标准化的工具接口格式,专门服务于大语言模型。该设计借鉴了 Copilot 等代码助手的交互模式,主要提供 list(列表)和 search(搜索)两类标准化工具,使模型能以类似操作文件系统的方式,自然地探索和调用数据资产。

项目将分散的数据指标、参考 SQL、表结构等信息,统一组织成树形结构进行管理,这种形式对大语言模型而言更易于理解和导航。在工具调用层面,系统内置了自适应的上下文压缩机制,会根据返回结果的大小进行动态压缩,并为每个结果提供简版摘要与完整内容,以优化令牌使用效率。

此外,系统支持基于内置向量索引的检索接口,可实现文本与元数据的混合搜索。整个上下文体系可由 AI 自动生成,也支持人工交互式编辑。这套标准化的“Tools spec”旨在提升大语言模型与数据基础设施交互的规范性、效率与泛化能力。

Sub-Agent 系统的实现逻辑

该系统的底层由多个 Sub-Agent 构成。每个 Sub-Agent 的核心可视为 Tools、MCP 协议 与 Skills 三者的统一。对大语言模型而言,它们都是可调用的工具。具体来说:

Skills 本质上是一种特殊封装的工具,它提供了一种更优的上下文加载与结构化描述手段,使模型能通过多轮工具调用来探索和执行复杂任务。

MCP 则是一层底层协议标准。

关键设计:Scope Context(作用域上下文)

系统虽然维护着全局的目录树和主题树,但具体业务场景通常只需其中部分表、指标和知识。因此,通过定义 Scope Context,即从全局树中选择相关的子树或节点,并结合规则与系统提示词,即可快速构建出面向不同场景的专用 Sub-Agent。这种 Scope Context 机制是实现灵活、高效子智能体的核心,也为后续的强化学习等优化提供了明确的环境边界。

该系统通过可灵活配置的 Sub-Agent(子代理) 实现不同场景的精准支持。每个子代理在底层体现为一组特定的工具集,并可通过命令行交互式创建与管理。

在实际配置中,系统根据任务场景动态提供不同的工具组合:例如,在指标生成场景中,会提供指标读写、JSON 验证及指标查询等工具;在数据查询场景中,则提供指标搜索等工具;在 ETL 开发场景中,会配置参考 SQL 查询工具。工具集既可通过 MCP 协议接入,也可使用原生实现,未来还将支持更结构化的 Skills 封装。

此外,每个子代理可定义其搜索范围(Scope)、业务规则及外部知识源。这些上下文元素支持动态调整,允许根据需求由模型或人工进行更新,从而实现上下文的持续迭代与场景适配。

当各个子代理通过反馈循环迭代达到稳定水平后,系统通过分层编排架构对其进行组织与调度。

顶层设计了一个路由代理,负责将任务按类型分发至相应的子代理。整体架构分为两层:第一层为按通用业务场景划分的模板,如 SQL 生成、指标构建或元数据操作;第二层则在模板基础上注入特定的领域上下文,形成更具业务语义的专属子代理。两层结构均可被灵活编排。

此外,系统支持计划模式,即由大语言模型先生成任务执行计划,再按计划调用不同的子代理协同完成。该机制提供了另一种上下文隔离与任务组织的可行方案,目前仍在持续优化中。

为提升语义模型的实用性,当前工作聚焦于优化 SQL 建模。针对大规模数据表(常含数百列)自动注释易遗漏关键信息或混淆相似字段的问题,系统通过分析用户 SQL 查询的热点,识别高频访问列,并依据其数据分布(如基数高低)差异化生成重点注释,从而构建更精准、实用的数据上下文,以更好地引导大语言模型进行理解与推理

当前构建 Data Agent 的核心路径是:整合数据库、语义层及 BI 工具等多源数据,通过专用组件自动抽取关键信息(如从 BI 报表或历史 SQL 中提取),并调度一系列子代理进行协同处理。最终,系统能交付不同功能的智能体,支持多轮交互对话与报告生成等任务,同时通过交互反馈持续迭代和优化上下文质量。

Datus 可作为统一的客户端工具,接入并协调 PostgreSQL、StarRocks、Polaris 等不同数据库组件。这些组件以 Docker 或独立服务的形式部署,通过Datus 进行统一调度与管理,从而构建并执行更复杂的数据处理流水线。

Datus 项目正规划与 DBT 工作流深度集成,旨在通过一系列数据工程子代理实现以下能力:自动建表、对 SQL 脚本进行版本管理、为 SQL 自动嵌入质量检测规则,并与外部任务调度工具无缝对接。

在数据迁移与元数据迁移等场景中,该系统通过提供标准化的工具接口,支持用户通过修改系统提示词或编辑技能工具的方式,自定义和实现相应的迁移逻辑。

04

Datus 未来规划

Datus 项目在 0.3 版本的规划中,旨在打通湖仓一体(Lakehouse)生态中的各类组件,系统集成元数据、历史信息、任务调度与指标等多种数据源,以构建更为完整、高质量的统一数据上下文。

在强化学习的应用上,项目团队持探索态度并认识到其争议性。核心决策在于坚持智能体(Agent)原生框架而非工作流(Workflow),因为前者能直接受益于底层大语言模型能力的持续进化,而后者难以利用此“模型红利”。

团队认为,若认可多轮智能体交互能产生更高智能,则强化学习的核心目标应是在一组标准化的工具集下,让智能体学会更高效地完成任务(即让“一次通过”的性能逼近“多次尝试”)。当前,强化学习的基础设施(如 Tülu、Fireworks 等服务)已日趋成熟,使得开发者无需自建复杂底层设施。

具体到数据工程领域,其任务(如 NL2SQL)具有天然明确的奖励信号(SQL 执行结果正确与否),这为强化学习提供了清晰的环境。真正的挑战在于,如何在用户的真实业务场景中,利用其专有数据和环境进行轻量级的强化学习微调,并确保其产生实际效果。项目已构建了针对小模型(如 4B 参数)的实验流程,但在更大模型上验证有效性仍需进一步探索。

05

Datus 设计理念

Datus Agent 的设计理念与总结

Datus 项目在整体设计上遵循三个核心理念:

  • Context over Control(上下文优先于控制):项目采用智能体原生(Agentic)思路,而非追求短期高准确率的固定工作流。其核心在于构建高质量、可迭代的数据上下文(Context),从而持续受益于底层大语言模型能力进化所带来的红利。
  • Simple and Reliable(简单可依赖):系统本身不内置复杂工作流,而是通过提供强大、可靠的验证工具来保障结果质量。例如,在生成指标、SQL 或配置文件时,均会调用相应的验证工具进行格式与逻辑校验,确保输出正确,从而构建可信的智能体交互循环。
  • 拥抱变化:框架设计强调对模型迭代的适应性。通过提供标准化的强化学习环境与奖励函数,项目为未来可能的模型微调与进化预留了空间。团队认为,在 NL2SQL 等数据工程任务上,大部分性能提升源于上下文工程与智能体框架的优化,而非单纯依赖模型升级。

Datus 是一个开源项目,旨在构建服务于数据工程师的 AI 编程助手。团队积极致力于开源社区建设,并欢迎开发者关注项目、参与交流与贡献。

以上就是本次分享的内容,谢谢大家。