前言¶
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