dsh-plugin-cas-kb
English | 中文
给 DeepSeek Harness 用的中国财会知识组合包。装上之后,agent 能按条取《企业会计准则》 《小企业会计准则》《中国注册会计师执业准则》与税法的原文,并且 —— 更要紧的 —— 不会拿着真原文编出一个没有条款锚的结论。
数据来自账面 Quaesto 开放知识库:265 篇可寻址文书, 分两层 ——
- 条文层 53 篇 / 1,832 条原文:企业会计准则 43 篇(含被替代的历史版本共 59 个版本文本)、
小企业会计准则及划型标准规定、税法 8 部法律与实施条例;其中 50 篇另带逐步挂条款锚的 判断决策程序(1,681 步)
- 单元层 212 篇 / 10,013 个可引用单元:注册会计师审计准则、应用指南与职业道德守则
103 篇(7,672 单元),另有准则解释、应用案例、官方解读、证监会监管指引与年报通知
免注册、无鉴权、只读。
> 审计这一层是这个包的主要价值所在。 审计准则应用指南散在中注协官网的 PDF 附件里, > 没有全文索引,通用联网搜索抓不到正文。实测在 CPA 审计题上,装本包比同一模型出厂自带的 > 联网搜索多答对 4.9 个百分点(79 题 × 6 轮,95% CI [+1.0, +9.2],Holm 校正后 p=0.013); > 而在会计题上没有增益 —— 企业会计准则全网都搜得到,这里提供的是可核性而非正确率。 > 完整四臂数据、置信区间与「不能说的话」见 > 实测页。
装上之后多了什么
十个工具(经 @deepseek-ai/dsh-mcp-client 注册,名字是 mcp__quaesto_kb__*)。 条文体例七个:
| 工具 | 回答什么 |
|---|---|
list_standards | 库里有哪些条文体文书,可按体系过滤(CAS / ASSE / TAX / CSA) |
search_kb | 在原文条、判断步骤与单元制文书里全文检索(中文已做多级降级匹配) |
get_article | 按准则号 + 条号取原文逐字文本 |
get_decision_procedure | 这件事怎么一步步判,每步挂着原文条款锚 |
check_applicability | 这家主体该执行哪套体系 —— 企业规模是算出来的,不是声明的 |
get_tax_treatment | 税前扣除标准、税率与征收率、进项不得抵扣情形、小微优惠 |
get_tax_accounting_diff | 同一事项会计与税法差在哪,属永久性还是暂时性差异 |
单元体例三个 —— 应用指南、准则解释、应用案例、监管指引这类没有「第 X 条」体例的文书 走这一路,靠 stable_id 寻址:
| 工具 | 回答什么 |
|---|---|
list_documents | 库里有哪些单元制文书,可按体系过滤(CAS / CSA) |
search_units | 只在单元制文书里检索,返回可直接喂给 get_unit 的 stable_id |
get_unit | 按 stable_id 取一个单元的逐字原文 + 出处 / 文号 / 抓取时间 / 校验值 |
一个 skill —— china-accounting-standards。只挂工具是不够的:模型拿着真原文照样可能 给出没有锚的结论,那等于用知识库的可信度给幻觉背书。skill 把五条硬规矩交给模型:
1. 给不出逐字出处就不挂条款锚 —— 实务共识不是准则原话。 2. 不要给单元制文书编条号 —— 应用指南没有条文体例,「《X 应用指南》第 5 条」是假引用。 3. 判断层是 AI 生成的研究草案,未经注册会计师核定;原文层是官方发布的转录副本,两者引用分量不同。 4. 企业规模由 (行业, 营业收入, 从业人员, 资产总额) 算出,不能自己声明 —— 划型阈值按行业不同。 5. 税法公告层(L3)尚未收录;标 l3_dependency 的条目必须提示核对现行公告。
另有一条行为约束,它是这一版 skill 的主要改动:查证是用来核对的,不是用来改答案的。 先按自己的理解得出初判再去查;查回来的条文只有明确与初判矛盾时才改口,且必须指出矛盾在 哪一句原文上。「查到一条相关条文」不等于「这条条文否定了初判」。 实测这条规则在 CPA 会计题上相对只给工具净增 1.7 个百分点(区间 [+0.1, +3.4])—— 而在同一批题上,光把新库接上去的增益是 +0.0pp。
安装
dsh plugin --profile <name> add github:niuniu-869/dsh-plugin-cas-kb#<sha>包内是纯 ESM 且没有任何构建脚本,所以 git 安装不会在你机器上执行任何代码,也不需要 allowBuilds 授权。锁 commit 是为了让之后的推送不能悄悄改变你实际运行的内容。
尚未发布到 npm。
实测记录
dsh --profile headless "业务招待费在企业所得税前能扣多少?给出条款依据。" —— 这次会话日志里真实的工具调用顺序:
1. skill {"name": "china-accounting-standards"}
2. mcp__quaesto_kb__list_standards {"framework": "TAX"}
3. mcp__quaesto_kb__search_kb {"q": "业务招待费 税前扣除"}
4. mcp__quaesto_kb__get_tax_treatment {"category": "税前扣除"}
5. mcp__quaesto_kb__get_tax_treatment {"id": "cit-deduct-entertainment"}
6. mcp__quaesto_kb__get_article {"ref": "中华人民共和国企业所得税法实施条例", "article_no": 43}回答逐字引了实施条例第四十三条,把「超支不得结转」标注为对条文的对比阅读而非条文原话, 指出差异性质为永久性,并提示「当年销售(营业)收入」的口径在公告层、本库尚未收录。
覆盖范围与已知缺口
- 原文层 —— 官方发布的转录副本(casc.org.cn、gov.cn、fgk.chinatax.gov.cn),带来源
链接、抓取时间与内容校验值;历史版本单独保留,废止文书有明确标注。
- 判断层 —— 50 篇判断决策程序 / 1681 步,全部 AI 生成、未经 CPA 复核,每一篇在接口
返回里都带着 requires_human_confirmation 标记。它们过了一组自动校验门(条号必须真实 存在、每个数字必须在被引条文里逐字找得到、交叉引用必须能解析),这能挡住编造引用, 但不等于专业意见。
- 单元层 —— 官方发布件的转录副本,正文多取自官网 PDF/DOC 附件(cicpa.org.cn、
kjs.mof.gov.cn 等),带来源链接、抓取时间、正文 SHA-256 与附件原件校验值。 没有条文体例,按 stable_id 寻址;标「推导 ID」的单元在原文里没有官方编号, ID 由排版位置推导,换版可能变化。
- 审计准则暂无判断层 —— CSA 只有原文,没有判断决策程序。
- 不收录:税法公告层(财税文件与税务总局公告 —— 大量现行优惠口径在这一层)、
任何有著作权的出版物。
配置覆盖
两行都可以在你自己 profile 的 cordis.patch.yml 里按 id 覆盖,例如指向自建镜像。 注意 patch 是整段替换 config 而不是逐键合并,覆盖时要把需要的键写全:
- id: quaesto-kb-mcp
config:
serverName: quaesto_kb
transport: streamable-http
url: https://your-mirror.example.com/mcp
toolCallTimeoutMs: 30000
failOnStartupError: falseserverName 同时出现在两行和 skill 正文里,改就要一起改,否则 skill 会教模型去调一个 不存在的工具。
数据与隐私
工具调用会发到 api.accountingllm.site,也就是你的查询内容会离开本机。服务端不要求账号、 不存用户身份,但会记录工具名、调用参数和按日轮换盐的 IP 哈希,用于用量统计与防滥用, 并按 IP 限流 120 次/分钟。插件本身不做任何额外遥测。
免责
原文层为转录副本,以财政部与国家税务总局官方发布为准;判断层为研究草案,未经注册会计师 核定,不构成会计或税务意见。
MIT 协议。账面 Quaesto —— 面向 AI Agent 的会计基础设施。