muse-agent-example/tests/单元/test_评测阻塞分流.py
zizi 5e5ff2e9c4 feat(提示词): 批次3写手阻塞出口——输出合同oneOf二选一与消费点分流
- 写作输出合同增加 blocked 出口(仅 reason,写手纯写作负荷原则):
  oneOf paragraphs/blocked 二选一,双现或全缺由 schema 机械拒绝;
  LF/CR 换行语义移入合同 description(随装配进系统提示,模板减负)
- 生成正文.md 输出段改为"输出与阻塞",阻塞出口说明 ≤2 行且注明
  不得用于回避普通难度
- 生产消费:无工具写作步骤 blocked 分流——不登记方法消费、不产候选,
  以 WRITING_FLOW_INVALID 明确失败呈现 reason(blocked 载荷已随
  模型结构化交付留痕)
- 评测消费:成对比较(逐例执行._比较材料)与语义检测(读取检测材料)
  在读 paragraphs 前分流,blocked 单元明确失败不进比较/检测,杜绝 KeyError
- 测试:契约四态(合法blocked/双现/全缺/越权字段);两阶段写手 blocked
  集成用例(任务失败于无工具写作、无候选无消费);评测分流单测

证据:离线全量1155项通过;两阶段写手6项、回放资料封存12项、评测
收敛25项、受控模型调用15项数据库用例通过;模型任务备份恢复用例本体
通过(teardown 连接错误在 main 基线同样出现,属本机克隆库存量环境
问题,非本次回归)。合同哈希变更对跨版本存量任务恢复为明确失败
(失败关闭),与回放链路现行测试一致。
2026-09-19 22:18:59 +08:00

18 lines
888 B
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""写手阻塞(blocked)交付在评测消费点的分流:不进成对比较、不做语义检测。"""
import pytest
from muse.效果评测.模型 import 评测错误
from muse.效果评测.语义检测 import 读取检测材料
from muse.效果评测.逐例执行 import _比较材料
@pytest.mark.case_id("NC-eval-blocked-writer-no-material")
def test_写手阻塞交付在比较与检测材料处明确失败():
阻塞写手 = {"output": {"blocked": {"reason": "死结"}}}
正常写手 = {"output": {"paragraphs": [{"text": "雨。"}]}}
with pytest.raises(评测错误, match="语义检测依赖的写手声明阻塞"):
读取检测材料(None, {"dependencies": ["u1"]}, 阻塞写手)
with pytest.raises(评测错误, match="成对比较的写手声明阻塞"):
_比较材料(None, {"dependencies": ["a", "b"]}, [正常写手, 阻塞写手])