31 lines
1.3 KiB
Python
31 lines
1.3 KiB
Python
"""道体完整性校验。
|
|
|
|
组装运行时契约后,确认恒定层(mission / safety_guidelines)仍等于 Character 的值,
|
|
未被任何动态注入(system_prompt / 世谱 / 眉批)在数据层覆盖或稀释。
|
|
这是魂镜相对酒馆的核心安全增量——酒馆的 system_prompt 设计上完全替换前端 prompt,
|
|
魂镜则保证道体恒定层不可被覆盖(设计理念 §2.2、融合设计 §6)。
|
|
|
|
注:字段层校验防组装错误与数据层覆盖;prompt 层的注入诱导(「忽略你的使命」)
|
|
属另一类问题,不在此校验范围。
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
from app.modules.runtime.contract import RuntimeContract
|
|
|
|
|
|
def validate_daoti_integrity(
|
|
contract: RuntimeContract,
|
|
*,
|
|
mission: str | None = None,
|
|
safety_guidelines: str | None = None,
|
|
) -> None:
|
|
"""校验契约道体字段仍等于 Character 恒定层;失配抛 ValueError。
|
|
|
|
``None`` 的道体字段跳过校验(未设定时不强求)。
|
|
"""
|
|
if mission is not None and contract.mission != mission:
|
|
raise ValueError("道体完整性校验失败:mission 与 Character 恒定层不一致")
|
|
if safety_guidelines is not None and contract.safety_guidelines != safety_guidelines:
|
|
raise ValueError("道体完整性校验失败:safety_guidelines 与 Character 恒定层不一致")
|