本指南提供了 DaytonaDataAnalysisTool 的快速入门概览。
功能特性
🔒 安全沙箱执行 - 在隔离环境中运行 Python 代码
🐍 Python 数据分析 - 利用完整的 Python 能力执行数据分析任务
📁 文件管理 - 向沙箱上传或从沙箱下载文件
🔄 多步骤工作流 - 支持复杂的多步骤数据分析流程
🎯 自定义结果处理 - 使用回调函数处理执行结果
📦 包管理 - 在沙箱中动态安装 Python 包
安装配置
要访问 DaytonaDataAnalysisTool,您需要创建 Daytona 账户 ,获取 API 密钥 ,并安装 langchain-daytona-data-analysis 集成包。
凭证配置
您必须为 Daytona 配置凭证,可通过以下三种方式之一完成:
1. 设置 DAYTONA_API_KEY 环境变量:
export DAYTONA_API_KEY = "your-daytona-api-key"
2. 在项目根目录的 .env 文件中添加:
DAYTONA_API_KEY=your-daytona-api-key
3. 在实例化 DaytonaDataAnalysisTool 时直接传入 API 密钥:
tool = DaytonaDataAnalysisTool ( daytona_api_key = "your-daytona-api-key" )
同时建议(但非必须)配置 LangSmith,以获得最佳的可观测性/追踪 功能。要启用自动追踪,请设置您的 LangSmith API 密钥:
os . environ [ " LANGSMITH_API_KEY " ] = getpass . getpass ( "Enter your LangSmith API key: " )
os . environ [ " LANGSMITH_TRACING " ] = "true"
DaytonaDataAnalysisTool 位于 langchain-daytona-data-analysis 包中:
从 PyPI 安装
直接从 PyPI 安装该包:
pip install langchain-daytona-data-analysis
从 GitHub 安装
从 GitHub 安装最新开发版本:
pip install git+https://github.com/daytonaio/langchain_daytona_data_analysis
实例化
导入并实例化工具:
from langchain_daytona_data_analysis import DaytonaDataAnalysisTool
from daytona import ExecutionArtifacts
# Optionally, you can pass an on_result callback.
# This callback lets you apply custom logic to the data analysis result.
# For example, you can save outputs, display charts, or trigger other actions.
def process_data_analysis_result ( result : ExecutionArtifacts ):
print ( result )
tool = DaytonaDataAnalysisTool (
daytona_api_key = "your-daytona-api-key" , # Only pass if not set as DAYTONA_API_KEY environment variable
on_result = process_data_analysis_result
)
直接调用
tool . invoke ({ 'data_analysis_python_code' : "print('Hello World')" })
model_generated_tool_call = {
"args" : { 'data_analysis_python_code' : "print('Hello World')" },
"id" : "1" ,
"name" : tool . name ,
"type" : "tool_call" ,
}
tool . invoke ( model_generated_tool_call )
在 agent 中使用
from langchain . agents import create_agent
from langchain_anthropic import ChatAnthropic
model = ChatAnthropic (
model_name = "claude-haiku-4-5-20251001" ,
temperature = 0 ,
max_tokens_to_sample = 1024 ,
timeout = None ,
max_retries = 2 ,
stop = None
)
agent = create_agent ( model , tools = [ tool ])
附加功能
DaytonaDataAnalysisTool 提供了多种用于管理文件和沙箱环境的方法:
文件管理
向沙箱上传文件:
with open ( "sales_data.csv" , "rb" ) as f :
uploaded = tool . upload_file (
f ,
"CSV file containing sales data with columns: id, date, product, revenue"
)
从沙箱下载文件:
file_bytes = tool . download_file ( "/home/daytona/results.csv" )
删除已上传的文件:
tool . remove_uploaded_file ( uploaded )
包管理
在沙箱中安装 Python 包:
# Single package
tool . install_python_packages ( "pandas" )
# Multiple packages
tool . install_python_packages ([ "numpy" , "matplotlib" , "seaborn" ])
沙箱管理
访问沙箱实例:
sandbox = tool . get_sandbox ()
完成后关闭沙箱:
tool . close () # Cleans up resources and deletes the sandbox
当您完成所有数据分析任务后,请调用 tool.close() 以正确释放资源,避免不必要的资源占用。
API 参考
有关 DaytonaDataAnalysisTool 所有功能和配置的详细文档,请访问 API 参考 。
将这些文档连接 到 Claude、VSCode 等,通过 MCP 获取实时答案。