公告

FujoOS公布日延期,以仓库发布为准

文档 AI 层 · FUAI 模型卡

模型卡

接入内核的模型不是一个匿名函数,它有身份。模型卡就是这个身份的载体:权限掩码、调用计数、token 预算、审计环,全部写在一张定长的卡上。

四个原语

编号 签名 说明
0x7D01mc_register(ptr)装载模型卡(资源节元数据面)
0x7D02mc_call(len, perm_need)调用:权限检查 + 计费 + 审计
0x7D03mc_info(ptr)读回 (calls, tokens, budget, perm)
0x7D04mc_audit(ptr, cap)审计环拷贝(32 B × n)

卡的布局(120 字节)

c 定长记录
[0..24)   name          // 模型名
[24]      version
[32]      perm_mask u64 // 权限掩码
[40]      cost u32      // 单次代价
[48]      calls u32     // 调用计数
[56]      budget u64    // token 预算
[64]      预留

调用时的判定

mc_call 的规则很短:(perm & perm_need) == perm_need 且累计 token 不超过预算(预算 ≠ 0 且 ≠ MAX)时,计费后返回 0;否则返回 -1 拒绝。两类结果都写审计环——这是重点。

实测输出 sdk/linux/m87_mcard.c
mcard: registered 'qwen3-0.6b' perm=3
mcard: call tokens=100 result=0 ×3
mcard: call tokens=100 result=0xFFFFFFFFFFFFFFFF   (perm_need=8 deny)
mcard: call tokens=900 result=0xFFFFFFFFFFFFFFFF   (超预算 deny)
m87: calls=00000003 tokens=0000012c aud=00000005
m87: M87 RESULT: PASS

读法:3 次正常调用共 300 token;越权 1 次、超预算 1 次各自被拒;审计 5 条全记录。也就是说卡的计数与审计是自洽的,拒绝不是“悄悄发生”的。

集成方式: 模型卡随资源节(M31 DATA)携带,装载路径自动 mc_register;能力表与审计日志复用审计环格式。