dsh-office-audit:Excel 财务模型审计器

前言

DeepSeek Harness(DSH)以「一切皆插件」的方式扩展能力。在构建财务模型或交付含公式的 Excel 时,常遇到公式错误、断链、三表不平衡、现金流加总异常等问题。靠人工逐行检查既耗时又容易遗漏。dsh-office-audit 把审计流程固化为一个 host 插件,通过 office_audit 工具对任意 .xlsx/.xlsm 做一次结构化审计,输出分级问题清单与 markdown/JSON 报告,适合在模型交付、自查、版本回溯等场景中调用。

是什么

dsh-office-audit 是一个 DeepSeek Harness host 插件,提供 office_audit 工具。它先用 LibreOffice Kit 对工作簿重算公式,再对结果执行 13 类检查,包括公式错误、断链、格式与单位不匹配、三表平衡、现金流加总、留存收益倒推、比率表约定、数据清洗与异常值等。审计结果按 critical / warning / info 分级,并生成 markdown 报告、JSON 结构化结果,可选在工作簿副本中写入「模型审计」表。

安装与启用

以 desktop profile 为例,用 link 安装:

CLI="/Applications/DeepSeek Harness.app/Contents/Resources/runtime/cli/bin/dsh"
"$CLI" plugin --profile desktop add link:/path/to/plugins/dsh-office-audit

安装后,编辑 ~/.dsh/profiles/desktop/package.json,在 dsh.profile.bundles 中加入 "dsh-office-audit":

{
  "dependencies": { "dsh-office-audit": "link:/…/plugins/dsh-office-audit" },
  "dsh": { "profile": { "bundles": [ "…", "dsh-office-audit" ] } }
}

确认 GUI 工具列表中出现 office_audit。DSH 会自动重载 profile;若未出现,重启 DSH。

离线/换机时可用归档包:

"$CLI" plugin --profile desktop add file:/path/to/deploy/office-audit/vendor/dsh-office-audit-0.2.0.tgz

卸载:

"$CLI" plugin --profile desktop remove dsh-office-audit

调用方式

office_audit 是注册到 agent 的工具,支持以下参数:

office_audit(
  path: "/abs/or/relative/model.xlsx",   # 必填;.xlsx/.xlsm
  profile: "auto",                       # auto | financial-model | ratio-table | generic
  recalculate: true,                     # 默认 true:先用 LibreOffice Kit 重算公式缓存
  writeAuditSheet: false,                # true:在工作簿副本里写「模型审计」表
  checks: [],                            # 可选:只跑指定类别
  outputDir: "..."                       # 可选:报告目录(默认 <工作簿目录>/.audit)
)

返回内容包括 summary(三级计数)、findings(含 sheet/cell/证据/建议)、report.markdownPath、report.jsonPath,以及可选的 auditWorkbook。审计过程不修改原文件;写入审计表时会生成 <stem>-audit-<时间戳>.xlsx 副本。

检查清单(13 类)

类别 级别 内容
formula-errors critical 重算后仍为 #REF! / #DIV/0! / #VALUE! / #NAME? / #N/A / #NUM! / #SPILL! / #CALC! 的单元格
broken-references critical / warning 公式引用不存在的工作表(用 tokenizer 解析,不用正则);外部工作簿链接
formula-consistency info 同一行内公式模式不一致(归一化相对引用后比较;首尾特殊逻辑自动排除)
hardcoded-values warning 公式与未标输入色的常数混排(蓝字/黄底视为合法输入)
number-format warning / info 金额行/天数行套用 % 格式、比率行用金额格式(按行标签语义判断)
balance-sheet critical 资产总计 ≠ 负债合计 + 所有者权益合计(0.1% 容差,逐期)
retained-earnings warning 期末留存收益 ≠ 期初 + 净利润 − 分红(识别法定口径 vs 模拟口径差异)
cash-tieout critical BS 货币资金 vs CF 期末现金及现金等价物(跨表、按期间匹配)
cash-flow-subtotals critical 净增加额 ≠ 经营+投资+筹资;期末现金 ≠ 期初 + 净增加额
ratio-conventions warning / info 内联硬编码 365/360/366;季度/年度混用;未投产期分母过小;平均余额 vs 期末口径混用;首期 /0
data-cleaning warning / info 空白(仅时间序列表)、数字存文本、占位符「-」、混合类型、重复行
outliers warning 同比增速超过 2000% 阈值(可按期间类型对齐,季度只比季度)
workbook-structure info 隐藏工作表、定义名称、纯数值表

插件会自动匹配三表行标签(资产总计/负债合计/所有者权益合计/留存收益/净利润/分红/货币资金/经营活动现金流净额等),中文表头可用;找不到对应行时静默跳过。

运行环境

插件自动探测运行环境,无需额外配置。主要依赖:

  • Python 3 + openpyxl:位于 ~/.dsh/dsh-runtimes/dsh-primary-runtime/dependencies/python
  • LibreOffice Kit CLI:DSH app 包内 app.asar.unpacked/dsh/node_modules/@deepseek-ai/libreoffice-kit
  • Node:DSH runtime 的 node,用于调用 kit CLI

可通过环境变量覆盖路径:DSH_AUDIT_PYTHON、DSH_AUDIT_NODE、DSH_AUDIT_OFFICE_CLI。

降级行为:
- LibreOffice Kit 缺失时自动跳过重算,只做静态检查,并在报告里标注「未重算」。
- Python 缺失时工具报错,并提示用 load_workspace_dependencies 检查运行时。

已知限制

  • 只支持 .xlsx/.xlsm;.xls 需先转换。
  • 派生表(common-size / 结构 / 同比 / 敏感性)会自动跳过金额格式、增速与三表检查——它们的行是占比,按金额口径检查会误报。
  • 公式一致性降为 info:真实模型的首期/末期特殊逻辑很常见,报告里只作提示。
  • 三表/比率检查依赖中文行标签;非中文模板会退化为通用检查。
  • 公式一致性、硬编码、格式判断是启发式,可能有个别误报;报告提供了单元格位置与证据,便于人工复核。
  • 重算使用 LibreOffice,个别 Excel 专有函数(如 XLOOKUP 旧版本、部分动态数组)可能不支持。
  • 默认最多扫描 12 万个公式、40 万个单元格;超大模型会截断并在报告标注。

自测与回归

项目提供了 fixture 与回归脚本:

# 回归:fixture + 本机三张真实表(存在才跑)
node test/regression.mjs

# 只跑引擎(不重算)
PY="$HOME/.dsh/dsh-runtimes/dsh-primary-runtime/dependencies/python/bin/python3"
PY core/audit.py --input test/fixtures/broken-model.xlsx --out-json /tmp/a.json --out-md /tmp/a.md

fixture broken-model.xlsx 的期望结果是 6 critical / 12 warning / 5 info,覆盖断链、公式错误、三表不平衡、现金流加总与现金 tie-out 等。回归结果写入 test-output/regression-<时间戳>.json。

适用场景

  • 模型交付前的自查,快速定位公式错误与断链。
  • 三表与现金流加总、现金 tie-out 等关键指标的定期校验。
  • 比率表、数据清洗与异常值筛查。
  • 团队共享模板的版本审计与规范检查。

使用前应检查插件源码与许可证(本插件为 MIT),确认其在当前 DSH 进程权限下可访问所需文件与运行时依赖。

总结

dsh-office-audit 把 Anthropic financial-services 仓库的审计清单按中文财务模型口径改写为 DSH 插件,通过 LibreOffice Kit 重算与 13 类结构化检查,为 Excel 财务模型提供可复现的自动化审计能力。它不修改原文件,输出分级结果与可读报告,适合在模型开发与交付流程中集成。

  • 目录页:https://www.skillhub.cn/plugins/zirscard/dsh-office-audit
  • GitHub:https://github.com/zirscard/dsh-office-audit
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye