自动化业务报告和分析的多代理方法
- Rifx.Online
- Programming , Technology , Data Science
- 24 Jan, 2025
想象一下,一个专注于抵押贷款领域的绩效营销公司,生成潜在客户并将其出售给金融机构。每种抵押贷款产品通过五个媒体渠道进行广告宣传——如社交媒体、搜索引擎和电子邮件——并进一步细分为5-7种子类型,例如Facebook、Instagram或Google Ads。这为每种产品创造了至少25个时间序列。将此乘以多个产品,您突然需要每天跟踪数百项指标。
现在考虑一个关键指标,比如潜在客户接受率——客户接受的潜在客户的百分比。在大量数据中,这个指标的逐渐下降可能会在几周内被忽视,导致利润损失和被动管理。不幸的是,延迟的异常检测和对手动分析的依赖使得许多组织面临这一常见挑战。
问题
在像绩效营销这样的快节奏行业中,快速检测和响应趋势、变更点或异常的能力对于保持竞争力至关重要。然而,手动处理过程缓慢、易出错且资源密集——使得组织容易错失机会。
解决方案
本文提出了一种解决方案:由大型语言模型(LLMs)驱动的多智能体工作流。为验证这一点,我开发了一个概念验证(POC),展示了LLM驱动的智能体如何模拟类人分析,快速提供见解和可操作的建议,以应对盈利指标的逐渐漂移。
多代理工作流的编排
在时间序列分析中,识别变更点——即基础数据分布发生变化的时刻——对于获得可操作的洞察至关重要。
图 1 通过一个关于领导接受率随时间变化的例子来说明这一点,突出显示了2024年8月29日的变更点,此时趋势发生了显著变化。
在这个概念验证(PoC)中,目标是为一个关键盈利指标提供准确的报告和分析:领导接受率——获得的潜在客户与成功销售给客户的比例。
工作流从一个在线变更点检测模块开始,该模块监控该指标在各个细分市场随时间的变化、趋势或漂移。为了简化分析,针对每个指标预定义的问题引导多代理系统,使其能够系统性地解决查询并提供可操作的洞察。
系统中的代理是任务特定的,设计用于执行诸如SQL查询、统计分析或上下文推理等操作。**多代理系统(MAS)**利用这些自主代理协同工作,朝着共同的目标努力——分解查询、检索数据和验证输出。下面的图 2 说明了这一工作流,展示了代理如何协作检测异常、分析数据并生成可操作的报告,同时进行人工监督。
以下是关于特定业务指标的示例时间序列元数据,该数据是通过在线变更点趋势检测模块在检测到变更点后构建的:
preset_questions = {
"Lead Accept Rate":{
"questions":["在变更点日期前后(2024-08-29)是否有任何宏观经济事件,例如利率上升或房地产市场变化,可以解释这一趋势?",
"变更点前后2个月的平均贷款金额是否有差异?这个差异在统计上显著吗?",
"与观察到的变更点相符的内部营销事件或活动有哪些?"],
"changepoint":"2024-08-29",
"Description":{"trend":"downward","slope":-0.02,"dt":"daily"},
}
}
工作流步骤
- 编排代理:
- 示例JSON负载发送给编排代理,编排代理分析变更点元数据和预定义问题,将其分解为下游代理的子任务。每个下游代理都接收明确、专注的指令,以解决特定问题。
- 编排代理还将其输出格式化为标准化的、易于人类阅读的结构,确保便于审计和审查。以下是编排代理生成的输出示例。
[{'question': '在变更点日期(2024-08-29)前后是否有任何宏观经济事件,例如利率上升或房地产市场变化,可以解释这一趋势?',
'assigned_agent': '宏观经济研究代理',
'instructions': '搜索在2024-08-29前后发生的宏观经济事件,例如利率上升、房地产市场趋势或重大经济政策。提供带有可信来源的发现摘要。'},
{'question': '变更点前后2个月的平均贷款金额是否有差异?这个差异在统计上显著吗?',
'assigned_agent': 'SQL分析代理',
'instructions': '编写SQL查询以检索2024-08-29前2个月(开始日期2024-06-29)和2024-08-29后2个月(结束日期2024-10-29)的平均贷款金额、标准差和样本大小。进行t检验,以确定前后均值的差异是否在统计上显著。'},
{'question': '与观察到的变更点相符的内部营销事件或活动有哪些?',
'assigned_agent': '内部知识代理',
'instructions': "查看公司的营销事件日历和内部文档,以识别在2024-08-29附近发生的任何活动、促销或事件。提供这些事件与观察到的趋势之间关系的见解。"}]
- 内部知识代理
- 检索存储在向量数据库中的历史数据、营销日历和内部文档。
- 使用**检索增强生成(RAG)**提供上下文相关的见解,进行因果分析,并生成迷你报告。
- 以下是内部知识代理在接收到编排代理的提示后输出的示例。
根据提供的相关数据,以下是关于2024年8月29日开始的领导接受率下降趋势潜在原因的一些见解:
2024年8月5日开始的XYZ A/B测试(事件17)可能吸引了质量较低的潜在客户,导致领导接受率下降。虽然这条信息可能帮助降低了每次咨询成本(CPI)和每个潜在客户成本(CPL),表明其与消费者产生了共鸣并推动了增加的数量,但这可能损害了潜在客户的质量。
2024年8月5日启动的XYZ活动(事件16)似乎也相关。该活动降低了CPL,表明潜在客户数量增加,但这些潜在客户的质量可能较低。
总之,从8月初到8月中旬的几项营销举措和活动似乎推动了潜在客户数量的增加,可能以牺牲潜在客户质量为代价,导致领导接受率的下降。进一步分析潜在客户质量指标和按活动细分的数据将有助于验证这一假设。
注意:为保护隐私,特定活动名称和事件已被隐去
- 数据查询和统计分析代理
该多代理框架的统计组件分为两个专业代理:数据查询代理和统计分析代理。
- 数据查询代理:根据公司数据库架构生成SQL查询,以检索分析所需的数据。它识别需要高级计算的任务,并将其委派给统计分析代理。例如,如果领导接受率显示出下降趋势,它通过生成和执行SQL查询(例如,通过Snowflake)检索相关指标(例如,潜在客户质量),并将数据与指令传递给统计分析代理。
- 为了改善SQL查询生成,像ReAct(推理与行动)这样的提示框架可以指导数据查询代理编写有效的查询。
- 统计分析代理:使用Python执行高级计算,例如假设检验或回归分析。这确保了数据检索和统计任务的高效和准确处理。
决定为LLMs配备SQL引擎或Python库等工具的原因源于Bubeck等人,2023的研究,这些研究强调虽然LLMs在自然语言任务中表现出色,但它们在算术和计算操作方面往往表现不佳。通过将工具使用集成到框架中,这些限制得以缓解,使代理能够在推理和执行方面都表现出色。
以下是提供给数据查询代理的人为ReAct提示示例:
在生成输出时执行以下推理步骤:
步骤1:考虑你可以执行的指令部分(仅执行与编写SQL查询相关的指令),并识别你需要路由到下游Python(统计分析)代理的内容
步骤2:识别任何需要进行下游统计检验的内容(例如,平均值、方差、样本大小)
步骤3:在生成SQL查询时,描述所需的列及其目的。
步骤4:识别包含这些列的表并解释你的推理。
步骤5:识别任何需要进行下游统计检验的内容(例如,平均值、方差、样本大小)
步骤6:解释需要关联表的连接条件。
步骤7:详细说明需要应用的日期过滤条件。
数据查询代理对ReAct提示的响应:
让我遵循推理步骤:
步骤1:
- 我可以编写SQL以获取贷款金额、平均值、标准差和计数
- 统计t检验需要由Python代理完成
步骤2:
进行t检验所需:
- 两个时期的平均贷款金额
- 两个时期的标准差
- 两个时期的样本大小
步骤3:
所需列:
- 来自表MARKETING_METRICS的LOAN_AMOUNT
- INQUIRY_CREATED_DATE用于区分时期
步骤4:
- MARKETING_METRICS包含所需的两个字段
步骤5:
每个时期的需求:
- AVG(LOAN_AMOUNT)
- STDDEV(LOAN_AMOUNT)
- COUNT(LOAN_AMOUNT)
以下是数据查询代理编写的SQL查询的示例结果,该查询被传递给统计分析代理,并附带下一步指令:
统计代理指令:
使用SQL查询的结果,进行独立的两样本t检验,以比较前后两个时期的贷款金额。首先,验证t检验的假设(正态性和方差齐性)。然后使用提供的均值、标准差和样本大小进行t检验。报告t统计量、p值,并解释在0.05显著性水平下两个时期之间是否存在统计显著差异。
PERIOD AVG_LOAN_AMT STDDEV_LOAN_AMT SAMPLE_SIZE
0 AFTER 134684.049047991722 164476.832452 1721151
1 BEFORE 129849.555096465853 167123.067246 1198507
- 统计代理从数据查询代理获取上述负载,并为统计分析编写Python代码。
以下是统计分析代理的示例输出:
我将帮助进行两样本t检验,使用提供的摘要统计数据。
以下是执行分析的Python代码:
import scipy.stats as stats
import math
摘要统计
before_mean = 129849.555096465853 after_mean = 134684.049047991722 before_std = 167123.067246 after_std = 164476.832452 before_n = 1198507 after_n = 1721151
计算标准误差
se1 = before_std2 / before_n se2 = after_std2 / after_n se = math.sqrt(se1 + se2)
计算 t 统计量
t_stat = (after_mean - before_mean) / se
计算自由度(使用Welch近似法)
df_num = (se1 + se2)2 df_denom = (se12 / (before_n - 1)) + (se2**2 / (after_n - 1)) df = df_num / df_denom
进行双侧t检验
p_value = 2 * (1 - stats.t.cdf(abs(t_stat), df))
print(f”t-statistic: {t_stat}”) print(f”p-value: {p_value}”) print(f”degrees of freedom: {df}”)
上述Python程序使用外部Python解释器执行,以下是结果
Python output:
...
t-statistic: 24.473557551742854
p-value: 0.0
degrees of freedom: 2552013.4597936384
4. 研究代理
- 收集外部数据,例如宏观经济趋势,并将其综合成简明的报告,附带引用。使用网络搜索工具如Tavily收集相关信息。以下是研究代理的一个示例输出:
根据近期的宏观经济数据和预测,2024年8月29日及其之后的几个事件可能解释了给定时间序列中的趋势。主要发现包括:
1. 利率信号与抵押贷款趋势:
○ 2024年8月29日,美联储发出可能在9月降息的信号,影响了市场预期和抵押贷款利率。这一预期可能影响了消费者信心和房地产市场活动。(来源:NAR房地产经纪人)
2. 房地产市场预测:
○ 预计美国房价将在美联储预期降息后适度上涨,这表明虽然预计会有利率变化,但住房可负担性仍然是一个问题。(来源:路透社)
3. 债券市场与经济波动:
○ 2024年8月29日,市场报告强调了债券市场的波动,表明利率下降与债券价格上涨之间存在关系。这一模式可能反映了影响金融市场的更广泛经济变化。(来源:摩根大通)
4. 美联储公告:
○ 截至2024年9月2日,美联储主席杰罗姆·鲍威尔表示降息的时机已经到来,进一步增强了进一步宽松的预期。(来源:YouTube - 美联储演讲)
5. 报告代理
综合来自研究代理、统计分析代理和机构知识代理的信息,创建详细和全面的报告。这包括以完整、结构良好的总结来回应原始请求。
以下是报告代理的一个示例报告:
'综合分析报告:
潜在接受率下降
分析日期:2024-08-29
趋势:每周下降2%
执行摘要:
根据来自多个来源的综合分析,自2024年8月29日起观察到的RKT接受率下降可归因于内部营销活动、宏观经济条件和贷款特征变化的组合。以下是针对每个调查领域的详细分析。
宏观经济影响分析:
主要发现:
- 美联储在2024年8月初维持5.4%的高利率(来源:YouTube - 美联储演讲)
- 抵押贷款利率维持在6.35%(较6.46%略有下降)
- 房地产市场面临持续挑战,住宅销售总量下降(来源:路透社)
影响评估:
- 高利率环境可能导致潜在借款人的资格审核更加严格,进而自然导致接受率降低。
- 贷款档案分析:
统计证据:
- 贷款金额发生显著变化(p-value ≈ 0)
- 平均贷款金额从$129,850增加到$134,684(增加$4,834)
- 大样本量(每组超过1M观察值)确认了可靠性
- 24.47的t统计量表明两个时期之间存在强烈分离
影响评估:
- 平均贷款金额的显著增加表明申请人群体发生了变化,
可能导致更严格的接受标准和较低的接受率
内部营销活动:
关键事件:
- 新的XYZ信息A/B测试(于8月5日开始)
- XYZ活动闪购影响自6月3日开始,至8月末进入漏斗
影响评估:
- 多个营销举措可能导致低质量线索的增加
- 低利率信息可能吸引了资格较低的申请人
- 闪购效果通常在接受指标上显示延迟影响
- 银行家连接测试中的线索路由变化可能影响了线索质量
结论:RKT接受率的下降似乎是多种因素共同作用的结果:
1. 挑战性的宏观经济条件造成了更严格的资格审核环境。
2. 贷款档案的显著变化表明申请人特征的变化
3. 多个营销举措可能导致低质量线索的生成
建议:
1. 审查营销信息,以更好地预筛选线索。
2. 考虑调整接受标准,以适应新的贷款金额分布。
3. 监测高利率对申请人质量的影响。
4. 评估闪购对线索质量的长期影响
本分析表明,下降可能不是由单一因素造成的,而是内部和外部因素汇聚在识别的变化点周围的组合。'
6. 评审代理
- 审查输出以识别缺失信息,确保所有问题都得到充分解答,并在必要时请求额外分析。
- 任何需要填补或改进的空白都将传回协调代理,触发反馈循环以完善结果。这个迭代过程将持续进行,直到输出符合所需标准或达到预定义的迭代限制。
- 这种迭代改进方法受到自我改进(Madaan等,2023)的启发,强调利用反馈持续改进输出的价值。然而,与依赖同一代理进行反馈和改进不同,该框架使用专门的评审代理引入多样化的视角来完善输出。
- 评审代理的示例输出:
问题覆盖分析:
1. 宏观经济事件问题:
✓ 已覆盖:利率、抵押贷款利率、房地产市场趋势
✓ 以具体数据点支持
2. 贷款金额分析问题:
✓ 已覆盖:变化点前后的平均贷款金额
✓ 确认统计显著性
✓ 提供样本量和t统计量
未发现空白
3. 内部营销事件问题:
✓ 已覆盖:识别多个营销事件
空白:缺乏关于每个营销事件影响的具体指标
需要采取的行动:请求协调代理让机构知识代理提供:
- 每个事件前后线索质量的定量数据
识别的其他空白:
1. 报告提到“低质量线索”,但没有定义用于衡量线索质量的指标
2. 没有在下降前的接受率基线比较
7**.** 返回协调代理
评审代理的输出被发送回协调代理,重新启动该过程。
以下是协调代理的一个示例输出,包含评审代理的后续请求。
{
"output": [
{
"question": "贵组织中定义线索质量的具体指标是什么?",
"assigned_agent": "机构知识代理",
"instructions": "检索内部文档或报告,定义用于衡量线索质量的关键绩效指标(KPI)。提供这些指标的详细列表以及其发展和使用的历史背景。"
},
{
"question": "提供每个提到的营销活动的线索质量变化的定量数据",
"assigned_agent": "机构知识代理",
"instructions": "分析内部记录,提取与2024-08-29的变化点相关的每个营销活动前、中和后的线索质量的定量指标。提供关于线索质量指标如何随时间演变的见解。"
},
{
"question": "接受率波动的历史背景是什么?",
"assigned_agent": "机构知识代理",
"instructions": "审查历史数据和内部记录,以识别过去3年接受率波动的趋势。突出显示下降或上升的关键时期,并提供可能导致这些变化的相关内部/外部事件的解释。"
}
]
}
人工参与
该框架旨在在工作流程的每个阶段都包含人工参与能力。每个代理都作为潜在的中断点,当代理的结果不令人满意时,允许人类进行干预。例如,在将结果传递给协调代理之前,人类可以审查和修改批评代理的输出。
这种方法确保了当自动决策不足时,人类的专业知识可以对过程进行细化和指导,为系统增加了一层额外的监督和灵活性。
主要要点:
将自主代理集成到工作流程中开启了一个新的可能性世界,多个自主代理的系统可以完全自动化重复任务。以下是此概念验证的一些关键要点。
机会
- 通过推理扩展知识: 自主代理可以在应用推理以获得上下文感知和知情输出的同时,持续扩展其知识库。
- 无缝工具集成: LLMs 在与外部工具的集成方面表现出色,能够生成和执行 SQL/Python 代码,并准确解释结果,减少幻觉风险。
- 优化提示工程: 像 ReACT(推理与行动)这样的技术确保高质量、特定任务的输出,以实现最佳代理性能。
- 更快的分析: 自动化显著缩短了与手动流程相比的周转时间,提高了效率。
- 可扩展的任务委派: 将计算任务外包给外部工具(如代码解释器)使代理能够专注于推理和解释,从而实现可扩展的工作流程。
- 简化的沟通: 基于 JSON 的消息传递增强了多代理协作中的一致性和可靠性。
障碍
- 对提示设计的依赖: 输出质量在很大程度上依赖于精心设计的提示和适当的上下文,需付出大量努力进行微调和标准化。糟糕的提示会导致糟糕的结果。
- 查询敏感性: 查询措辞的细微变化(例如,“检索”与“计算”)往往导致结果的不同。像 Self-Refine 或标准化查询模板这样的机制可以帮助减轻这些不一致性。
- 操作开销: 管理代理跟踪和存储大量通信数据增加了复杂性,突显了未来探索以改善可扩展性和可维护性的机会。
- 知识库维护: 虽然丰富的知识库增强了上下文和模型准确性,但需要人类分析师持续验证以确保数据保持准确。这引入了潜在的开销和操作复杂性。
总的来说,随着组织继续采用多代理系统,成功的关键在于平衡自动化与人工监督,利用两者的优势构建韧性和适应性强的工作流程。这一旅程才刚刚开始,展示了自主代理如何重新定义我们的工作、创新和解决复杂问题的方式。
参考文献
[1] P. Taejin, Enhancing Anomaly Detection in Financial Markets with an LLM-based Multi-Agent Framework (2024), arXiv
[2] Y. Shunyu, Z. Jeffrey, Y. Dian, D. Nan, S. Izhak, N. Karthik, C. Yan, ReAct: Synergizing Reasoning and Acting in Language Models (2022), arXiv
[3] M. Aman et al., Self-Refine: Iterative Refinement with Self-Feedback (2023), arXiv
[4] S. Timo, Toolformer: Language Models Can Teach Themselves to Use Tools (2023), arXiv
[5] Anthropic. (2024). Claude 2 [AI model]. Anthropic. https://www.anthropic.com/
[6] TAvily. (2025). Innovative Data Solutions. Retrieved from https://www.tavily.com.
特别感谢 Esteban Coronel 在本项目开发过程中提供的宝贵支持
#Multi-Agent-Systems #Artificial-Intelligence #BusinessAnalytics
本文发布在 Generative AI。请在 LinkedIn 上与我们联系,并关注 Zeniteq,以获取最新的 AI 资讯。
订阅我们的 newsletter 和 YouTube 频道,以获取生成 AI 的最新新闻和更新。让我们共同塑造 AI 的未来!