实证分析 Agent q2955161835-debug/Data_analysis_agent
DeepSeek Harness采集数据并完成计量分析,输出可复现报告
30.8/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/29 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
自动兼容检查未通过:缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装。以下命令仍可尝试,但可能失败。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add q2955161835-debug/Data_analysis_agent该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · tool
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 36 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包data-analysis-agent(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=22.19.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明
源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/13 08:11:08
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件读取剪贴板或密钥环境变量
查看扫描证据(共 84 处,展示前 83 条)
- 读取密钥环境变量packages/harness-adapter/src/credentials.ts:78
const value = process.env.DEEPSEEK_API_KEY?.trim() - 读取密钥环境变量packages/harness-adapter/src/credentials.ts:98
return process.env.DEEPSEEK_API_KEY?.trim() - 读取本地文件packages/policies/src/native-read-policy.ts:43
if (lstatSync(current).isSymbolicLink()) return deny('POLICY_PATH_ESCAPE') - 读取本地文件packages/policies/src/native-read-policy.ts:50
const stat = lstatSync(candidate) - 读取本地文件packages/policies/src/native-skill-read-policy.ts:21
if (lstatSync(current).isSymbolicLink()) return { kind: 'deny', reason: 'POLICY_PATH_ESCAPE' } - 读取本地文件packages/policies/src/native-skill-read-policy.ts:25
|| !lstatSync(absolute).isFile()) return { kind: 'deny', reason: 'POLICY_PATH_ESCAPE' } - 读取本地文件packages/profile-data-analysis/src/index.ts:72
?? (existsSync(defaultPython) ? defaultPython : process.platform === 'win32' ? 'python' : 'python3') - 读取本地文件packages/profile-data-analysis/src/index.ts:163
const parsed = load(readFileSync(filename, 'utf8'), { schema: HARNESS_JS_SCHEMA }) - 读取本地文件packages/profile-data-analysis/src/manifest.ts:28
if (!existsSync(resolved)) throw new Error(`BUNDLE_PATCH_MISSING: ${resolved}`) - 读取本地文件packages/profile-data-analysis/src/manifest.ts:49
const manifest = JSON.parse(readFileSync(templateUrl, 'utf8')) as UnknownRecord - 读取本地文件packages/skills-runtime/src/catalog.ts:147
const entries = await readdir(path.join(directory, relative), { withFileTypes: true }) - 读取本地文件packages/skills-runtime/src/catalog.ts:151
const details = await lstat(path.join(directory, child)) - 读取本地文件packages/skills-runtime/src/catalog.ts:165
resources[relative] = sha256(await readFile(path.join(skillRoot, relative))) - 读取本地文件packages/skills-runtime/src/catalog.ts:189
const directories = (await readdir(options.root, { withFileTypes: true })) - 读取本地文件packages/skills-runtime/src/catalog.ts:208
content = await readFile(path.join(options.root, directory, 'SKILL.md'), 'utf8') - 写入本地文件packages/skills-runtime/src/loader.ts:119
await mkdir(workflowRoot, { recursive: true }) - 写入本地文件packages/skills-runtime/src/loader.ts:120
await appendFile(path.join(workflowRoot, 'skill-activations.jsonl'), `${JSON.stringify(value)}\n`, 'utf8') - 读取本地文件packages/skills-runtime/src/provenance.ts:99
value = JSON.parse(await readFile(provenancePath, 'utf8')) as unknown - 读取本地文件packages/workflow-core/src/event-store.ts:28
const existingLog = await realpath(logPath).catch((error: unknown) => { - 读取本地文件packages/workflow-core/src/event-store.ts:44
const content = await readFile(logPath, 'utf8').catch((error: unknown) => { - 写入本地文件packages/workflow-core/src/event-store.ts:130
await writeFile(temporary, combined.map(event => `${JSON.stringify(event)}\n`).join(''), { encoding: 'utf8', flag: 'wx' }) - 写入本地文件packages/workflow-core/src/event-store.ts:131
await rename(temporary, logPath) - 删除本地文件packages/workflow-core/src/event-store.ts:133
await rm(temporary, { force: true }) - 删除本地文件packages/workflow-core/src/event-store.ts:135
await rm(lockPath, { force: true }) - 写入本地文件packages/workflow-core/src/fork.ts:46
await mkdir(destination, { recursive: true }) - 读取本地文件packages/workflow-core/src/fork.ts:47
for (const entry of await readdir(source, { withFileTypes: true })) { - 读取本地文件packages/workflow-core/src/fork.ts:50
const details = await lstat(sourcePath) - 写入本地文件packages/workflow-core/src/fork.ts:59
await copyFile(sourcePath, destinationPath) - 写入本地文件packages/workflow-core/src/fork.ts:60
await chmod(destinationPath, 0o444) - 写入本地文件packages/workflow-core/src/fork.ts:88
await mkdir(childEvidenceRoot, { recursive: true }) - 读取本地文件packages/workflow-core/src/fork.ts:93
const details = await lstat(sourcePath).catch(() => undefined) - 读取本地文件packages/workflow-core/src/fork.ts:101
const contents = await readFile(sourcePath) - 写入本地文件packages/workflow-core/src/fork.ts:108
await writeFile(destinationPath, contents, { flag: 'wx' }) - 写入本地文件packages/workflow-core/src/fork.ts:109
await chmod(destinationPath, 0o444) - 删除本地文件递归packages/workflow-core/src/fork.ts:269
await rm(childTaskRoot, { recursive: true, force: true }) - 读取本地文件packages/workflow-core/src/plan-store.ts:37
parsed = JSON.parse(await readFile(filename, 'utf8')) - 读取本地文件packages/workflow-core/src/plan-store.ts:77
const entries = (await readdir(planRoot)) - 写入本地文件packages/workflow-core/src/plan-store.ts:141
await writeFile(versionTemporary, content, { encoding: 'utf8', flag: 'wx' }) - 写入本地文件packages/workflow-core/src/plan-store.ts:142
await rename(versionTemporary, versionPath) - 写入本地文件packages/workflow-core/src/plan-store.ts:144
await writeFile(currentTemporary, content, { encoding: 'utf8', flag: 'wx' }) - 写入本地文件packages/workflow-core/src/plan-store.ts:145
await rename(currentTemporary, currentPath) - 删除本地文件packages/workflow-core/src/plan-store.ts:149
if (versionPublished) await rm(versionPath, { force: true }) - 删除本地文件packages/workflow-core/src/plan-store.ts:152
if (previous === undefined) await rm(currentPath, { force: true }) - 写入本地文件packages/workflow-core/src/plan-store.ts:154
await writeFile(currentTemporary, `${JSON.stringify(previous, null, 2)}\n`, { encoding: 'utf8', flag: 'wx' }) - 写入本地文件packages/workflow-core/src/plan-store.ts:155
await rename(currentTemporary, currentPath) - 删除本地文件packages/workflow-core/src/plan-store.ts:163
await rm(versionTemporary, { force: true }) - 删除本地文件packages/workflow-core/src/plan-store.ts:164
await rm(currentTemporary, { force: true }) - 删除本地文件packages/workflow-core/src/plan-store.ts:168
await rm(lockPath, { force: true }) - 读取本地文件packages/workflow-core/src/storage-paths.ts:20
const realTaskRoot = await realpath(taskRoot).catch(() => { - 读取本地文件packages/workflow-core/src/storage-paths.ts:24
const realWorkRoot = await realpath(workRoot).catch(() => { - 写入本地文件packages/workflow-core/src/storage-paths.ts:33
await mkdir(workflowRoot, { recursive: true }) - 读取本地文件packages/workflow-core/src/storage-paths.ts:34
const realWorkflowRoot = await realpath(workflowRoot) - 写入本地文件packages/workflow-core/src/storage-paths.ts:48
await mkdir(directory, { recursive: true }) - 读取本地文件packages/workflow-core/src/storage-paths.ts:49
const resolved = await realpath(directory) - 读取本地文件packages/workspace/src/archive.ts:24
if (!existsSync(source)) throw new Error(`TASK_NOT_FOUND: ${taskId}`) - 读取本地文件packages/workspace/src/archive.ts:25
if (existsSync(target)) throw new Error(`ARCHIVE_TARGET_EXISTS: ${taskId}`) - 写入本地文件packages/workspace/src/archive.ts:26
await mkdir(archiveRoot, { recursive: true }) - 写入本地文件packages/workspace/src/archive.ts:30
await rename(source, target) - 读取本地文件packages/workspace/src/archive.ts:33
if (existsSync(archiveRecord)) throw new Error('ARCHIVE_RECORD_ALREADY_EXISTS') - 写入本地文件packages/workspace/src/archive.ts:34
await writeFile(archiveRecord, `# 归档记录\n\n- 任务:${taskId}\n- 归档日期:${archivedOn}\n- 原则:归档原件只读;返工时新建任务并引用。\n`, { encoding: 'utf8', flag: 'wx' }) - 删除本地文件packages/workspace/src/archive.ts:39
if (recordCreated) await rm(archiveRecord, { force: true }) - 写入本地文件packages/workspace/src/archive.ts:40
await rename(target, source) - 读取本地文件packages/workspace/src/indexer.ts:21
const readme = await readFile(path.join(taskRoot, 'README.md'), 'utf8') - 写入本地文件packages/workspace/src/indexer.ts:32
await writeFile(temporary, content, { encoding: 'utf8', flag: 'wx' }) - 写入本地文件packages/workspace/src/indexer.ts:33
await rename(temporary, filename) - 删除本地文件packages/workspace/src/indexer.ts:35
await rm(temporary, { force: true }) - 读取本地文件packages/workspace/src/indexer.ts:45
const original = await readFile(indexPath, 'utf8') - 读取本地文件packages/workspace/src/indexer.ts:49
const entries = await readdir(tasksRoot, { withFileTypes: true }) - 读取本地文件packages/workspace/src/paths.ts:53
const realRoot = await realpath(workspaceRoot) - 读取本地文件packages/workspace/src/paths.ts:54
const realCandidate = await realpath(candidate) - 写入本地文件packages/workspace/src/scaffold.ts:46
await rename(staging, taskRoot) - 读取本地文件packages/workspace/src/scaffold.ts:50
if (filesystemCode(error) !== 'EPERM' || retryDelay === undefined || existsSync(taskRoot)) throw error - 读取本地文件packages/workspace/src/scaffold.ts:58
if (existsSync(destination)) return - 写入本地文件packages/workspace/src/scaffold.ts:59
await mkdir(path.dirname(destination), { recursive: true }) - 写入本地文件packages/workspace/src/scaffold.ts:65
await mkdir(workspaceRoot, { recursive: true }) - 读取本地文件packages/workspace/src/scaffold.ts:82
for (const entry of await readdir(root, { withFileTypes: true })) { - 读取本地文件packages/workspace/src/scaffold.ts:89
let content = await readFile(filename, 'utf8') - 写入本地文件packages/workspace/src/scaffold.ts:91
await writeFile(filename, content, 'utf8') - 读取本地文件packages/workspace/src/scaffold.ts:105
if (existsSync(taskRoot)) throw new Error(`TASK_ALREADY_EXISTS: ${taskId}`) - 写入本地文件packages/workspace/src/scaffold.ts:110
await mkdir(containedPath(staging, directory), { recursive: true }) - 删除本地文件递归packages/workspace/src/scaffold.ts:121
await rm(taskRoot, { recursive: true, force: true }) - 删除本地文件递归packages/workspace/src/scaffold.ts:125
if (existsSync(staging) && (await stat(staging)).isDirectory()) await rm(staging, { recursive: true, force: true }) - 读取本地文件packages/workspace/src/scaffold.ts:125
if (existsSync(staging) && (await stat(staging)).isDirectory()) await rm(staging, { recursive: true, force: true })
扫描于 2026/11/4(0 天前) · 范围 全包扫描 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/cordis-plugin-group@deepseek-ai/dsh@deepseek-ai/dsh-anonymous-user-id@deepseek-ai/dsh-app-boot@deepseek-ai/dsh-atomic-write@deepseek-ai/dsh-attachment@deepseek-ai/dsh-authorization@deepseek-ai/dsh-base@deepseek-ai/dsh-bash-local@deepseek-ai/dsh-client-store@deepseek-ai/dsh-client-ui-primitives给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 数据采集
- 计量分析
- 输出可复现报告
DeepSeek Harness 上的学术研究与商业数据分析智能体。网页抓取、计量经济学、自主工作流、论文方法适配、可复现报告和答辩辅导。学术科研与商业数据分析智能体|数据采集与实证分析
README
由 DeepSeek 最新模型翻译生成数据分析 Agent
Data Analysis Agent 是一个基于 DeepSeek Harness 的本地优先专业数据分析 Agent。它首先面向学术研究与实证分析,也能扩展到 KPI、cohort、差异分解等商业数据分析任务。它把需求澄清、数据采集、质量核验、统计与计量分析、报告生成、独立验证和最终交付连接成一条可追踪的自适应工作流。
项目的主要强项是有边界、可恢复的网页与公开数据采集,以及把数据质量、统计假设、计量识别、完整结果和可复现交付连在一起的实证分析。
项目的需求与交付方式来自作者说明的两年、约 300 份数据分析委托实践经验。这段经验用于提炼常见研究问题、返工原因、证据边界和交付习惯,不表示这些委托数据被用于训练模型权重,也不表示 300 份项目都已成为公开基准。
它适合什么任务
- 学术研究:问卷分析、描述统计、组间比较、相关、线性与二元 Logistic 回归、因子诊断、面板模型、双重差分、工具变量和时间序列。
- 科研全流程:从研究问题与数据字典开始,经过数据质量、方法选择、结果解释、图表和多格式报告,保留来源、参数、哈希和限制。
- 参考论文方法蒸馏与迁移:读取用户指定的论文全文,提取研究设计、估计对象、假设、检验与限制,再核对当前数据是否满足迁移条件。方法迁移不是复制论文文字,也不能用论文结论替代当前数据证据。
展开完整文档(README 剩余 1 节)
数据分析 Agent
Data Analysis Agent 是一个基于 DeepSeek Harness 的本地优先专业数据分析 Agent。它首先面向学术研究与实证分析,也能扩展到 KPI、cohort、差异分解等商业数据分析任务。它把需求澄清、数据采集、质量核验、统计与计量分析、报告生成、独立验证和最终交付连接成一条可追踪的自适应工作流。
项目的主要强项是有边界、可恢复的网页与公开数据采集,以及把数据质量、统计假设、计量识别、完整结果和可复现交付连在一起的实证分析。
项目的需求与交付方式来自作者说明的两年、约 300 份数据分析委托实践经验。这段经验用于提炼常见研究问题、返工原因、证据边界和交付习惯,不表示这些委托数据被用于训练模型权重,也不表示 300 份项目都已成为公开基准。
它适合什么任务
- 学术研究:问卷分析、描述统计、组间比较、相关、线性与二元 Logistic 回归、因子诊断、面板模型、双重差分、工具变量和时间序列。
- 科研全流程:从研究问题与数据字典开始,经过数据质量、方法选择、结果解释、图表和多格式报告,保留来源、参数、哈希和限制。
- 参考论文方法蒸馏与迁移:读取用户指定的论文全文,提取研究设计、估计对象、假设、检验与限制,再核对当前数据是否满足迁移条件。方法迁移不是复制论文文字,也不能用论文结论替代当前数据证据。
- 数据采集:为公开网页、表格和接口建立字段、来源、请求、分页、速率和停止预算;支持静态与可选动态页面采集、断点记录、来源快照和部分失败说明。
- 商业分析:建立版本化 KPI 口径,处理多来源字段映射,分析 cohort、漏斗和预算/期间/基准差异,并区分事实、解释和建议。
- 自适应沟通与答辩教学:根据普通用户、实务用户或专家的当前问题调整解释深度,可辅助解释方法选择、结果含义、限制、复现位置和答辩思路,但不改变事实状态。
工作方式
Agent 不把“学术”“市场”“运营”固化成互斥模式。它先把自然语言需求编译为版本化阶段计划,再根据实际 schema、来源覆盖、统计前提和模型诊断调整后续阶段。
需求与输入 ↓ RequirementSpec → 版本化计划 → 数据采集/质量核验 ↓ 统计 / 计量 / 企业分析 ↓ 候选报告 → 独立验证 → 最终交付
关键原则:
1. 自动化开始前先配置凭据、数据、允许访问的来源与路径、隐私边界,以及请求、时间和模型预算。
2. 原始输入进入 input/ 后按只读证据处理;清洗结果写为新版本,不覆盖原件。
3. 计算由受契约约束的 Python Worker 执行,结果引用实际 artifact,不在文字中补造数值。
4. 数据、口径或识别条件不足时保持 blocked,给出缺口与可继续步骤,不生成迎合预期的结论。
5. 报告先写入 output/candidate/;只有绑定当前候选的独立验证通过并完成交付授权后,才进入 output/final/。
已实现能力
当前代码注册了以下操作族:
| 阶段 | Operations |
| 采集 | acquisition.crawl, acquisition.http_table |
| 质量 | quality.profile, quality.clean |
| 统计 | statistics.survey.analyze, statistics.descriptive, statistics.group_compare, statistics.correlation, statistics.regression, statistics.frequency, statistics.contingency, statistics.logistic, statistics.factor_diagnostics |
| 计量 | econometrics.panel, econometrics.did, econometrics.iv, econometrics.timeseries |
| 企业 | enterprise.kpi, enterprise.cohort, enterprise.variance |
| 交付 | delivery.package, validation.verify, delivery.publish |
survey.analyze 作为问卷分析兼容别名保留。完整输入、输出和方法边界见能力参考。
项目内置 14 个核心 Skills,覆盖任务工作区、需求计划、自适应重规划、用户沟通、参考论文蒸馏、数据质量与来源、采集治理、网页采集、统计、计量、企业分析、交付生产、去防御性报告写作与交付验证。运行时先读取目录元数据,仅在已批准阶段按需加载正文,并记录激活版本与内容哈希。
快速开始(开发快照)
环境要求:Node.js >=22.19.0、通过 Corepack 使用 pnpm 10.23.0、Python >=3.11,以及本地 DeepSeek Harness 运行环境。真实模型调用需要用户自己的凭据。
当前快照锁定 DeepSeek Harness 0.1.7-rc.2 和 Cordis 4.0.4,默认模型为 deepseek-official/deepseek-flash。DeepSeek Provider 使用 Messages API;自定义 DEEPSEEK_BASE_URL 必须支持该协议,留空使用官方默认地址。升级已有安装时,需同步更新对应 Profile 的依赖,不能只更新全局 CLI。
corepack pnpm install --frozen-lockfile
python -m venv .venv
.\.venv\Scripts\python.exe -m pip install -e ".\python[dev]"
corepack pnpm build
corepack pnpm typecheck
node scripts/doctor.mjs --offline
复制 .env.example 为本机 .env 后,填写工作区、Harness home 和必要凭据。不要提交 .env,也不要把密钥写进任务输入或报告。
创建独立任务目录:
corepack pnpm task:new -- --workspace '' --date 20260914 --slug survey-study --title '问卷研究'
公开快照提供构建、类型检查、Doctor、任务创建和发行构建所需源码。完整内部测试、真实 API 验收夹具和私有数据不随公开快照提供,因此不要把公开仓库中的 pnpm test 当作完整验收入口。发行构建产物不会自动上传或发布。
安装并启动 Web 入口
在非系统盘的干净 Git 源码目录中继续执行以下命令;本地构建修改版时可给打包命令添加 --dry-run。安装器要求新的 Profile 名称,已有安装请使用另一个名称,避免覆盖。
.\.venv\Scripts\python.exe -m pip install build==1.3.0 setuptools==80.9.0 wheel==0.45.1
node scripts/package-release.mjs --output dist/local
$projectRoot = (Get-Location).Path
$env:DSH_HOME = Join-Path $projectRoot 'try/tmp/local-harness'
$env:DA_WORKSPACE_ROOT = Join-Path $projectRoot 'try/tmp/local-workspace'
$env:DA_PYTHON = Join-Path $projectRoot '.venv/Scripts/python.exe'
$bundleSource = 'file:' + (Join-Path $projectRoot 'dist/local/data-analysis-profile-0.2.0.tgz').Replace('\', '/')
node scripts/profile-install.mjs --surface web --profile data-analysis-web --bundle-source $bundleSource
$profilePath = Join-Path $env:DSH_HOME 'profiles/data-analysis-web'
npm --prefix $profilePath install --ignore-scripts
$env:DA_PROJECT_ROOT = Join-Path $profilePath 'node_modules/@data-analysis-agent/profile'
New-Item -ItemType Directory -Force $env:DA_WORKSPACE_ROOT | Out-Null
.\scripts\dev.ps1 -Profile data-analysis-web
在官方 Web 入口配置自己的模型凭据。.env 是配置账本,启动脚本不会自动加载它;上面的变量显式设置在当前 PowerShell 进程。Headless 安装使用 --surface headless 和独立 Profile 名称,详细安装包流程见安装说明。
示例需求
我有一份问卷 XLSX 和研究假设。请先核对量表条目、缺失、重复和编码,再做信度、描述统计、组间差异、相关与回归。完整报告有效样本量、效应量、置信区间和诊断,生成中文 DOCX、XLSX 与 PDF 候选供我确认。
请按我提供的 DOI 阅读全文,分开列出论文中的研究设计、估计对象、识别假设和限制,再判断这些方法迁移到当前面板数据还缺哪些字段或检验。
若关键条件不满足,请停止因果解释并给出替代分析方案。
在已批准的公开来源与请求预算内采集行业指标,保留网页快照、来源时间、失败清单和字段映射;随后计算已确认口径的 KPI、cohort 与差异分解。
能力边界
- 本项目不能保证论文投稿、答辩或录用结果,也不能替代研究者、导师、伦理审查或领域专家的最终判断。
- 参考论文蒸馏要求可定位的标题、DOI、URL 或本地全文。只有摘要或元数据时会明确降低证据范围,不补写正文细节。
- 网络采集受网站条款、robots、访问权限、验证码、登录态、隐私和预算约束。未获授权的来源或字段不会自动扩大。
- 观察性相关和普通回归不自动产生因果结论。关键识别假设不能支持时,系统应降级为描述或相关结论。
- 自动化依赖用户提供正确数据、字段含义、凭据和权限。缺失关键信息时,预期行为是停止、澄清或重规划。
架构
- packages/profile-data-analysis/:Web/Headless Profile、系统提示与 operation catalog。
- packages/harness-adapter/:隔离 DeepSeek Harness 预发布接口差异。
- packages/workflow-core/:需求路由、计划 DAG、事件投影、恢复、重规划与分叉。
- packages/policies/:计划、路径、网络、风险和数据诚信约束。
- packages/skills-runtime/ 与 skills/core/:核心 Skills 发现、来源校验、按需加载和激活审计。
- packages/tools/:计划、Worker、采集与交付生命周期工具。
- python/da_worker/:受路径、格式、时间、输出和内存预算约束的确定性分析 Worker。
- packages/workspace/ 与 templates/workspace/:多任务工作区生命周期与模板。
本项目建立在 DeepSeek Harness / Cordis 之上;上游运行时与第三方科学计算、文档和字体组件保留各自许可与归属。更多设计说明见架构文档。
许可与引用
本项目以 PolyForm Noncommercial 1.0.0 提供源代码访问,用于该许可允许的非商业目的。商业使用需另行取得商业许可。这是 source-available(源代码可用)项目,不宣称为 OSI 认可的开源软件。
完整许可包含对教育机构、公共研究机构等非商业组织的明确授权,具体适用范围以 PolyForm 原文为准。MIT/OFL 等第三方组件继续适用其原许可;本版本的项目自有 Skills 使用根目录许可。历史版本已授予的 Apache-2.0/MIT 权利不因后续版本变更而撤回。
引用元数据见 CITATION.cff。作者与仓库:q2955161835-debug / Data_analysis_agent。
文档导航
- 能力与 operation 参考
- 学术与商业工作流
- 系统架构与数据流
- 常见问题与边界
- 面向检索工具与语言模型的索引预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
q2955161835-debug/Data_analysis_agent
采集数据并完成计量分析,输出可复现报告
相关插件 · 工具 / 效率
破甲管控台kingcharleslzy-ai/dsh-purge
dsh-purge Community · DeepSeek Harness 社区维护版:宿主兼容、状态诊断、提示词管理、更新与本机备份回滚。基于小杨 / YuJunZhiXue 的 dsh-purge。
★ 4,330已汉化DeepSeek 客户端
74.5
网文长卷lingfengQAQ/webnovel-writer
基于 Claude Code 的长篇网文辅助创作系统,解决 AI 写作中的「遗忘」和「幻觉」问题,支持 200…
★ 7,636已汉化DSH
72.2
多智能体协作HKUDS/AutoSwarm
AutoSwarm: Unify Your Agents. Unify Your Context (Codex · Claude Code · DeepSeek Harness · Muse · Grok · WorkBuddy· nanobot · and more)
★ 2,349已汉化DSH
71.6
Vox 拼贴视频生成Alisa0808/vox-director
🎬 Vox Director拼贴动效导演
★ 2,129已汉化DSH
71.4
Agent 演化引擎Q00/ouroboros
智能体 OS:智能体自己变聪明,我们只守住底线:面试准入、分阶段评估、带预算的进化循环。MCP 服务器,14 种运行时:Claude Code、Codex CLI、Gemini CLI、OpenCode、Copilot、Kiro 等。
★ 6,311已汉化DSH
71.4
智能体运行框架路由HarnessRouter/harnessrouter
智能体 harness 的统一接口。
★ 3,984已汉化DSH
71.3
这是你的仓库?认领条目