SuperAPI AI 工具集

data-scientist-companion

数据与分析

查看项目

更新于 10-16 23:42

技能介绍

用途

Data Scientist Companion 是一个路由器技能,作为 ML / 数据科学会话的入口。它的单一职责是在会话开启的第一轮读取工作区状态,挑选应分派的第一个同级技能,然后交接。分派之后,由同级技能自己的 TRIGGER / SKIP / HOW TO USE 区块接管——它们之间已经在内部互相路由。

主要能力

  • 工作区探测:每一轮在回答任何其他问题之前,执行一次浅层探测——对项目根目录执行一次 ls,并在 pyproject.toml 和 journal/JOURNAL.md 存在时分别 Read 这两个文件。不递归遍历 src/、experiments/ 或 data/,深度问题属于同级技能的关注范围。
  • 输出 Pre-flight 检查清单:以可见文本形式输出检查清单,并逐项标记,内容包括:工作区是否已探测(pyproject.toml 是否存在、journal/ 是否存在、src/<pkg>/ 是否存在、experiments/ 是否存在)、Tier 1 库决策是否交由 data-science-python-stack / python-env-manager(本技能不检查导入)、用户信号分类结果、选定的入口技能、下一次调用是否为通过 Skill(<entry-skill>) 的交接。
  • 按用户信号分派(调度表 B,优先于工作区默认路线):
    • 询问 X 的签名、X 返回什么、如何调用、哪个子模块负责 Y → python-api
    • 安装 X、X 缺失、ImportError、把 Y 加入依赖、项目使用哪个环境管理器 → python-env-manager
    • X 该用哪个库、pandas 还是 polars、该不该用 xgboost / mlflow → data-science-python-stack
    • 拟合并评分、交叉验证、给出 X 的指标、这里正确的 CV 是什么 → evaluate-ml-pipeline
    • 为 X 构建流水线、添加预处理器/编码器/缩放器、接上估计器、替换流水线中的某一步 → build-ml-pipeline
    • 搭建项目、脚手架工作区、这个文件该放哪里、新建实验文件还是编辑现有文件 → organize-ml-workspace
    • 接下来做什么、恢复、我们进行到哪了、提出下一个实验、开始迭代、记录 X 的结果 → iterate-ml-experiment
    • lint、format、运行 ruff、docstring 风格 → python-code-style
    • 为 X 写冒烟测试、冒烟测试失败、Y 有测试吗 → test-ml-pipeline
  • 按工作区状态分派(调度表 A,自顶向下,首个匹配的行生效;用于用户消息为通用或项目级、没有调度表 B 中具体信号的情况):
    • 没有 pyproject.toml、没有 src/、没有 experiments/、没有 journal/——空目录或全新目录 → python-env-manager(默认引导 pixi),然后 data-science-python-stack,然后 organize-ml-workspace
    • pyproject.toml 存在,但项目尚未选定表格库或未安装 Tier 1(sklearn / skrub / skore)→ data-science-python-stack
    • 环境与栈已确定,但没有 src/<pkg>/、没有 experiments/、没有 journal/ → organize-ml-workspace
    • src/<pkg>/ 已有内容,但没有 journal/JOURNAL.md → organize-ml-workspace(由它负责放入空的 JOURNAL.md)
    • journal/JOURNAL.md 存在(即使为空或占位)→ iterate-ml-experiment
  • 决策流程:探测工作区(一次浅层 ls 加上述两次定向 Read);对用户信号分类,若首条消息足够具体以匹配调度表 B 的某一行,则分派到那里;否则按工作区状态分派(调度表 A,自顶向下);若有歧义,用提问方式(2-4 个选项,每个候选同级技能一个)让用户选择,再据答案分派;通过 Skill(<entry-skill>) 交接并停止。
  • 若两行似乎同时匹配(例如“构建流水线并告诉我正确的 CV 是什么”),选择循环中更早的入口——build 先于 evaluate,evaluate 先于 iterate,依此类推;该同级技能完成工作后会继续分派。

使用方式与限制

  • 路由,不实现。绝不在本技能中写文件、运行命令、安装包、搭建文件夹、撰写设计说明或编写流水线代码。如果发现自己要使用 Write、Edit、Bash(除那一次浅层 ls 之外)或为“在两路线之间做选择”之外的任何目的使用 AskUserQuestion——停止并分派。
  • 一次性,而非常驻。本技能在首轮触发。一旦某个同级技能被分派,本技能即告结束;对话进入该同级技能的循环。不要在同一轮重新进入,也不要在流程中途重新路由——同级技能自行处理交接。
  • 检测,不假设。工作区状态决定默认路线。存在 journal/JOURNAL.md 意味着迭代正在进行,下一步由 iterate-ml-experiment 负责。没有 pyproject.toml 意味着环境 / 栈 / 脚手架优先。src/<pkg>/ 有内容但没有 journal/ 意味着脚手架未完成。先读,再路由。
  • 歧义交还用户。如果两条路线同等有效(例如半搭建的工作区,用户既可以完成设置也可以开启第一个实验),在分派前用提问让用户选择,不要静默决定。
  • 不基于记忆分派。如果用户提到某个符号或库,否则你可能去查它,分派目标仍是 python-api——不要自己回答该符号问题。
  • 不做的事:不实现任何内容(脚手架 → organize-ml-workspace,流水线代码 → build-ml-pipeline,评估 → evaluate-ml-pipeline,测试 → test-ml-pipeline,安装 → python-env-manager,lint → python-code-style,设计说明 → iterate-ml-experiment);不在同级技能之间重新路由(一旦某个同级技能掌管该轮,它管理自己的交接;每个同级技能都带有 TRIGGER / SKIP 区块和 Companion-skills 部分,不要从外部质疑);不回答 API 问题(即使用户以“cross_validate 的签名是什么?”开场,也分派到 python-api,不要凭记忆回答签名);不为 iterate-ml-experiment 选择策略(iterate-from-* 子技能在 iterate-ml-experiment 的来源菜单内选择,不在这里)。

配套技能全集

ML 流水线生命周期:build-ml-pipeline(把流水线声明为 skrub DataOps 图,从数据源到预测器,止于声明的对象);evaluate-ml-pipeline(通过 skore 评估单个 sklearn 兼容的学习器,选择入口点和交叉验证器);test-ml-pipeline(工作区 tests/ 文件夹的路由器,分派到 smoke-test-ml-pipeline,v1 中唯一的类别);smoke-test-ml-pipeline(以构造方式提供诊断的 pytest,证明 X-marker 规则)。

迭代循环:iterate-ml-experiment(拥有 journal/JOURNAL.md 和每个实验的设计说明,驱动提议 / 批准 / 实现 / 记录的循环);iterate-from-skore(从上一轮运行的 report.diagnosis() 获取下一个实验,在 iterate-ml-experiment 的来源菜单内选择);iterate-from-user(从用户输入即自由文本 / 文章 / 资源链接获取下一个实验,选取规则同上)。

工作区与工具:organize-ml-workspace(文件布局、# %% 脚本约定、报告存放位置、一个实验一个文件的规则);python-code-style(ruff 的 lint 与 format 加 numpydoc,在改动 Python 文件后运行);python-env-manager(检测项目的环境管理器——pixi / uv / poetry / hatch / conda / pip+venv——并给出正确的安装命令,引导时默认 pixi);data-science-python-stack(有主张的一职一库栈,分为强制 / 用户选择 / 可选 / 传递四层)。

API 参考:python-api(针对任何已安装 Python 包的 API 发现:inspect.signature、dir、带版本的文档搜索与缓存,并携带 sklearn / skrub / skore 的概念性导引)。

分类依据与未提供信息

本技能的核心用途是在数据科学与机器学习工作区中做技能路由与状态探测,围绕 ML 流水线生命周期、实验迭代、环境与依赖管理展开,因此归入 data(数据与分析)。

资料未提供:安装命令示例、具体的配置文件格式、除文中列出的技能名称之外的扩展机制、收费或价格信息、支持的平台信息、实际效果或性能数据。