跳到正文
北京时间
原文
NVIDIA Technical Blog:Agentic AI / Generative AI·· 1 天前精选AI 评分62

NVIDIA KGMON 团队分享 KDD Cup 2026 数据分析智能体的构建经验

Building Reliable Data Analytics Agents: Lessons from the KDD Cup

AI 导读

NVIDIA KGMON 团队在 KDD Cup 2026 Data Agents 竞赛获得第二名,并发布构建可靠数据分析智能体的方法复盘。

推荐理由

NVIDIA KGMON 团队复盘 KDD Cup 2026 数据智能体赛题的九项实践,给出在固定小模型上构建可验证 agent harness 的可迁移方法。

正文 · AI 翻译

NVIDIA KGMON 团队在 KDD Cup 2026 Data Agents 竞赛中获得第二名,其系统围绕一个简单理念构建:让智能体的运行框架更小、更清晰、更易于验证。

竞赛要求智能体在异构数据源上回答自然语言问题,这些数据源包括数据库、CSV 和 JSON 文件、散文文档、PDF 以及简报视频。每项任务都不仅仅是检索,智能体需要检查可用数据、选择合适的工具、跨数据源进行推理、生成最终答案文件,并处理分析工作流中出现的陷阱。

KDD 还要求各团队使用一个小型、固定的 LLM 来驱动智能体,这使得运行框架成为主要的优化面。团队的目标是通过预处理、受限工具、持久状态和评估,让可用模型更轻松地完成任务。在围绕较小的开放模型构建可靠系统时,这些技术尤为有用。

本文分享了他们取得这一成果背后的方法。这并不是适用于所有数据科学智能体的通用配方,但更广泛的教训适用于许多智能体系统。可靠性往往较少来自让模型更加开放,而更多来自围绕模型构建合适的运行框架。

系统背后的两条原则

两条原则塑造了这一系统。

第一,约束动作空间。检查数据、调用工具、写入文件或从错误中恢复的方式过多,都可能导致失败。KGMON 统一了数据访问方式,仅暴露一小组工具,并要求最终答案遵循单一输出路径。

第二,让每一次尝试都可检查。一次运行可能因工具调用错误、连接错误、遗漏文档规则或答案格式问题而失败。执行轨迹、重复尝试和轨迹检查帮助团队识别失败并改进运行框架。图 1 展示了整体工作流。

Databases, files, prose, and video feed a harness with three stages: preprocess, constrain, and persist. The harness produces answer.csv and trace.jsonl. A feedback loop returns evaluation findings to the harness.
图 1. 运行框架对数据进行预处理,限制智能体的工具,并保留状态,执行轨迹支持评估和改进

以下技术为构建可靠的数据分析智能体提供了实用指导。

1. 将结构化数据源转换为单一查询界面

每个 KDD 任务都可能组合 SQL 数据库、CSV 和 JSON 文件、文档以及视频。KGMON 将 CSV 和 JSON 文件转换为现有 SQLite 数据库中的表,为智能体提供对所有结构化数据的单一 SQL 接口。

KGMON 自定义的持久 Python 环境暴露了两个内置函数,用于检查和查询这一统一数据界面:

schema()
sql(query)

这些自定义函数为智能体提供了发现和查询结构化数据的单一方式。它们内置于 KGMON 的环境中,而非由 Python 或 SQLite 提供。

单一 SQL 接口减少了路由失败和浪费的轮次,为固定模型留出更多空间来对数据进行推理。

应用此方法:在智能体启动之前,规范化对结构化数据的访问。临时 SQLite 数据库、虚拟化查询层或受治理的数据仓库接口,都可以提供稳定、狭窄且文档完善的查询界面。

2. 预先为智能体注入模式上下文

KGMON 在主要推理循环之前增加了一个模式侦察步骤。系统检查了表、列、可能的连接键、重复名称、相似字段、单位、空值模式以及行粒度问题。

智能体在每项任务开始时都会收到这一模式上下文,从而节省了早期的探索轮次。

Schema scouting 减少了因列错误、遗漏连接或对每个答案行应代表什么感到困惑而导致的错误。图 2 展示了统一的 SQL 接口以及提供给 agent 的 schema 上下文。

SQLite databases, CSV files, and JSON records feed a shared SQL interface. A read-only schema scout produces a context brief covering available tables, likely joins, the unit each answer row represents, and ambiguous fields.
图 2. 将 CSV 和 JSON 文件转换为 SQLite 表为 agent 提供了统一的 SQL 接口,而 schema scouting 在分析开始前提供上下文

应用此方法:添加一个只读的预检步骤,向 agent 简要说明可用的表、可能的连接、关键列、单位、可疑字段以及已知的歧义。这可能比另一个检索工具更有用。

3. 构建一个小巧、有主见的工具框架

KGMON 将 agent 限制为用于 schema 检查、SQL 查询、文档查找、散文提取和答案编写的辅助工具。

该环境暴露了以下函数:

schema()       	# inspect tables and columns
sql(query)     	# query context.db
write_answer(df)   # write the final answer atomically
prose_helper() 	# answer from prose or extract prose into SQL

中间件修复了格式错误的工具调用,因此一次错误的调用不会终止一次尝试。

一个有状态的 Python 环境在工具调用之间保留变量,让 agent 可以复用中间结果。预定义函数如 schema()、sql(query) 和 write_answer(df) 减少了样板代码、语法错误和文件处理错误。这节省了轮次,并让小型 LLM 专注于分析。图 3 展示了环境的函数、持久状态和错误处理。

Four functions—schema(), sql(query), prose_helper(), and write_answer(df)—support a persistent Python workspace. The example retains a query result for the final answer. Side panels describe malformed-call repair, atomic answer writes, and avoiding duplicate execution paths.
图 3. 一个持久的 Python 环境在工具调用之间保留变量,修复格式错误的调用,并通过单个辅助函数写入答案

简短、有效的尝试为额外的运行、评估和集成(组合多次尝试的结果)留下了更多轮次。

应用此方法:围绕工作流需求设计工具,并移除重复路径。运行 SQL 或编写答案的单一批准方式减少了破坏状态或产生无效输出的机会。

4. 将散文视为一等输入,但将其与结构化数据分开

分析工作流通常包括 PDF、Markdown 文件、文档、政策文本、指令和报告。在某些 KDD 任务中,这些来源包含回答问题所需的阈值、规则、定义和类表记录。

大型文档可能消耗 LLM 的上下文窗口。KGMON 阻止通过 Python 的 open() 函数或 .read() 方法直接读取整个文件,而是提供按字符数或正则表达式(regex)匹配来限制预览和搜索的工具。

找到相关部分后,agent 可以调用 prose_helper,这是一个自定义工具,它将文档块传递给一个单独的 LLM 调用,温度设置为 0 并禁用推理。它返回答案或提取表格,使原始文档内容不进入主 agent 的上下文。

Figure 4 shows the document-inspection workflow. KGMON used prose_helper in two modes:
mode="answer"  # extract a rule, threshold, or short answer
mode="table"   # extract repeating records into a SQL table
A document passes through a limited preview and targeted search. The prose_helper() function has two modes: answer mode extracts a fact, such as a year cutoff; table mode converts repeated records into a SQL table.
图 4. 有针对性的文档检查识别出相关文本供 prose_helper() 使用,后者提取单个事实或将重复记录转换为 SQL 表

从散文中提取规则让 agent 可以在 SQL 分析中应用它们,同时保持其工作上下文聚焦。

重要提醒:表格提取适用于将结构化信息嵌入文档的竞赛任务。生产系统可能只需要有针对性的散文查找;表格提取可以保持可选。

应用此方法:提供一个文档检查工具,它可以回答有针对性的问题并引用来源,而无需将整个文档加载到主 agent 的上下文中。当文档包含需要连接或过滤的重复记录时,添加表格提取。

5. 当视频是任务的一部分时,对其进行预处理

一些 KDD 任务包含简报视频。为了避免在智能体循环内处理视频所带来的计算成本,KGMON 提取关键帧、转录音频、将转录片段与帧对齐,并将由此得到的证据提供给智能体。

每个任务最多包含一个视频,通常含有基于幻灯片的约束或干扰值。与转录对齐的关键帧将语音上下文与正确的视觉证据连接起来。图 5 展示了预处理步骤。

A left-to-right workflow takes a briefing video, extracts keyframes, transcribes speech, and aligns frames with transcript segments. The example pairs a slide’s year cutoff with spoken instructions about applying it to a diagnosis date.
图 5. 视频预处理将关键帧与转录片段配对,使智能体能够在上下文中解读视觉证据

重要提醒:该预处理适用于竞赛设置。拥有大量视频的应用可能受益于按需辅助工具,类似于 prose_helper。

应用此方法:在智能体循环之前预处理有限数量的视频。对于更大的集合,提供一个按需查询视频证据的检索或检查工具。

6. 记录追踪日志,以便另一个智能体或人类可以检查失败

每次尝试都记录了提示、工具调用、SQL 查询、中间结果、错误、修复、文档查找和最终答案。

专门的检查智能体可以审查失败的轨迹、对错误进行分类,并呈现反复出现的失败,以帮助团队确定改进的优先级。

追踪日志显示了错误答案来自模式混淆、错误的连接、遗漏的文本证据、输出格式还是脆弱的提示规则。

应用此方法:将追踪检查构建到开发工作流中。子智能体或评估脚本可以对近期运行中的失败进行分类,并建议对测试框架进行更改。图 6 展示了追踪如何揭示第一个错误决策。

An example trace highlights a reasoning error that broadens an exact label to a family of labels, leading to an answer of 11 instead of 0. An adjacent chart groups illustrative failure frequencies by schema confusion, missed source rules, incorrect joins or row units, output formatting, and brittle prompts.
图 6. 执行追踪揭示了某次尝试首次出错的位置,并帮助团队对反复出现的失败进行分类

7. 评估多次尝试,但要注意成本

KGMON 通过重复尝试和答案选择提高了覆盖率和可靠性。它按答案值而非列名对尝试进行分组,并可以为有争议的任务提供额外的运行次数。

在排行榜精确的值级别评分下,多次尝试有助于区分稳定答案和一次性错误。

重要提醒:重复尝试会增加 token 使用量、延迟和计算成本。在生产环境中,应仅对价值、不确定性或风险足以证明成本合理的任务保留集成方法。

应用此方法:从单次运行评估和追踪检查开始。使用置信度、分歧或验证失败来决定何时额外尝试的成本是合理的。

8. 谨慎使用改进循环

在自主改进循环中,智能体利用评估反馈来优化提示、工具、后处理和评估逻辑。这些更改可以提高性能,但也可能过拟合基准。

KGMON 看到了几个风险:

  • 将训练示例硬编码到提示中
  • 累积相互矛盾的指令
  • 添加脆弱的后处理规则
  • 改善一个基准划分却损害泛化能力

团队需要快速改进,但不能构建一个记住基准的测试框架。

应用此方法:在推广更改之前,要求保留任务、提示审计、追踪审查和人工批准。在改进循环中构建审查关卡。

9. 让人类留在循环的正确位置

团队将人工指导与智能体规模的实验相结合。

人们定义任务需求、审计轨迹、引导早期智能体行为、拒绝脆弱的变更,并选择要在 harness 中保留的改进。

有针对性的干预可以改善未来的运行,而无需对每一次工具调用进行监督。

应用这种方法:审查任务设计、评估标准、失败分析和提议的可复用技能。让智能体执行和探索,而由人来决定保留哪些改进。图 7 展示了人工审查在循环中的位置。

A human design stage defines the task, answer format, evaluation criteria, and known failure modes. Agents run tasks, audit traces, and propose changes. Human reviewers check evidence, held-out tasks, cost, and risk before promoting or revising a change. Approved changes feed back into the harness.
图 7. 人们定义成功标准并审查提议的改进,而智能体运行任务、审计轨迹并生成变更

构建数据科学智能体的重要经验

KDD 的最终解决方案是由基准塑造的:固定模型、无互联网访问、异构任务包、值级评分以及长时运行预算。并非每个设计选择都应直接照搬到生产环境中。

你可以将这些实践应用到其他智能体系统:

  • 在智能体启动前规范化数据访问。
  • 为智能体提供小而可靠的工具体系。
  • 让每一次尝试都可追溯。
  • 同时评估答案和轨迹。
  • 有选择地使用重复尝试。
  • 保留可复用的知识。
  • 仅在验证后推广改进。

这些实践有助于智能体可靠地使用数据。

入门

从一个可重复的分析工作流开始,构建能够完成它的最小 harness。遵循以下步骤:

  • 定义问题和所需的答案格式。
  • 为智能体提供一小组用于检查和查询数据的工具。
  • 记录每一次工具调用和中间结果。
  • 创建一个小型评估集,同时包含成功案例和可能的失败模式。
  • 审查智能体的轨迹,然后改进其工具、提示和验证检查。

一旦基础可靠,就添加文档检查、共享知识、经过审查的改进,以及对多次尝试的选择性评估。

如需更多架构示例和实现思路,请浏览 KDD Cup Data Agents 演示资料库,其中包含录制的演示会议以及来自八个特色团队的幻灯片。这些材料旨在作为设计参考,而非对 KGMON 解决方案的逐步复现。

智能体的可靠性取决于模型及其 harness。二者必须共同支持可检查、可重复且有用的分析。

来源:NVIDIA Technical Blog:Agentic AI / Generative AI · developer.nvidia.com