BrainBank

OpenDsStar

2026/7/19 13:18:29 · 更新于 2026/7/19 13:21:43 · 来源

#ai-agents#step-by-step#python#data-science#gemini#uv

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 项目概述DS-Star GitHub 项目概述


核心功能

  • 智能体工作流:实现了一个由专业 AI 智能体(分析器 Analyzer、规划器 Planner、编码器 Coder、验证器 Verifier、路由程序 Router、调试器 Debugger 和终结器 Finalyzer)协同工作的流水线,以解决复杂的数据科学任务。
  • 完全可复现性:执行的每个阶段都保存在本地——包括提示词、生成的 Python 代码、执行结果和元数据——从而实现完全的可审计性。
  • 交互式与可恢复性:执行运行可以暂停和恢复。交互模式允许在进入下一阶段之前进行人机协同的逐步评估。
  • 代码编辑与调试:允许用户在运行期间手动编辑生成的 Python 代码,并配有自动调试智能体以动态解决代码执行错误。
  • 配置驱动:项目配置、模型参数和全局运行配置可通过集中的 config.yaml 文件轻松管理。

DS-STAR 的工作原理

DS-STAR 流水线主要分三个阶段执行:

Rendering diagram…
  1. 分析Analyzer(分析器)智能体检查初始数据集文件(例如 CSV、Excel)并生成描述性摘要。
  2. 迭代规划与执行
    • Planner(规划器)创建初始的逐步计划以回答用户的提示。
    • Coder(编码器)生成 Python 代码以执行该计划的当前步骤。
    • 系统运行生成的代码并捕获输出。
    • 如果代码运行失败,自动 Debugger(调试器)智能体尝试修复逻辑和语法错误。
    • Verifier(验证器)检查执行结果是否充分回答了目标查询。
    • Router(路由程序)决定下一步:要么结束工作流,要么循环返回以添加优化步骤。该循环将持续运行,直到计划完成或达到最大优化轮数限制。
  3. 终结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

配置

  1. 设置您的 API 密钥: 将您的 Gemini API 密钥设置为环境变量:

    export GEMINI_API_KEY='your-api-key'
    

    或者,您也可以直接将其添加到 config.yaml 文件中。

  2. 自定义 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>
    
  • 运行中编辑代码:您可以手动修改最后生成的一块代码并重新运行。这对于自定义调整或手动调试非常有用。
    uv run python dsstar.py --edit-last --resume <run_id>
    
    注意:此命令会在系统的默认文本编辑器(如 nano、vim)中打开代码文件。保存并关闭编辑器将触发脚本运行更新后的代码。
  • 交互模式:在执行前逐步并手动批准每个阶段:
    uv run python dsstar.py --interactive --data-files file1.csv --query "Analyze the year-over-year growth rate"
    

配置参考

以下设置可通过 config.yaml 进行配置,也可以直接使用 CLI 参数进行覆盖:

参数类型描述
run_idstring要恢复运行的 ID。
max_refinement_roundsint允许智能体优化其计划的最大循环次数。
api_keystring您的 Google Gemini API 密钥。
model_namestring要使用的默认 Gemini 模型(例如 gemini-1.5-flash)。
interactivebool如果为 true,则在执行步骤之前等待用户输入/确认。
auto_debugbool如果为 true,Debugger 智能体将自动尝试修复运行失败的代码。
execution_timeoutint生成代码执行的超时限制(以秒为单位)。
preserve_artifactsbool如果为 true,则在 runs/ 目录中保留中间构件。
agent_modelsdict将特定智能体(例如 PLANNERCODER)映射到不同 LLM 的键值对。

支持的 AI 提供商

DS-STAR 支持多种 AI 模型后端。每个提供商都需要相应的环境变量:

Google Gemini

  • 提供商标识符:默认提供商(不需要前缀)
  • 环境变量export GEMINI_API_KEY='your-gemini-api-key'
  • 模型示例gemini-2.5-progemini-2.0-flashgemini-1.5-pro

OpenAI

  • 提供商标识符:以 gpto1 为前缀的模型
  • 环境变量export OPENAI_API_KEY='your-openai-api-key'
  • 模型示例gpt-4gpt-4-turboo1

Ollama(本地 LLM)

  • 提供商标识符:以 ollama/ 为前缀的模型
  • 环境变量
    export OLLAMA_API_KEY='your-ollama-api-key'  # Optional
    export OLLAMA_HOST='http://localhost:11434'  # Optional, defaults to localhost
    
  • 模型示例ollama/llama3ollama/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."

三大推荐资源

  1. 1
    DS-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

  2. 2
    Google 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

  3. 3
    Astral 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 推荐——使用前建议快速核实。