关于 French family benefits (CNAF corpus)
French family benefits (CNAF corpus) 是用于演示法国福利可执行模型的语料,适合探索法律规则如何表示并追溯至公开来源。其范围和准确性有限,不是官方实现,也不构成法律建议。
主要功能
- 01法国福利可执行模型
- 02将答案关联至法律来源
- 03涵盖多个福利领域的模型
- 04包含事实与法律日期的场景
- 05提供 JavaScript 和 TypeScript 包
适用场景
- 01探索 APL 计算如何随解释变化
- 02追溯模型答案的法律来源
- 03在本地运行声明的模型场景
- 04检查福利规则及例外
MCP 相关
项目文档介绍了通过 stdio 连接的本地 CNAF MCP 选项;所给信息未说明其提供的工具。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://mcp.arxo.io/mcp/cnafclaude mcp add --transport http io-arxo-cnaf https://mcp.arxo.io/mcp/cnaf{"mcpServers":{"io-arxo-cnaf":{"type":"http","url":"https://mcp.arxo.io/mcp/cnaf"}}}在 Cursor 中打开{"servers":{"io-arxo-cnaf":{"type":"http","url":"https://mcp.arxo.io/mcp/cnaf"}}}在 VS Code 中打开{"mcpServers":{"io-arxo-cnaf":{"type":"http","url":"https://mcp.arxo.io/mcp/cnaf"}}}{"mcpServers":{"io-arxo-cnaf":{"serverUrl":"https://mcp.arxo.io/mcp/cnaf"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
16| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| kinds | array | 否 | 限制候选类型 |
| limit | integer | 否 | 候选项数量(8,最多 25) |
| query | string | 是 | 用您自己的话提出问题或概念 |
| package | string | 否 | 仅在此法案中搜索 |
详细介绍
arxo-cnaf
通过可执行模型探索法国福利规则,并追溯答案所依据的已发布法律来源。
首先,这只是一个演示。 本仓库展示了使用 Arxo 对法规进行建模的能力: 将法国的家庭福利法编写为可执行法条,并为每个答案标明来源。这是一个根据已发布的法国法律构建的独立模型,用于教学和演示。本模型不保证法律准确性或完整性,也不是由 Cnaf 或任何法国机构实施或委托实施的,其答案不构成法律建议。对于实际案件,请以官方文本和主管机构为准。
选择起点
| 我想…… | 从这里开始 |
|---|---|
| 在浏览器中探索已保存的案例及其来源 | 法国福利实验室 — 无需安装 |
| 使用 JavaScript 或 TypeScript 中的模型 | Node.js 包 |
| 使用 npx 运行本地 MCP、连接客户端或独立部署 | CNAF MCP — stdio、连接与固定镜像 |
| 在我的设备上运行一个场景 | 快速开始 |
| 查找某项福利的模型 | 浏览模型 |
| 重现本书的某一章 | 书中示例 |
| 重新构建软件包或检查注册表 | 可复现性指南 |
法国福利实验室,截取于 2026 年 10 月 12 日。打开演示并选择 “探索已保存的家庭案例”,查看其输入、答案和法国来源。 实验室展示的是其自行记录的证据版本;其覆盖范围和版本 与本仓库的导出内容相互独立。
它能回答什么
| 问题 | 查看具体示例 |
|---|---|
| 选择不同解读会如何改变金额? | 一个 APL 案例,两种解读 |
| 为什么没有给出答案? | 未选择解读的同一 APL 案例 |
| 金额及其参数从何而来? | 从一项规定追溯到已保存的计算 |
| 两个法律日期之间有哪些变化? | 在实验室中比较已保存的日期 |
| 一个案例涉及哪些事实、义务和阶段? | 浏览书中的虚构案例档案 |
浏览器示例属于实验室记录的版本。下方的本地 APL 示例则属于本仓库固定版本的模型。
在 Node.js 中使用
需要 Node.js 20+。固定版本的模型可通过
@arxo/canon-fr-benefits 获取。
加载一个世界,并通过通用的 @arxo/law API 查询:
npm install @arxo/[email protected] @arxo/[email protected]
import { open } from '@arxo/law';
import { loadModel } from '@arxo/canon-fr-benefits/apl';
import { household, caseInput } from '@arxo/canon-fr-benefits/examples/apl';
const model = await loadModel();
const apl = await open(model.spec, {
offline: true,
local: { packages: { [model.spec]: model.package } },
});
const answer = await apl.collect('aide_formule', [household, '?amount'], caseInput);
console.log(answer.evaluationStatus); // COMPUTED
console.log(answer.value[0].value); // '20.17' (EUR, formula amount)
console.log(apl.unfold('aide_formule', { depth: 2 }).text);
输入是下方的 APL 技术案例,并选择了 PpPlancherFinal。
答案包含引擎的规范文档、证明和哈希值。
这是一个公式金额,而非最终应付补助。该软件包包含全部 21 个模型;加载子路径时,只会解析所选世界。
软件包 API、模型导出、TypeScript 和验证限制。 维护者请参阅:如何发布包含多个模型的规范。 源模型固定为原始公开导出版本;npm 交付检查与完整语料验收相互独立,后者仍为尚未检查。
快速开始
需要 Git、Node.js 20+ 和 npm。此示例使用已发布的 law 0.2.2 命令行工具来执行模型。软件包已包含其固定版本的依赖项;在此场景中无需 Python、还原源文件或从注册表安装。
npm install -g @arxo/[email protected]
law --version
git clone https://github.com/arxohq/arxo-cnaf.git
cd arxo-cnaf/packages/fr.apl
law test . --file tests/finish-lecture-pp.lawtest --json
此操作会运行七个场景,测试《住房补助法典》第 D. 823-17 条中的个人缴款。命令以代码 0 退出,且 JSON 报告中没有失败场景,即表示成功。这些检查依据的是模型声明的预期,并非对法律准确性的认证。
成功报告包含以下字段:
{"ok": true, "passed": 7, "failed": 0, "notRun": 0, "total": 7}
需要入门帮助?请参阅故障排除。
示例:一个案例,两种解读
模型记录了对《住房补助法典》第 D. 823-17 条中个人缴款的两种解读。选择在 SensMinimumPp 处进行,这是一个解读组,要求在 PpPlancherFinal 和 PpLitteral 中恰好选择一项。
该场景固定为以下条件:单人且无受抚养人,法国本土 II 区,法定日期为 2024 年 6 月 15 日,申报资源为 €4,000,租金为 零。 场景还设定为普通住房、唯一租户、团结租金减免为零,且无 AAH/AEEH 受益人。租金为零是为了刻意隔离不同解读的差异;这是技术探测,并非现实的补助申请。
此探测使用的固定参数为 P0 = €37.91、Tp = 0.0283、R0 = €5,186、L = €0 和 C = €58.08。
| 所选解读 | 个人缴款 Pp | 公式金额 Af |
|---|---|---|
PpPlancherFinal — 保留最终下限 P0 | €37.91 | €20.17 |
PpLitteral — 不设最终下限,直接应用公式 | €4.3462 | €53.7338 |
| 未选择解读 | INTERPRETATION_REQUIRED | INTERPRETATION_REQUIRED |
两种解读都会输入同一个 participation_personnelle 关系。随后,同一条 AideFormule 规则会使用 Af = L + C − Pp。这些是该探测中的精确公式金额;两者都不代表最终应付补助。模型明确保留这一选择,不会代你选定某种解读。
金额背后的规则
这是 aide_formule 的原生 unfold 响应,以树形结构呈现,数据来自已发布的 [email protected] 世界。每条规则都展示其前提、强度和来源锚点。两个生成缴款额的规则均清晰可见:ParticipationPersonnelle 和 ParticipationPersonnelleLitterale。
未选择具体案例、法律日期或解读。本图展示模型中可用的规则,而非哪些规则适用于某个具体答案。深度限制标记由引擎生成。重复的条文定位信息在视觉上合并显示;JSON 中保留了每个带日期的来源锚点。
按照实际模型中的指引查看:
| 步骤 | 查看内容 |
|---|---|
| 来源引用和已存档的出版物 | 01-sources.law — CCH_D823_17、CCH_D823_16 及其带日期的版本 |
| 解读选择和字面分支 | 24-lecture-pp.law — SensMinimumPp、ParticipationPersonnelleLitterale |
| 最终下限分支和下游公式 | 02-calcul-locatif.law — ParticipationPersonnelle、AideFormule |
| 两种解读和未选择解读检查 | finish-lecture-pp.lawtest — 快速入门中运行的七种场景 |
规则和例外
droit_ouvert 的同类视图展示了一条可被例外推翻的准入规则,以及它的例外规则(defeater)。展开 surface_insuffisante 后,可看到它自身的生成规则,以及针对该条件的一条例外。原生响应中的前提分为 fact、derived、judgment 和 test 几种不同类型。
这是已发布世界中声明规则结构的示意图,并非对某人是否符合资格的判定。未选择具体案例、日期或解读。
完整原生 JSON · 原生文本和标签 · 已声明的例外场景
如何阅读模型
已发布文本 → 可执行规则 → 带日期的案例事实 → 答案和证据。
canon 是一个包含法律模型、来源引用及检查项的软件包。scenario 提供事实、日期和任何已选定的解读,然后说明预期答案。固定来源是已存档的出版物,带有出处信息和内容哈希,因此之后可以核验模型的输入。
规则以数据的形式存储在 .law 文件中,并由 law 执行。本代码库不包含以应用代码单独实现的福利公式。模型各自有适用范围和日期界限;将某个软件包的答案用于不同案例前,请先阅读其来源和场景。
概览
| 此快照 | 记录的值和证据 |
|---|---|
| 主题 | 法国福利模型,包括住房、家庭、残障、照护和收入支持;每个套餐都有自己的适用范围 |
| 规范导出 | 2026 年 10 月 12 日 · 公开源代码版本 f2efcc6 |
| 源代码套餐和场景 | 21 个套餐 · 声明了 1,985 个场景 · packages.json |
| 模型语义 | law.core/0.2.11 · fr.apl/law.lock |
| 快速入门使用的 CLI | 已发布的 law 0.2.2;预期报告:7 项通过,0 项失败 |
| 注册表发布内容 | 22 个套餐,包括依赖闭包 · 可复现性指南 |
浏览模型
以下名称标识每个模型的主题,并不表示该福利已获得完整覆盖。版本和场景清单 记录了导出的套餐版本和依赖数量。
住房
| 主题 | 模型 |
|---|---|
| 住房补助(APL / AL) | fr.apl |
| 住房补助支付阶段 | fr.apl.versement |
| 住房补助所采用的收入 | fr.tax.income_for_apl |
家庭和儿童
| 主题 | 模型 |
|---|---|
| 家庭津贴(AF) | fr.pf.af |
| 幼儿福利(PAJE) | fr.pf.paje |
| 育儿补贴(CMG) | fr.pf.cmg |
| 家庭补贴(CF) | fr.pf.cf |
| 开学补贴(ARS) | fr.pf.ars |
| 家庭支持津贴(ASF) | fr.pf.asf |
残障和照护
| 主题 | 模型 |
|---|---|
| 成人残障津贴(AAH) | fr.css.aah |
| 残障儿童教育津贴(AEEH) | fr.pf.aeeh |
| 父母陪护津贴(AJPP) | fr.pf.ajpp |
| 照护者津贴(AJPA) | fr.css.ajpa |
收入支持
| 主题 | 模型 |
|---|---|
| 积极团结收入(RSA) | fr.casf.rsa |
| 劳动活动补贴 | fr.css.prime_activite |
| 最低收入福利的资源 | fr.minima.ressources |
共享规则和参数
| 主题 | 模型 |
|---|---|
| 家庭福利基础规则 | fr.pf.core |
| 福利支付和债务追偿 | fr.prestations.versement |
| 重新估值 | fr.css.revalorisation |
| 社会保障上限(PASS) | fr.css.pass |
| 最低工资(SMIC) | fr.travail.smic |
形式化深度
深度按模型记录,基于源代码修订版本
f2efcc6。
统计单位为固定出版版本中的文章:同一篇文章可能出现在多个版本中。每个程序包中的相同文档字节只计一次。不包括导入内容。
可执行 / 已测量表示至少有一个推导节点的单位。其他级别为I——仅在明确解释下可执行;A——有依据但无推导规则;S——仅有源片段;N——没有模型节点。可执行单位仍可能只得到部分表达。这些计数描述的是固定摘录,而非某项福利或法国法律完全形式化的百分比。
| 模型 | 可执行 / 已测量 | 其他 I / A / S / N | 规则 / 规范 | 场景 |
|---|---|---|---|---|
fr.apl | 1,352 / 1,654 † | 0 / 166 / 136 / 0 | 480 / 70 | 406 |
fr.apl.versement | 未测量 | — | 9 / 0 | 11 |
fr.casf.rsa | 422 / 549 | 1 / 0 / 126 / 0 | 155 / 34 | 133 |
fr.css.aah | 168 / 196 † | 0 / 0 / 28 / 0 | 64 / 4 | 70 |
fr.css.ajpa | 38 / 60 | 0 / 0 / 22 / 0 | 18 / 5 | 44 |
fr.css.pass | 未测量 | — | 13 / 0 | 26 |
fr.css.prime_activite | 693 / 813 † | 0 / 0 / 120 / 0 | 344 / 17 | 201 |
fr.css.revalorisation | 未测量 | — | 3 / 0 | 12 |
fr.minima.ressources | 105 / 140 | 0 / 0 / 35 / 0 | 102 / 0 | 31 |
fr.pf.aeeh | 79 / 110 | 0 / 1 / 30 / 0 | 100 / 19 | 50 |
fr.pf.af | 103 / 103 † | 0 / 0 / 0 / 0 | 84 / 3 | 73 |
fr.pf.ajpp | 286 / 388 | 0 / 6 / 96 / 0 | 82 / 10 | 91 |
fr.pf.ars | 143 / 180 | 0 / 1 / 36 / 0 | 16 / 2 | 26 |
fr.pf.asf | 163 / 191 | 0 / 0 / 28 / 0 | 23 / 3 | 36 |
fr.pf.cf | 103 / 107 † | 0 / 0 / 4 / 0 | 47 / 6 | 96 |
fr.pf.cmg | 37 / 44 † | 0 / 0 / 7 / 0 | 180 / 7 | 45 |
fr.pf.core | 998 / 1,371 | 0 / 0 / 373 / 0 | 251 / 36 | 326 |
fr.pf.paje | 29 / 38 | 0 / 0 / 9 / 0 | 60 / 4 | 87 |
fr.prestations.versement | 未测量 | — | 183 / 23 | 138 |
fr.tax.income_for_apl | 1 / 1 | 0 / 0 / 0 / 0 | 4 / 0 | 3 |
fr.travail.smic | 26 / 42 | 0 / 0 / 16 / 0 | 53 / 0 | 80 |
† **部分测量:**部分自有出版物或已声明文档不在测量单位之内;报告中对此有说明。未测量表示此方法没有可用的已声明源文档划分,并不表示模型没有可执行规则。规则 / 规范分别统计自有规则节点和规范模板。场景为已记录的导出清单;本次文档更新未重新运行这些场景。
浏览仓库
| 路径 | 内容 |
|---|---|
packages/ | 模型源文件、采集的文本、场景和固定依赖;每个法典一个目录 |
registry/ | 可安装的发布包及其完整依赖闭包——共 22 个包,包含依赖;并非源文件树的副本 |
tools/ | 获取固定版本构建工具和还原暂不提供的源文件的脚本 |
packages.json | 导出的包版本、哈希、依赖列表和记录的场景结果 |
toolchain.lock.json | 精确的构建工具版本及其 SHA-256 |
WITHHELD.json | 不再分发的源文件的地址和哈希 |
这些包包含面向公众的使用套件;编写报告和维护脚本不在其中。有关保留规则和只读保护措施,请参阅公开包内容。
如需使用这些法典的案例包,请参阅安装本书示例。 如需编译、检查场景、回放和重新构建发布包,请参阅重新构建源代码包。
发布与验证
随 Law as Code in Practice: French Family Benefits (Law as Code by Country · 第 1 卷)发布,可在 Arxo Books 获取。
这些法典于 2026 年 10 月 12 日 从 Arxo 提交
7206473829 导出;在 law 0.2.1
(law.core/0.2.11)上通过了 1,985 个场景。本书的复现套件已使用发布版
law 0.2.2 完成验证。这些是本次导出的已记录执行结果。
packages 工作流使用固定版本的 law-package-tools 0.3.0 编译每个包、在两个评估器上运行其场景、回放已保存的评估,并从发布包重新构建。
registry 工作流会检查架构、地址和哈希。有关要求和命令,请参阅可复现性指南。
发现错误?
报告问题无需了解规则语言。 提交 issue,并提供以下信息:
- 位置: 包、条款或场景,以及法律适用日期。
- 实际结果: 虚构或匿名化的输入事实、所选解读、你的
law --version,以及返回的答案或测试报告。 - 预期结果: 相关的已发布来源、其日期/版本,以及得出不同结果的推理过程。
请使用虚构或匿名化的示例;不要提供个人记录或标识信息。 如果指的是浏览器实验室,请附上页面链接和记录的发布版本。 不同解读之间的差异可能需要明确列出替代方案,而不是更改共用规则。确认存在缺陷时,应附上可复现该问题的场景。
引用此快照
Arxo(2026)。Arxo 上的法国福利规则:可执行且关联来源的模型。
2026 年 10 月 12 日的法典导出版本,公开源代码修订版
f2efcc6788465484f145146a3ed5f76b13d41703。
@software{arxo_french_benefits_2026,
author = {Arxo},
title = {French benefit rules on Arxo: executable, source-linked models},
year = {2026},
url = {https://github.com/arxohq/arxo-cnaf/tree/f2efcc6788465484f145146a3ed5f76b13d41703},
note = {Canon export: 12 October 2026; semantics: law.core/0.2.11}
}
对于特定结果,还请注明其包版本、场景或案例、法律适用日期和所选解读,并保留执行证据和哈希。上述源代码修订版固定了导出的法典;实验室是单独发布的。
权利与联系方式
代码和模型:Apache-2.0。采集的出版方文本仍受其各自的转载条款约束,详见各包中的 NOTICE;代码许可不涵盖这些文本。部分源文件不予再分发。
维护者:Rifat Dzhumagulov · [email protected]。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。

