🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

对话式数据分析 Chenmo0414/tukey

DeepSeek Harness
Chenmo041475 天前有提交已提供中文文档扫描:含敏感能力

接入 CSV 或数据库,自动画像并生成只读 SQL 图表

28.1/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Chenmo0414/tukey
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么[目录]—
dsh 原生插件 · tool
暂无时间戳·判据 →
装得上吗[实装验证]!
实装验证未通过(dep_tree_unresolvable),装前请到仓库确认最近更新与 issue
数据截至 2026/09/26·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/05·判据 →
还在维护吗[仓库]—
更新放缓:最近一次提交在 75 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

⚠︎ 实装验证未通过(dep_tree_unresolvable · 2026/9/26) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件
查看扫描证据(共 10 处,展示前 10 条)
  • 删除本地文件递归
    packages/core/src/database.test.ts:60
    rmSync(dir, { recursive: true, force: true })
  • 写入本地文件
    packages/dsh/src/index.ts:681
    await mkdir(resolvePath(target, '..'), { recursive: true })
  • 写入本地文件
    packages/dsh/src/index.ts:682
    await writeFile(target, report.html, 'utf-8')
  • 写入本地文件
    packages/mcp/src/render.ts:35
    await mkdir(dir, { recursive: true })
  • 写入本地文件
    packages/mcp/src/render.ts:40
    await writeFile(path, svg, 'utf-8')
  • 删除本地文件递归
    packages/mcp/src/server.test.ts:42
    rmSync(chartDir, { recursive: true, force: true })
  • 读取本地文件
    packages/mcp/src/server.test.ts:103
    const svg = readFileSync(svgPath, 'utf-8')
  • 读取本地文件
    packages/mcp/src/server.test.ts:146
    const html = readFileSync(result.structuredContent?.['path'] as string, 'utf-8')
  • 写入本地文件
    packages/mcp/src/server.ts:371
    await mkdir(resolvePath(target, '..'), { recursive: true })
  • 写入本地文件
    packages/mcp/src/server.ts:372
    await writeFile(target, report.html, 'utf-8')
扫描于 2026/11/5(0 天前) · 范围 全包扫描 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh@deepseek-ai/dsh-llm-mock-server
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 接入CSV或数据库
  • 自动数据画像
  • 生成只读SQL图表
展开完整介绍(127 字)↓

把编码智能体变成数据分析师:DuckDB 引擎、自动剖析、只读 SQL,以及在对话里直接渲染的 Vega-Lite 图表。一个 DeepSeek Harness 插件,外加一个 MCP 服务器,供 Claude Code、Codex、Cursor 使用。

README

由 DeepSeek 最新模型翻译生成
Tukey 图基 —— 开源版「数据分析师」,直接住进你的编码 Agent。 挂上 CSV 或 Postgres 数据库,自动画像、只读 SQL 提问、图表直接画在对话里。 名字取自 John Tukey:探索性数据分析、箱线图,以及这个画像器正在跑的 1.5×IQR 离群规则,都是他的发明。 English · 中文 一个真实的 DeepSeek Harness 会话——Agent 接入 CSV、生成画像、把图表画成对话节点(无头 Chrome 对实机界面的截屏,见验证记录): 它能做什么 data_attach → 把 CSV / Parquet / JSON / XLSX 文件注册为可查询的表 data_attach_db → 只读接入 PostgreSQL / MySQL / SQLite 并列出其表 data_profile → 类型、缺失值、精确基数、离群点、数据质量问题、图表建议 data_query → 一条只读 SQL(DuckDB 方言),结果为无损 JSON data_chart → bar / line / scatter / histogram / area / heatmap / boxplot(Vega-Lite,可交互)+ sankey / sunburst / treemap / gauge(ECharts);支持 color 分组、s
展开完整文档(README 剩余 1 节)
Tukey

图基 —— 开源版「数据分析师」,直接住进你的编码 Agent。
挂上 CSV 或 Postgres 数据库,自动画像、只读 SQL 提问、图表直接画在对话里。

名字取自 John Tukey:探索性数据分析、箱线图,以及这个画像器正在跑的 1.5×IQR 离群规则,都是他的发明。

English · 中文

一个真实的 DeepSeek Harness 会话——Agent 接入 CSV、生成画像、把图表画成对话节点(无头 Chrome 对实机界面的截屏,见验证记录):

它能做什么

data_attach → 把 CSV / Parquet / JSON / XLSX 文件注册为可查询的表 data_attach_db → 只读接入 PostgreSQL / MySQL / SQLite 并列出其表 data_profile → 类型、缺失值、精确基数、离群点、数据质量问题、图表建议 data_query → 一条只读 SQL(DuckDB 方言),结果为无损 JSON data_chart → bar / line / scatter / histogram / area / heatmap / boxplot(Vega-Lite,可交互)+ sankey / sunburst / treemap / gauge(ECharts);支持 color 分组、stacked/grouped、facet 小倍数;line/scatter 可拖拽缩放 data_report → 自包含 HTML 报告(画像 + 内嵌 SVG 图表),浏览器可直接打印为 PDF data_sources → 当前已接入的数据集

同一个引擎,七个同名工具,服务两类宿主:

| 宿主 | 包名 | 图表交付方式 |
| DeepSeek Harness 插件 | tukey | 对话内实时渲染(conversation node + Vega canvas) |
| MCP server(Claude Code / Codex / Cursor / 任意 MCP 客户端) | tukey-mcp-server | SVG 文件 + structuredContent 里的完整 Vega-Lite spec |

在 dsh 的 Code Mode(PTC 模式)下,全部工具也可以在 run_code 程序里以 await tools.data_(args) 链式调用,一段程序内完成 接入 → 画像 → 查询 → 出图。

工作台——会话头部的浮层面板:本会话的数据源、可点击定位的图表库、报告存档:

两个引擎同屏——热力图与箱线图由 Vega-Lite 实时绘制,桑基与矩形树由 ECharts 在宿主端渲染:

更多对话内图型(同一主题,同样从真实会话导出):

安装

DeepSeek Harness:

dsh plugin --profile web add tukey

Claude Code(或任意 MCP 客户端,stdio):

claude mcp add tukey -- npx -y tukey-mcp-server

架构

三个决定塑造了这套代码。

引擎对宿主一无所知。 @tukey/core 输入路径和 SQL,输出无损 JSON,不引用任何 dsh、MCP 或 CLI 类型。这是同一份分析能力能同时进入 dsh 和 Claude Code / Codex / Cursor、而不用维护第二套实现的根本原因。

统计交给 DuckDB。 SUMMARIZE 一趟返回每列的 min/max/avg/std/四分位/基数/空值率,并直接读取 CSV、Parquet、JSON 且做全文件类型推断。手写的只有 IQR 离群检测、重复行检测和"什么值得告警"的判断。
基数在 ≤200 万行时用精确计数——HyperLogLog 估计会把 4 个类目报成 3,对分析工具这是错误答案,不是近似。

两个图表引擎,按图型选择——而客户端只打包一个。 Vega-Lite 负责探索性图型:语法简短,浏览器端实时可交互。ECharts 负责 Vega-Lite 根本没有语法的形状——流向(桑基)、层级(旭日、矩形树)、单值 KPI(仪表盘)。若把 ECharts 也打进浏览器,单文件插件包会多约 600 KB,而这个包每个会话都要下载,无论有没有图;所以这些图型在宿主端渲染成 SVG、以标记形式随事件传输,spec 也一并携带,懂 ECharts 的客户端可以自己实时渲染。实测浏览器端增重:0 KB。

图表是承载在会话事件上的 spec。 dsh 的工具卡片种类是封闭集合(generic、terminal、diff、search、web),没有图表成员,所以真正的图只能来自 conversation node*——由插件的浏览器半边注册。而 conversation node 要求视图是持久事件的纯函数(无时钟、无随机、无活状态),数据内联的 Vega-Lite spec 恰好就是可逐字节重放的一段纯 JSON。选 Vega-Lite 是因为它满足重放规则,而不是因为它流行。

@tukey/core 引擎、画像、数据库连接、图表 spec (宿主无关) ├── @tukey/report Vega-Lite → SVG(纯 JS)+ 自包含 HTML 报告 ├── tukey dsh 宿主半边:7 个工具 + 图表事件 │ └── ./client dsh 浏览器半边:conversation node + Vega canvas └── tukey-mcp-server stdio MCP server:同样 7 个工具,图表输出 SVG

开发

pnpm install
pnpm -r run build
pnpm -r run test

89 个测试:core 58 个(SQL 安全策略、JSON 转换、精确基数画像、图表,以及无 Docker 环境自动跳过的 PostgreSQL/MySQL 实连测试),report 5 个,dsh 插件 14 个(端到端驱动真实工具与 DuckDB,含按 agent 隔离),MCP 9 个(走 SDK 内存传输的协议级往返,另有 stdio 进程冒烟脚本)。针对运行中 dsh web 的实机验证脚本在 scripts/mock-llm-scripted.mjs + scripts/verify-live.patch.yml——见 docs/VERIFICATION.md。

已知限制

- PTC 模式(Code Mode)预设拒绝直接工具调用——在该模式下模型需要把调用包进 run_code 程序;标准模式下直接调用。已实测,记录在 docs/VERIFICATION.md。
- dsh 的按 agent 引擎有上限而无生命周期跟踪。每个 dsh 会话有独立引擎(别名不再冲突),但 harness 不通知插件 agent 销毁,因此最多持有 32 个引擎、按 LRU 淘汰——被淘汰的会话下次调用时透明地重新 attach。
- dsh 客户端 bundle 约 860 kB。Vega 被内联,因为 harness 每个插件只服务一个文件、没有 sibling chunk 路由;无图会话也要付这份体积。
- data_attach 接受宿主进程可读的任意路径,尚无工作区围栏,继承 harness 沙箱的边界。
- XLSX 依赖 DuckDB 的 read_xlsx,首次使用可能需要下载扩展。CSV、Parquet、 JSON 有测试覆盖;XLSX 没有。

写给 dsh 插件开发者的备注

两件事在这里耗了时间,值得记录:

- npm 的 latest 标签指向一条坏掉的旧版本线。 npm view @deepseek-ai/dsh-tools version 报 0.0.1-rc.1,但当前线是 0.1.0-rc.8。若干 0.0.1-rc.1 包完全装不上(依赖了未发布的 dsh-compact、dsh-type-meta)。锁定 0.1.0-rc.8。
- 浏览器半边不是 ESM。 dsh 的浏览器运行时是懒 CJS 模块表:插件 bundle 必须执行
window.__ModuleLoader__.load({ id, factory: (require) => {...} }),react 等共享
单例通过注入的 require 获取。裸 import "react" 会直接失败——页面没有 import map。本仓库的 packages/dsh/scripts/bundle-client.mjs 复刻了官方 tsdown.client.ts 的 banner/footer 契约。

路线图

| M1 | Core + dsh 插件,对话内出图 — 已完成并实机验证 |
| M2 | MCP server:同样能力进入 Claude Code / Codex / Cursor — 已完成 |
| M3 | HTML 报告导出(可打印 PDF)、PostgreSQL / MySQL / SQLite、按 agent 隔离 — 已完成 |
| M4 | 工作台面板:数据源、可点击定位的图表库、报告存档 — 已完成并实机验证 |

许可证

MIT
预览分享卡片长什么样 ↓Chenmo0414/tukey
分享 · DeepSeek Harness Hub
Chenmo0414/tukey

接入 CSV 或数据库,自动画像并生成只读 SQL 图表

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部