采用迭代过程来改进数据代理

优化数据代理不是一次性设置-它是一个持续、迭代的过程,涉及试验、观察和优化。

本文概述了帮助你开始改进数据代理的最佳做法,但必须认识到每个数据环境和用例都是独一无二的。 你可能会发现某些类型的说明、示例或格式对特定数据集更好,或者需要其他上下文来帮助代理更准确地解释用户问题。 评估响应时,预期会经历试验和错误周期 — 修改代理指令、扩展基准集或调整示例查询,以解决混淆或提高准确性。 随着时间的推移,此过程将有助于揭示一些不太明显的逻辑、架构对齐或查询措辞上的差距。 关键是将数据代理视为一个不断发展的系统,它通过常规测试、反馈和迭代进行改进,而不是一次静态配置集,并且被遗忘。

步骤 1:从基准集开始

从示例的初始基准开始,指导代理配置并评估性能。 使用以下格式:

问题 预期查询 预期答案
人力资源团队中有多少名员工? SELECT COUNT(*) FROM EmployeeDim WHERE DepartmentName = 'HR' 二十五
营销的平均工资是多少? SELECT AVG(工资) FROM 员工薪酬 WHERE 部门 = '市场营销' $85,000
哪些产品上个月有销售额? 选择 ProductName 来自 Sales WHERE SaleDate >= '2024-05-01' [产品 A、产品 B]

可以在文章中详细了解如何评估代理: 如何评估数据代理

可以不断扩展基准集,以增加你期望代理处理的用户问题类型的覆盖范围。

步骤 2:诊断不正确的响应

当数据代理返回错误或欠佳的结果时,请花时间分析原因。 确定正确的故障点有助于对说明、示例或查询逻辑进行有针对性的改进。

在评审过程中提出以下问题:

  • 缺少必要的解释或指示吗?
  • 指令太模糊、不清楚或误导了吗?
  • 示例查询不准确或不代表用户问题?
  • 给定架构中的结构或命名,用户问题是否模糊?
  • 值的格式是否不一致(例如 "ca""CA" vs. "Ca"),使得代理难以正确应用筛选器?

其中每个问题都可能会影响代理解释意向和生成准确的查询的能力。 尽早识别它们有助于在后续步骤中指导更有效的优化。

步骤 3:使用更清晰的智能体指令指导更好的推理

如果代理始终选择错误的数据源、错误解释用户意图或返回格式不佳的答案,则表示 代理级指令 需要优化。 使用这些说明来指导代理思考问题、选择数据源,并设置响应格式。

在迭代代理指令中:

  • 阐明数据源使用情况: 指定要用于特定类型问题以及优先级顺序的数据源。 如果某些源只应在特定上下文中使用,请明确说明。
  • 定义预期的响应行为: 为语气、结构和细节级别设置预期。 指示响应是否应简洁摘要、包括表格输出或提供行级详细信息。
  • 指导代理的推理步骤: 提供代理在解释问题时应遵循的逻辑框架,例如重新标记问题、识别相关术语或基于主题选择工具。
  • 解释术语: 包括不明确、特定于业务或通常误解的术语的定义或映射,以便代理可以更准确地解释用户问题。

随着时间的推移,改进这些说明有助于代理在每个步骤中做出更好的决策,从问题解释到查询执行和最终响应格式。

步骤 4:通过更好的数据源说明改进架构理解

使用来自故障分析的见解来持续改进 数据源说明。 查找多个错误响应中的模式,以确定代理在何处可能误解意图、难以理解架构或无法应用正确的查询逻辑。

通过专注以下几个方面来更新配置:

  • 阐明筛选器用法: 显式描述何时以及如何在指令中应用筛选器。 例如,指定筛选器是否应使用完全匹配、范围或模式匹配。
  • 添加典型值示例:通过提供示例值和预期格式(例如"CA""MA""NY"状态缩写或"Q1 FY25"会计季度),帮助代理了解如何正确筛选。
  • 强化一致性: 确保跨指令和示例一致地应用术语、格式设置和措辞。 避免使用大小写混合、缩写或备用标签来表示同一概念。
  • 根据不断发展的架构或业务规则进行更新: 如果在数据源中引入了新表、列或逻辑,请调整说明和示例以反映这些更改。

循环访问这些详细信息可确保代理与不断发展的数据和业务上下文保持一致,并随着时间的推移产生更准确、更可靠的响应。

步骤 5:使用目标示例指导准确的查询生成

示例查询在帮助代理通用化和生成准确的响应方面发挥了关键作用,尤其是对于涉及联接、筛选和复杂逻辑的问题。 如果数据代理返回不正确的查询,请重新访问并优化示例,以更好地说明预期的结构和逻辑。

重点介绍以下改进:

  • 阐明联接逻辑: 如果代理生成不正确的联接,请包含显式演示如何联接相关表的示例查询(例如联接键、联接类型)。
  • 正确的筛选器模式: 显示应如何针对特定列应用筛选器,包括任何格式详细信息(例如, LIKE '%keyword%'日期范围或大小写要求)。
  • 指定预期输出: 明确代理应针对不同类型的问题返回哪些列。 这有助于引导生成的查询的结构和焦点。
  • 优化模糊或重载的示例: 将泛型或过于广泛的示例分解为反映特定用户意向的更有针对性的查询。
  • 确保与当前说明和架构保持一致:确保示例与最新的架构、业务规则或指令格式的更改保持同步。

通过根据观察到的问题改进和扩展示例查询,可以向代理提供更强大的参考点来生成准确且上下文感知的响应。

步骤 6:解决加入问题

联接逻辑是查询生成中常见的失败源。 当数据代理因联接错误返回错误或不完整的结果时,需要提供更清晰的结构指南和示例,以帮助代理了解数据的相关方式。

若要提高联接准确性,请:

  • 清楚地记录联接关系: 指定哪些表相关、用于联接的键(例如 EmployeeID,) ProductKey和关系的方向(例如一对多)。 在相关数据源说明中包含本指南。
  • 在查询中包含联接示例: 添加显式演示最常见或复杂关系的正确联接行为的示例查询。
  • 阐明联接表所需的列: 指示应从哪个表中检索哪些字段,尤其是在多个源中存在类似的列名时。
  • 在必要时简化: 如果所需的联接过于复杂或容易出错,请考虑将结构平展为单个非规范化表,以减少歧义并提高可靠性。

在说明和示例中正确定义联接逻辑有助于代理了解如何导航数据结构并返回完整的准确答案。

后续步骤