概述

本指南演示如何使用深度代理构建数据分析代理。数据分析任务通常需要多步骤推理、代码执行以及处理工件(如脚本、报告和图表),而深度代理正是为处理此类任务而设计的。 你将构建的代理能够:
  1. 接受CSV文件进行分析
  2. 通过可选启用的待办事项列表来规划和跟踪分析步骤
  3. 执行探索性数据分析并生成可视化图表
  4. 将结果分享至Slack频道
Slack集成是可选的。你可以修改代理,使其在本地保存工件或通过其他渠道分享结果。

核心概念

本教程涵盖:

设置

安装

安装核心依赖项:
pip

可选依赖项

在本教程中,我们将使用:
pip
这些服务是可选的,尽管对于任何生产环境使用,强烈建议使用沙盒化环境。你也可以选择使用本地shell后端(请注意重要的安全注意事项)或直接从后端下载工件。

LangSmith

使用LangChain构建的许多应用程序都包含多个步骤和多次LLM调用。随着这些应用程序变得越来越复杂,能够检查链或代理内部到底发生了什么变得至关重要。实现这一点的最佳方式是使用LangSmith。 在上面的链接注册后,请确保设置环境变量以开始记录跟踪信息:
或者,在Python中设置:

设置后端

深度代理使用后端在沙盒化环境中执行代码。 下面的示例使用LangSmith沙盒。如需了解其他提供商,请参阅可用提供商。

上传样本数据

创建并上传样本销售数据到后端:

实现自定义工具

数据分析任务可能会产生工件,如报告或图表。 下面的简单工具使用backend.download_files下载它们,然后使用Slack SDK上传。 我们也可以要求代理列出相关的文件路径而不是上传它们,以便相关方根据需要自行获取。
通常,避免在沙盒中添加凭据和其他机密信息是一个好习惯。在这里,我们在沙盒外通过一个工具管理Slack令牌。

启用任务规划

任务规划是可选启用的。数据分析通常涉及冗长、多步骤的工作,因此在创建代理时请传递TodoListMiddleware。这使代理拥有一个write_todos工具,用于跟踪探索性分析、可视化和分享步骤。
在下一节的create_deep_agent调用中包含此中间件。

运行代理

让我们实例化一个代理:
我们包含了: 现在让我们调用我们的代理。
查看本次执行的完整LangSmith跟踪记录。

结果

代理成功分析了数据,并将包含可视化图表的综合报告分享到了Slack:
Slack中的销售分析结果

代理生成的分析报告和可视化仪表板已发送至Slack

你可以直接从后端下载工件,无需使用外部工具:
完成操作后如何清理沙盒,请参阅提供商指南。

后续步骤

既然你已经构建了一个数据分析代理,可以探索以下资源来扩展其功能:
  • 后端:了解深度代理的后端系统
  • 沙盒:回顾用于沙盒化代码执行的后端,包括安全注意事项和高级配置
  • 自定义:探索如何使用不同的模型、工具、提示词和可选任务规划来定制你的代理
  • 代码:尝试将深度代理代码用作终端编码代理,以在本地协助数据分析和其他代理任务
  • 技能:为你的代理配备用于常见工作流的可复用技能
  • 人机协作:为数据分析工作流中的关键操作添加交互式审批步骤