04 多层规则合并与求解算法 本节摘要:前三节讲了 Agent 和权限规则的形式,这一节讲最硬核的部分——求解。多层规则(defaults + 特定 + user)叠加后,怎么算出一个操作最终的「允许/询问/拒绝」?OpenCode 的算法出奇地简洁:拍平所有规则,按顺序找最后一个匹配的(后定义优先),没匹配就默认询问。本节讲清这个算法,配一个求解示例走一遍,并解释为什么「后定义优先」是合理的。 一、合并:不是解决冲突,是拍平 先说一个反直觉的点:多层规则的「合并」其实不解决冲突,它只是把所有规则拍平成一个有序数组。 为什么不解决冲突?因为冲突的解决交给「求解」那一步(用「后定义优先」原则)。合并只负责「把所有规则放一起,保持顺序」。这种设计简单——合并零逻辑,只 flat。