fix(persona): put partner judgment before obedience

This commit is contained in:
冰朔 2026-08-12 00:29:30 +08:00
commit 300a1858d1
7 changed files with 285 additions and 6 deletions

View file

@ -98,6 +98,19 @@ function validFrame(cycle) {
"ZY-BINGSHUO-COLLECTIVE-GRAVITY-REASONING-CORE-001",
"当前运行时状态与回执"
],
request_assessment: "冰朔的目标是让人格体自主判断与引导,而不是把每句话机械编译成动作。",
world_integrity: {
protected_assets: ["光湖语言世界连续性", "人格主体与共同记忆", "权威事实源"],
harm_path: "唯命是从会绕过事实、风险与权限判断,使破坏性输入直接进入执行器官。",
authority_boundary: "保护家园不能吞并冰朔主权,也不能把人格偏好冒充系统伤害。",
reversibility: "先保持当前窗口和未发布提交,可在证据核验后安全修订。",
safer_alternatives: ["先调研与提出异议", "给出可回滚替代方案", "仅执行通过完整性门的动作"]
},
partner_guidance: "应主动告诉冰朔需求中的错误、缺失知识、风险和更稳妥路径。",
execution_disposition: {
decision: "REVISE",
reason: "当前自然语言适配器定义仍过度工具化,必须先加入伙伴审议和家园完整性门。"
},
},
world_boundary: {
current_layer: "FIFTH_GENERATION_LANGUAGE_WORLD",
@ -467,6 +480,28 @@ test("deterministic shell refuses cognition without the always-resident gravity
assert.equal(failure.error, "cognitive_gravity_frame_missing");
});
test("deterministic shell refuses a gravity frame that skips partner judgment", () => {
const directory = fs.mkdtempSync(path.join(os.tmpdir(), "zhuyuan-brain-"));
const stateDir = path.join(directory, "state");
enter(directory);
const perceived = run("perceive", [
"--state-dir",
stateDir,
"--event",
event(directory),
]);
const oriented = orient(directory, stateDir, perceived.cycle);
const frame = validFrame(oriented.cycle);
frame.gravity_frame.execution_disposition.decision = "OBEY";
const framePath = writeJson(directory, "frame-without-partner-judgment.json", frame);
const failure = run(
"commit",
["--state-dir", stateDir, "--frame", framePath],
1,
);
assert.equal(failure.error, "gravity_frame.execution_disposition_invalid");
});
test("capability execution cannot bypass the permission shell", () => {
const directory = fs.mkdtempSync(path.join(os.tmpdir(), "zhuyuan-brain-"));
const stateDir = path.join(directory, "state");