数据工程智能体概览

借助 Data Engineering Agent,您可以使用自然语言提示在 BigQuery 中构建、修改数据流水线并排查其问题。数据工程代理提供以下功能,可简化数据工程工作流,以便将数据注入 BigQuery:

  • Dataform 集成:该智能体直接在 Dataform 代码库和工作区中生成和整理数据流水线代码。
  • 生成计划:智能体可以总结其思考过程并生成计划,以便您在继续操作之前查看和验证智能体的计划。
  • 代码验证:智能体会自动验证并修复任何生成代码的编译错误,以确保数据流水线正常运行。
  • 自动数据整理:代理会执行数据整理,并将原始数据转换为结构化表,无需人工干预。
  • 自定义指令:代理支持自定义代理指令,让您能够使用自然语言定义特定规则和可重复使用的准则。
  • 外部上下文:智能体与 Knowledge Catalog 集成,以获取更多上下文。
  • 流水线控制:您可以在执行任何操作之前查看和自定义生成的智能体计划。
  • 优化:智能体可以优化数据流水线的性能。
  • 问题排查和修复:智能体可以排查流水线故障并修复其代码。
  • 互动式建议:智能体在会话开始时和整个会话期间提供互动式、情境感知建议。
  • Knowledge Catalog 元数据丰富:智能体可以根据表配置自动生成 Knowledge Catalog 元数据,并在流水线执行期间将元数据发送到 Knowledge Catalog。

数据工程代理的适用范围

您可以通过以下方法使用数据工程代理:

数据工程代理如何使用您的数据

为了生成更高质量的智能体回答,数据工程智能体可以从 BigQuery 和 Knowledge Catalog 中检索更多数据和元数据,包括 BigQuery 表中的示例行以及 Knowledge Catalog 中生成的数据扫描分析。智能体不会将这些数据用于训练,而只会将其用作智能体对话期间的额外上下文,以便提供更准确的回答。

数据工程代理在何处处理您的数据

如需详细了解数据工程智能体处理数据的位置,请参阅 Gemini in BigQuery 处理数据的位置。

限制

数据工程智能体存在以下限制:

  • Data Engineering Agent 不支持对以下文件类型使用自然语言命令:
    • 笔记本
    • 数据准备
  • 数据工程代理无法执行流水线。您必须查看并运行或安排流水线。
  • 数据工程智能体无法搜索通过指令或直接提示提供的任何网页链接或网址。
  • 在智能体指令文件中导入文件时,@ 导入语法仅支持以 ./、/ 或字母开头的路径。
  • 仅当表、声明或查询的 hasOutput 标志设置为 true 时,才支持数据预览功能。
  • 数据工程代理受 AI 技术的一般限制的约束。
  • 在基于 Lakehouse 运行时目录(原 BigLake Metastore)管理的 Apache Iceberg 外部表创建流水线时,所有 Lakehouse 运行时目录限制均适用。最值得注意的是,智能体无法在 Iceberg 表上生成写入变更(例如 INSERT、UPDATE、DELETE 或 MERGE)或 DDL 语句(例如 CREATE TABLE 或 DROP TABLE)。如需了解详情,请参阅 Apache Iceberg REST 目录端点概念。

智能体功能和自定义

以下部分介绍了其他智能体功能以及自定义数据工程智能体的其他方法。

代理指令

代理指令是数据工程代理的自然语言指令,可让您存储永久性指令,以便代理遵循一组自定义的预定义规则。如果您希望智能体在整个组织中提供一致的结果(例如,遵循命名惯例或强制执行样式指南),请使用智能体指令。

如需为数据工程智能体创建智能体指令,请创建一个 GEMINI.MD 上下文文件作为智能体指令文件。

代理指令文件的最佳实践

使用代理指令时,我们建议您遵循以下做法:

  • Dataform 中的所有文件路径都相对于代码库的根目录。对任何 @file.md 语法使用相对路径,以便将指令正确导入 GEMINI.md。
  • 在 GEMINI.md 中导入的文件本身可以包含导入,这可以创建嵌套结构。为防止无限递归,GEMINI.md 的导入深度上限为 5 级。
  • 如需在数据流水线之间共享指令,请将指令存储在中央 Dataform 代码库中,并将其关联到工作 Dataform 代码库。您可以使用本地指令来覆盖中央规则,以实现特定于流水线的行为。
  • 为确保项目的一致性,您可以链接到命名规范文件或样式指南,并指示代理在处理数据流水线时遵循这些指南。
  • 您可以在指令文件中建议数据层,以便将不同类型的数据分组在一起。
  • 在智能体指令文件中使用标题和列表有助于为数据工程智能体整理和阐明指令。
  • 提供有意义的文件名,并将类似的指令分组到一个文件中。 使用 Markdown 标题,按类别、特性或功能对规则进行逻辑整理。
  • 为避免指令冲突,请明确定义每条指令适用的具体条件。
  • 迭代并优化提示和工作流程。智能体行为会随着智能体发布和模型升级而发生变化,因此我们建议您使用不同的提示对规则进行迭代,以找出可能需要改进的方面。确保规则文件与数据流水线的任何更改保持同步。

以下示例展示了一个名为 GEMINI.md 的智能体指令文件,该文件利用了我们的最佳实践,可有效使用数据工程智能体:

  ### Naming Conventions

  * Datasets: [business_domain]_[use_case] (e.g., ecommerce_sales)

  * Tables:
      - Raw/External: raw_[source_name]
      - Staging: stg_[business_entity]
      - Dimension: dim_[dimension_name]
      - Fact: fct_[fact_name]

  * Dataform folders:
      - sources
      - staging
      - marts
      - dataProducts

  * Views: vw_[view_name]

  * Columns: snake_case (e.g., order_id, customer_name)

  ## Cloud Storage data load
  * When ingesting data from Cloud Storage, create external tables.

  ## Null handling
  * Filter out null id values

  ## String normalization
  * Standardize string columns by converting to lower case

  ## Data cleaning guidelines
  @./generic_cleaning.md

导入其他本地文件作为代理指令

您还可以使用 @file.md 语法将数据工程代理的其他指令文件导入 GEMINI.md 文件。如需了解详情,请参阅记忆导入处理器。

自动数据整理

您可以使用 Data Engineering Agent 将未经处理的原始数据转换为适合数据分析的结构化表。收到请求后,代理首先会从每个标准表或外部表中最多抽取 1,000,000 条记录作为样本。然后,智能体会通过对此样本运行分析查询来执行深度数据分析。生成数据转换后,代理会重复此采样和分析过程,以评估转换的质量。这些数据整理转换可能包括修复数据不一致、离群值或类型不匹配问题。 然后,数据工程代理会创建一个方案,其中概述了建议的整理步骤,供您在执行任何操作之前进行审核和优化。

每当您添加原始表(例如基于 CSV 的外部表)时,数据工程代理也会启动数据整理分析。您可以查看数据整理计划,并使用对话式命令进行调整。

数据抽样和分析会使用 BigQuery 资源,并遵循 BigQuery 价格。

Data Engineering Agent 支持以下数据整理转换:

  • 数据清理。智能体可以分析原始数据并建议清理机会,例如移除离群值、填充缺失或不一致的值(数据插补)、修复重复数据或标准化数据格式(例如手机号码或地址)。
  • 结构转换。提供目标架构后,代理可以从 JSON、ARRAY 或 STRUCT 类型中取消嵌套或提取值;将多个列合并为一个列;或将一个列拆分为多个列。
  • 数据类型检测和转换。代理可以分析数据,以确定适当的字段类型。然后,智能体可以执行安全类型转换,以解决日期、时间、日期时间或时间戳字段中的任何格式不一致问题。
  • 单位换算。该智能体可以自动将字段内的各种单位转换为一个一致的单位,以标准化您的数据。

为确保准确性,代理会使用数据的代表性样本来检测问题并验证其转换逻辑。

生成并查看代理计划

数据工程代理可以生成代理计划,其中提供完成请求所需的目标和步骤的摘要和概览。当您向代理发出需要进行多项更改的复杂请求时,我们建议您让代理为您提供代理计划,以便您在代理采取任何行动之前审核其意图。数据工程代理方案通常包含以下内容:

  • 智能体针对特定请求的目标
  • 智能体计划采取的步骤的简要概览
  • 智能体做出的任何假设
  • 代理计划修改的文件
  • 计划执行的所有优化或清理步骤
  • 分阶段执行计划

在提示中,您可以说明需要审核并批准方案,这样,在未经您明确批准的情况下,代理就不会采取任何行动。例如:

Create a plan for a pipeline that finds the
top N pick up and drop off locations in NYC. I want to review the plan and
approve it before you create the pipeline.

智能体可能还会自动生成智能体计划并请求您批准。如果提示过于模糊,或者代理需要更明确的信息才能满足您的请求,就可能会出现这种情况。

如需了解有关使用智能体方案的最佳实践,请参阅最佳实践。

从 Knowledge Catalog 添加上下文

数据工程智能体通过将术语表中的术语附加到 BigQuery 表和列,并生成数据分析扫描,来使用 Knowledge Catalog。词汇表术语可以标记需要额外上下文的列,例如包含需要特殊处理说明的个人身份信息 (PII) 的列,或用于标识跨表具有不同命名的匹配列。

Knowledge Catalog 还利用数据分析,让智能体更好地了解表列中的数据分布,并帮助智能体创建更具体的数据质量断言。

智能体还可以使用 Knowledge Catalog 来发现和查询 Apache Iceberg 表。如需了解详情,请参阅通过 Apache Iceberg 表创建流水线。

向现有表添加数据质量检查

当您提示代理添加质量检查时,代理会根据架构和示例推断表的合理检查。您还可以在提示中添加主观断言。例如:

  Add data quality checks for bigquery-public-data.thelook_ecommerce.users.

在流水线执行期间,任何 Dataform 断言的结果都会自动发布到 Knowledge Catalog。这些结果会填充 Knowledge Catalog 数据质量记分卡,并显示通过或未通过状态。每次执行都会覆盖之前 Dataform 运行发布的数据质量记分卡,但不会影响 Knowledge Catalog 数据扫描创建的记分卡。

生成架构映射

您可以提示数据工程智能体在源架构和目标架构之间生成架构映射:

  Create a Dataform pipeline to map the tables from schema
  SOURCE_SCHEMA to schema TARGET_SCHEMA. Give me the plan.

替换以下内容:

  • SOURCE_SCHEMA:源表的架构名称。
  • TARGET_SCHEMA:目标表的架构名称。

然后,智能体会通过执行以下操作来生成方案:

  • 锚点表选择:确定每个目标表的主源表。
  • 联接图优化:将联接路径直接与属性图边缘定义对齐,避免笛卡尔爆炸和类型不匹配。
  • 字段级差距分析:将每个映射分类为映射类型(Direct、Derived、Joined 或 Aggregated),然后验证 NOT NULL 和 REQUIRED 约束条件完整性。

在查看方案并确认映射逻辑后,您可以提示智能体根据该架构映射创建流水线。

使用 BigQuery Graph 进行架构映射

如果您的项目中有 BigQuery Graph,智能体会自动检测并读取它,以提供额外的上下文并提高架构映射准确性。该智能体可以读取 BigQuery Graph,以了解源表和目标表之间的语义关系,从而生成更准确的映射,并减少迁移或转换复杂数据集时的人工干预。当您提示代理生成架构映射时,代理会自动扫描您的数据集,并在存在相关图时使用 BigQuery Graph。

如需详细了解 BigQuery Graph 功能、版本和价格,请参阅 BigQuery Graph 概览。如需详细了解访问权限控制和创建 BigQuery Graph,请参阅创建和查询 BigQuery Graph。

Google 云端硬盘集成

数据工程代理可以读取和加载 Google 云端硬盘中的文件,以便将其纳入数据流水线。向智能体发出提示时,请提供指向云端硬盘中文件的链接,并在系统提示时向智能体授予对云端硬盘的 OAuth 访问权限。该智能体能够读取提供的文件,并创建一个外部表来读取实时云端硬盘文件,然后通过 Dataform 流水线查询加载该文件。如需为外部表启用云端硬盘访问权限,请参阅进行身份验证并启用云端硬盘访问权限。

该代理支持云端硬盘中的以下文件类型:

  • CSV
  • Google 表格
  • JSONL(以换行符分隔的 JSON)

自动数据丰富化

BigQuery 中的标准元数据(例如数据集、表和视图)会自动在 Knowledge Catalog 中提供。

您还可以直接在 .sqlx 文件的配置块中为表和视图定义自定义元数据。成功完成操作后,Dataform 会自动启动与 Knowledge Catalog 的元数据同步。此丰富过程会使用 SQLX 配置中定义的语义元数据更新 Knowledge Catalog。

使用元数据键为 Knowledge Catalog 指定信息。丰富流程支持以下元数据结构:

  • 概览:条目的文档和摘要文本。需要 Dataform 核心版本 3.0.37 或更高版本。
  • 通用切面:语义详细信息,例如表系统和类型信息。需要 Dataform 核心 3.0.52 版或更高版本。

以下示例配置展示了如何向 Knowledge Catalog 的表配置添加概览和通用元数据切面:

config {
  type: "table",
  metadata: {
    overview: "This table provides standardized trip data.",
    extraProperties: {
        generic: {
              system: "BigQuery",
              type: "table"
        }
      }
  }
}

如需查看元数据更新的状态,请参阅检查工作区执行日志(适用于 Dataform 工作流)或查看过去的手动运行(适用于 BigQuery 流水线)。

如需验证同步的元数据,您可以在 Knowledge Catalog 中搜索相应资产。如需了解详情,请参阅搜索资源。

优化数据流水线

您可以提示代理优化数据流水线。为新表生成 DDL 时,数据工程智能体会根据分析的数据使用模式推荐分区和聚簇。此外,代理还可以自动应用其他流水线优化。可能的优化示例包括:

  • 列剪枝可减少从存储中读取的数据,从而降低成本并提升性能。
  • 谓词下推可在执行计划的早期阶段过滤数据,从而显著减少后续操作处理的数据量。
  • 消除常见子表达式,通过仅识别和计算一次共享转换逻辑来提高效率,从而防止多次扫描和联接大型表等低效做法。
  • 增量模型,仅处理自上次运行以来新增或更改的数据,而不是在每次运行时重建整个表。

基于 Apache Iceberg 表创建流水线

数据工程智能体支持在由 Lakehouse 运行时目录(原 BigLake Metastore)管理的 Apache Iceberg 表上生成和编译 Dataform 流水线。借助此功能,您可以直接查询区域级开源格式表(存储在 Cloud Storage 中),并将其与 BigQuery 表联接。如需了解详情,请参阅 Apache Iceberg REST 目录端点概念。

例如,您可以提示智能体查询 Lakehouse 运行时目录中的 Apache Iceberg 表:

Include the stackoverflow_post_history_iceberg table in this pipeline.

在提示中,您无需指定完全限定的四部分路径,例如 project.catalog.dataset.table。您可以使用标准自然语言名称或逻辑标识符(例如 the StackOverflow post history table 或 post_history)来引用 Apache Iceberg 表。智能体会自动使用 Knowledge Catalog 调用语义目录搜索,以解析正确的 Apache Iceberg 表并将其绑定到您的流水线工作区。

如需使用此功能,您的 Dataform 代码库必须使用 Dataform Core 3.0.33 或更高版本。

互动式推荐

数据工程智能体可分析您的工作区编译状态、执行历史记录和活跃对话状态,直接在聊天界面中提供切实可行的建议。当您打开工作区时,以及在整个会话期间,这些建议会自动显示,为您提供设置、问题排查和优化方面的建议,以指导您的工作流程。

如需使用建议,请点击 AI 建议下的某个建议,这会将提示加载到对话输入栏中,您可以在将其发送给代理之前进行修改或自定义。您也可以将鼠标悬停在某条建议上,查看确切的提示。

最佳做法

为了在使用 Data Engineering Agent 和 Dataform 时获得更好的结果,我们建议您执行以下操作:

使用代理指令处理常见请求。如果您经常应用某些技巧,或者经常对代理进行相同的更正,请使用代理指令作为集中位置来存储常见指令和请求。

利用智能体计划。智能体计划有助于分解复杂的流水线任务。智能体方案还可以显示智能体假设和意图,因此我们建议您查看这些方案,以确保为智能体提供正确的上下文。

查看方案后,您可以向 Data Engineering Agent 提供反馈和更改,从而修改方案。例如:

In the plan, ensure that all of the intermediate tables are views.

在某些情况下,让智能体生成不需要您明确批准的方案会很有帮助。让智能体制定计划的行为会迫使数据工程智能体分解其操作,这通常会带来更好的结果。您可以强制智能体生成计划并自动执行。例如:

Create a plan for a pipeline that finds the
top N pick up and drop off locations in NYC. You have my explicit pre-approval
to go ahead and execute this plan.

撰写清晰的提示。清楚地陈述您的请求,避免含糊不清。在提示中,请尽可能提供源数据源和目标数据源,如以下示例所示:

  Extract data from the sales.customers table in the us_west_1 region, and load
  it into the reporting.dim_customers table in BigQuery. Match the schema of the
  destination table.

提供直接且限定范围的请求。一次只问一个问题,并使提示简洁明了。对于包含多个问题的提示,请将问题的每个不同部分列出来,以提高清晰度,如以下示例所示:

  1. Create a new table named staging.events_cleaned. Use raw.events as the
     source. This new table should filter out any records where the user_agent
     matches the pattern '%bot%'. All original columns should be included.

  2. Next, create a table named analytics.user_sessions. Use
     staging.events_cleaned as the source. This table should calculate the
     duration for each session by grouping by session_id and finding the
     difference between the MAX(event_timestamp) and MIN(event_timestamp).

提供明确的指令并强调关键术语。您可以在提示中强调关键术语或概念,并将某些要求标记为重要,如以下示例所示:

  When creating the staging.customers table, it is *VERY IMPORTANT* that you
  transform the email column from the source table bronze.raw_customers.
  Coalesce any NULL values in the email column to an empty string ''.

指定操作顺序。对于有序任务,请以列表形式构建提示,其中列出的项分为多个小而集中的步骤,如以下示例所示:

  Create a pipeline with the following steps:
  1. Extract data from the ecomm.orders table.
  2. Join the extracted data with the marts.customers table on customer_id.
  3. Load the final result into the reporting.customer_orders table.

优化和迭代。不断尝试不同的措辞和方法,看看哪种效果最好。如果代理生成了无效的 SQL 或出现其他错误,请使用示例或公开文档引导代理。

  The previous query was incorrect because it removed the timestamp. Please
  correct the SQL. Use the TIMESTAMP_TRUNC function to truncate the
  event_timestamp to the nearest hour, instead of casting it as a DATE. For
  example: TIMESTAMP_TRUNC(event_timestamp, HOUR).

评估数据流水线

如需评估数据工程智能体生成的数据流水线的有效性,请使用 EvalBench 工具。EvalBench 是一个支持多轮智能体评估的开源框架。EvalBench 充当自动化单元测试套件,可让您设置多轮场景、添加由 LLM 支持的确定性评分器,以及管理 Dataform 流水线的生命周期。

EvalBench 通过在隔离的沙盒中模拟自然语言提示,衡量智能体理解指令、调用正确工具和生成正确流水线代码的效果。EvalBench 可以通过执行以下操作来检查数据流水线:

  • 验证自定义规则:验证代理是否严格遵循组织的特定编码准则、命名惯例和最佳实践。
  • 防止代码回归:在部署前测试流水线更改,确保智能体更新或架构修改不会破坏现有功能。
  • 生成质量基准:获取有关 SQL 正确性、工具执行准确性和流水线可靠性的客观、自动化评分。

运行数据流水线评估

您可以在以下两种模式下运行 EvalBench:

  • 动态沙盒:EvalBench 会在评估运行开始时预配一个全新的临时 Dataform 代码库和工作区,执行测试场景,并在完成后自动销毁所有创建的资源。此模式不会修改任何生产代码、生产代码库或 BigQuery 数据集,也不会在 Google Cloud 项目中留下任何残留工件。动态沙盒模式适用于自动化 CI/CD 流水线、夜间回归测试以及需要严格环境隔离的客观基准评分。

  • 静态工作区:EvalBench 连接到预先存在的、由用户管理的 Dataform 代码库和工作区,并跳过自动创建和删除脚本。在此模式下,接受评估的智能体可以在处理评估用例时,在现有工作区中修改和创建新的 SQLX 文件。静态工作区模式适用于主动提示词工程、评分准则迭代和本地调试,在这些场景中,您需要在执行后直接在 Dataform 工作区中检查生成的 SQLX 文件。

准备工作

如需获得运行 EvalBench 所需的权限,请让管理员为您授予运行 EvalBench 的服务账号或用户身份的以下 IAM 角色:

如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。

您也可以通过自定义角色或其他预定义角色来获取所需的权限。

在动态沙盒中运行评估

如需在动态沙盒模式下评估数据流水线,请执行以下操作:

  1. 按照以下步骤克隆代码库、设置虚拟环境并安装所有 EvalBench 依赖项。如需了解详情,请参阅使用入门。
  2. 在 datasets/dea-tools/ 目录中,验证示例运行配置 (example_run_config.yaml) 文件是否包含以下行:

    set_up_script: datasets/dea-tools/scripts/setup_dataform.sh
    tear_down_script: datasets/dea-tools/scripts/teardown_dataform.sh
  3. 使用以下命令运行 EvalBench:

    EVAL_GCP_PROJECT_ID=PROJECT_ID \
    EVAL_GCP_PROJECT_REGION=REGION \
    .venv/bin/python3 evalbench/evalbench.py --experiment_config=datasets/dea-tools/example_run_config.yaml

    替换以下内容:

    • PROJECT_ID: Google Cloud项目的 ID。
    • REGION: Google Cloud项目的区域。

在静态评估工作区中运行评估

如需在静态工作区模式下评估数据流水线,请执行以下操作:

  1. 按照相应步骤克隆代码库、设置虚拟环境并安装所有依赖项。如需了解详情,请参阅使用入门。
  2. 在 datasets/dea-tools/ 目录中,修改示例运行配置 (example_run_config.yaml) 文件,注释掉 set_up_script 和 tear_down_script 行,并添加 dataform_repository 和 dataform_workspace 配置:

    ...
    # set_up_script: datasets/dea-tools/scripts/setup_dataform.sh
    # tear_down_script: datasets/dea-tools/scripts/teardown_dataform.sh
    dataform_repository: !ENV ${EVAL_DEA_REPOSITORY_ID}
    dataform_workspace: !ENV ${EVAL_DEA_WORKSPACE_ID}
    ...
  3. 使用以下命令运行 EvalBench:

    EVAL_GCP_PROJECT_ID=PROJECT_ID \
    EVAL_GCP_PROJECT_REGION=REGION \
      EVAL_DEA_REPOSITORY_ID=REPOSITORY_ID \
      EVAL_DEA_WORKSPACE_ID=WORKSPACE_ID \
      .venv/bin/python3 evalbench/evalbench.py --experiment_config=datasets/dea-tools/example_run_config.yaml

    替换以下内容:

    • PROJECT_ID: Google Cloud项目的 ID。
    • REGION: Google Cloud项目的区域。
    • REPOSITORY_ID:包含数据流水线的代码库的 ID。
    • WORKSPACE_ID:包含数据流水线的工作区的 ID。
  4. 可选:您还可以使用 core_10_cases_suite.yaml 运行 EvalBench,通过为每个测试用例创建一个新代码库,在环境隔离的情况下,针对 10 个核心评估用例依序测试数据流水线。为此,请运行以下命令:

    EVAL_GCP_PROJECT_ID=PROJECT_ID \
    EVAL_GCP_PROJECT_REGION=REGION \
    .venv/bin/python3 evalbench/evalbench.py --suite_config=datasets/dea-tools/core_10_cases_suite.yaml

数据流水线评估最佳实践

为了提高使用 EvalBench 进行数据流水线评估的性能和准确性,我们建议您执行以下操作:

  • 在评估日志中查找 Dataform 工作流调用和 BigQuery 作业 ID。使用这些 ID 可在 Google Cloud 控制台中交叉对比和检查生成的执行工件、编译结果和查询日志。
  • 在发布模型或提示更改之前,请务必运行核心评估套件 (--suite_config),以确保在各种数据工程场景中实现全面的回归覆盖。
  • 使用 EVAL_DATAFORM_SETUP_ENV_FILES_DIR 将环境设置文件(例如 workflow_settings.yaml 和基本架构定义)预加载到测试工作区中。这些设置文件可确保智能体基于真实的现有环境(而非空工作区)进行构建。
  • 在动态沙盒模式下排查失败的评估用例时,请在运行配置中注释掉 tear_down_script,以保留目标工作区进行事后分析。
  • 始终将云端编译和执行验证器(dataform_cloud_compile、dataform_cloud_run)与基于 LLM 的二元评分标准搭配使用,以识别语法或运行时错误以及高级逻辑缺陷。
  • 启用 BigQuery 报告 (<PROJECT_ID>.evalbench.results),并使用生成的数据洞察链接跟踪一段时间内的通过率、工具使用准确率和提示效率。