OpenDsStar
2026/7/19 13:18:29 · 更新于 2026/7/19 13:21:43 · 来源
DS-STAR 简介,这是 Google Research 多功能数据科学智能体的开源实现,它通过协调专业的 LLM 智能体来自动执行复杂的数据分析、规划和执行任务。
DS-STAR(Data Science - Structured Thought and Action,即“数据科学 - 结构化思考与行动”)是一个开源的、基于 Python 的智能体(agentic)框架,旨在完全自动化复杂的数据科学任务。该框架基于谷歌研究(Google Research)的论文 [[DS-STAR]]: A State-of-the-Art Versatile Data Science Agent,它协调了一个由专业 AI 智能体组成的协作网络,用以分析数据、生成代码并迭代优化解决方案,从而回答用户的查询。
DS-Star GitHub 项目概述
核心功能
- 智能体工作流:实现了一个由专业 AI 智能体(分析器 Analyzer、规划器 Planner、编码器 Coder、验证器 Verifier、路由程序 Router、调试器 Debugger 和终结器 Finalyzer)协同工作的流水线,以解决复杂的数据科学任务。
- 完全可复现性:执行的每个阶段都保存在本地——包括提示词、生成的 Python 代码、执行结果和元数据——从而实现完全的可审计性。
- 交互式与可恢复性:执行运行可以暂停和恢复。交互模式允许在进入下一阶段之前进行人机协同的逐步评估。
- 代码编辑与调试:允许用户在运行期间手动编辑生成的 Python 代码,并配有自动调试智能体以动态解决代码执行错误。
- 配置驱动:项目配置、模型参数和全局运行配置可通过集中的
config.yaml文件轻松管理。
DS-STAR 的工作原理
DS-STAR 流水线主要分三个阶段执行:
- 分析:Analyzer(分析器)智能体检查初始数据集文件(例如 CSV、Excel)并生成描述性摘要。
- 迭代规划与执行:
- Planner(规划器)创建初始的逐步计划以回答用户的提示。
- Coder(编码器)生成 Python 代码以执行该计划的当前步骤。
- 系统运行生成的代码并捕获输出。
- 如果代码运行失败,自动 Debugger(调试器)智能体尝试修复逻辑和语法错误。
- Verifier(验证器)检查执行结果是否充分回答了目标查询。
- Router(路由程序)决定下一步:要么结束工作流,要么循环返回以添加优化步骤。该循环将持续运行,直到计划完成或达到最大优化轮数限制。
- 终结:Finalyzer(终结器)接收最终的代码执行结果,并将其打包成整洁、指定的输出结构(如 JSON)。
运行期间生成的所有构件都会使用唯一的 run_id 结构化地保存在 runs/ 目录下。
项目结构
/
├─── dsstar.py # Main script containing the agent logic and CLI
├─── config.yaml # Main configuration file
├─── prompt.yaml # Prompts for the different AI agents
├─── pyproject.toml # Project metadata and dependencies (uv format)
├─── uv.lock # Locked dependency versions for reproducibility
├─── .python-version # Python version specification for uv
├─── data/ # Directory for your data files
└─── runs/ # Directory where all experiment runs and artifacts are stored
快速入门
前提条件
- Python 3.11+
- 谷歌 Gemini 模型(或其他受支持的提供商)的 API 密钥
- uv 包管理器(推荐用于快速解析依赖关系)
安装
要在本地使用 uv 设置项目:
# Clone the repository
git clone https://github.com/JulesLscx/DS-Star.git
cd DS-Star
# Install uv (if not already installed)
curl -LsSf https://astral.sh/uv/install.sh | sh
# Install dependencies with uv
uv sync
配置
-
设置您的 API 密钥: 将您的 Gemini API 密钥设置为环境变量:
export GEMINI_API_KEY='your-api-key'或者,您也可以直接将其添加到
config.yaml文件中。 -
自定义
config.yaml: 在项目根目录下创建一个config.yaml文件以自定义模型参数:# config.yaml model_name: 'gemini-1.5-flash' max_refinement_rounds: 5 interactive: false # api_key: 'your-api-key' # Alternatively, place it here # Optional: Configure specific models for different agents agent_models: PLANNER: 'gpt-4' CODER: 'gemini-1.5-pro' VERIFIER: 'gemini-1.5-flash'
使用指南
将您的目标数据文件(例如 .xlsx、.csv)放入 /data 目录中。
运行任务
- 启动新运行:通过 CLI 提供目标文件和查询。
uv run python dsstar.py --data-files file1.xlsx file2.xlsx --query "What is the total sales for each department?" - 恢复运行:如果智能体流水线中断,可以使用其唯一的
run_id恢复它。uv run python dsstar.py --resume <run_id> - 运行中编辑代码:您可以手动修改最后生成的一块代码并重新运行。这对于自定义调整或手动调试非常有用。
注意:此命令会在系统的默认文本编辑器(如 nano、vim)中打开代码文件。保存并关闭编辑器将触发脚本运行更新后的代码。uv run python dsstar.py --edit-last --resume <run_id> - 交互模式:在执行前逐步并手动批准每个阶段:
uv run python dsstar.py --interactive --data-files file1.csv --query "Analyze the year-over-year growth rate"
配置参考
以下设置可通过 config.yaml 进行配置,也可以直接使用 CLI 参数进行覆盖:
| 参数 | 类型 | 描述 |
|---|---|---|
run_id | string | 要恢复运行的 ID。 |
max_refinement_rounds | int | 允许智能体优化其计划的最大循环次数。 |
api_key | string | 您的 Google Gemini API 密钥。 |
model_name | string | 要使用的默认 Gemini 模型(例如 gemini-1.5-flash)。 |
interactive | bool | 如果为 true,则在执行步骤之前等待用户输入/确认。 |
auto_debug | bool | 如果为 true,Debugger 智能体将自动尝试修复运行失败的代码。 |
execution_timeout | int | 生成代码执行的超时限制(以秒为单位)。 |
preserve_artifacts | bool | 如果为 true,则在 runs/ 目录中保留中间构件。 |
agent_models | dict | 将特定智能体(例如 PLANNER、CODER)映射到不同 LLM 的键值对。 |
支持的 AI 提供商
DS-STAR 支持多种 AI 模型后端。每个提供商都需要相应的环境变量:
Google Gemini
- 提供商标识符:默认提供商(不需要前缀)
- 环境变量:
export GEMINI_API_KEY='your-gemini-api-key' - 模型示例:
gemini-2.5-pro、gemini-2.0-flash、gemini-1.5-pro
OpenAI
- 提供商标识符:以
gpt或o1为前缀的模型 - 环境变量:
export OPENAI_API_KEY='your-openai-api-key' - 模型示例:
gpt-4、gpt-4-turbo、o1
Ollama(本地 LLM)
- 提供商标识符:以
ollama/为前缀的模型 - 环境变量:
export OLLAMA_API_KEY='your-ollama-api-key' # Optional export OLLAMA_HOST='http://localhost:11434' # Optional, defaults to localhost - 模型示例:
ollama/llama3、ollama/qwen3-coder
使用 uv 进行依赖关系管理
本项目使用快速 Python 打包工具 uv 进行依赖关系解析。
UV 的优势
- 性能:通过
uv解析的安装速度比标准 pip 快 10 到 100 倍。 - 确定性构建:锁文件(Lockfile)保障了环境的稳定性。
- 无缝执行:无需激活虚拟环境;命令使用
uv run原生执行。
常用的 UV 命令
- 安装依赖关系:
uv sync - 添加依赖关系:
uv add <package-name> - 删除依赖关系:
uv remove <package-name> - 更新包:
uv sync --upgrade - 运行脚本:
uv run python <script.py> - 显示当前环境的包:
uv pip list
贡献
欢迎大家做出贡献!如果您发现任何 Bug 或有功能请求,请随时直接在 JulesLscx/DS-Star GitHub 仓库上提交 Pull Request 或创建 Issue。
核心要点
- 多智能体协调:实现专业化的角色(规划、编码、调试和验证)协同工作,以提供高度可靠的数据科学执行。
- 人机协同(Developer-in-the-Loop):提供灵活的手动代码干预、交互式提示词验证和结构化错误修正。
- 可审计性与日志记录:跟踪执行历史记录,并将物理流水线构件保留在本地运行日志中。
- 多提供商灵活性:与 Google Gemini、OpenAI 和本地 Ollama 模型无缝集成。
学习地图
阶段 1:核心概念
- 多智能体架构:了解专业化智能体(分析器、规划器、编码器、验证器)如何协同工作,将复杂查询分解为可执行步骤。
- 状态与行动框架:理解计划制定、代码执行、自动调试和验证的反馈循环。
阶段 2:环境与包管理
- Astral UV 工具链:掌握如何使用
uv进行快速、可复现的 Python 依赖项解析,而无需虚拟环境激活的开销。 - API 配置:学习如何配置模型提供商(Gemini、OpenAI、Ollama)并将不同的子任务路由到最佳的 LLM 模型。
阶段 3:实战编排
- 交互式调试:探索在运行期间进行手动干预和代码修改,以引导智能体。
- 运行可复现性:深入研究审计日志、保存的运行配置以及结构化输出产物的解析。
动手实践——分步指南
步骤 1:安装 UV 并克隆仓库
首先安装快速的 Python 包管理器 uv,并克隆 DS-STAR 项目:
# Install uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# Clone the repository
git clone https://github.com/JulesLscx/DS-Star.git
cd DS-Star
# Sync dependencies
uv sync
步骤 2:配置 API 密钥并设置 config.yaml
配置您首选的 LLM API 密钥并设置本地配置文件:
export GEMINI_API_KEY='your-gemini-api-key'
在根目录下创建一个 config.yaml 文件:
model_name: 'gemini-2.5-flash'
max_refinement_rounds: 5
interactive: false
auto_debug: true
步骤 3:运行您的首次自动化分析
将示例数据集(例如 sales.csv)添加到 data/ 文件夹中,并启动智能体流水线:
uv run python dsstar.py --data-files data/sales.csv --query "What are the top 3 highest performing sales regions?"
步骤 4:在交互模式下运行以进行手动调整
要在执行前审查并编辑生成的代码步骤,请使用交互式标志运行 DS-STAR:
uv run python dsstar.py --interactive --data-files data/sales.csv --query "Analyze seasonal trends."
三大推荐资源
- 1DS-Star GitHub Repository
The official open-source repository containing the Python implementation, configuration files, and setup guidelines for the DS-STAR framework.
https://github.com/JulesLscx/DS-Star
- 2Google Gemini API Documentation
Official guide to access, configure, and optimize Google's Gemini models which serve as the default LLM backbone for DS-STAR.
https://ai.google.dev/gemini-api/docs
- 3Astral UV Documentation
Complete documentation for the lightning-fast Python package manager utilized by DS-STAR to ensure immediate, locking dependency syncs.
https://docs.astral.sh/uv/
链接由 AI 推荐——使用前建议快速核实。