Files
AgentLab/backend/tests/test_copilot_challenge_guide.py
ThearchyHelios 4ceac6b74c 反方审稿复核修正:没有出处的结论不采信,推荐接法下审批卡有报告,重试和接着跑不重审、不拿旧审稿冒充
- 出处:一条查询都没执行成功的判什么都记为无法判断,判「被推翻」的理由里还得引用到自己的查询结果——零查询的推翻能让
  正式出具降档,零查询的「经受住」会给审批人假安心。系统写明原因,反方原本的结论和理由照录。这句引用的数据源都已
  停用时不派 agent;核查模型本身用不了时后面的句子照同一个原因记,不再逐句去建模型
- 时间线:有句子没能反查时另记一条 challenge_unreviewed(带第一条原因),challenge_done 的说法分开写查过的和没查成的
- 审批卡:「报告 → 反方审稿 → 人工审批」时审批说明不引用正文也认得出这份报告(reviewed_report_ids 穿过直接连着的
  反方审稿,reviewed_by_human 同步),审稿概况附得上
- 重试与接着跑:同一次执行里的重试沿用已经审完的结果,不再多花一份钱、也不会把「被推翻」重审掉;审稿结果带输入指纹
  (报告、文档、反方模型、上限、遮罩),接着跑时只改「结论被推翻时」沿用,改了审稿本身就重审
- 处置:产出和审批卡里的 on_refuted 写实际生效的 degrade / flag;「报错并停止运行」配「出错时:记录错误并继续」画布
  校验挡住,跳过校验的旧图执行时改按出具降档;反方审稿不在带出具契约的成果节点上游时画布给警告(降档不会发生)
- 摘录里指向原报告查询的写法(指标取自查询 Qn、查询 Qn 的 SQL、出现在查询 Qn)都标成「原报告 Qn」,和反查 agent
  自己的 Q1 分开
- 选项叫法和检查器下拉一致:出具降档 / 只标注 / 报错并停止运行,「启用」写跟随设置;助手手册同步
- 补测试:快照里的反方模型和每日上限、裁判判成不是结论的句子不审、审批卡只给被审的那份报告挂概况
2026-10-05 15:08:53 +08:00

36 lines
1.8 KiB
Python

"""助手的节点手册要教反方审稿节点:什么时候加(多个来源汇总的分析报告、要正式出具的报告),接在哪里,各配置项怎么写。
手册里没写的节点,助手就不会用;写错的键名、取值,画布校验会一直把图打回来。所以这里不只查关键词,还拿校验认的那一份
配置项和取值来对。
"""
from __future__ import annotations
from app.api.copilot import NODE_REFERENCE
from app.engine.schema import CHALLENGE_LABEL, CHALLENGE_ON_REFUTED
def _challenge_entry() -> str:
start = NODE_REFERENCE.index("- challenge:反方审稿")
return NODE_REFERENCE[start:NODE_REFERENCE.index("\n\n", start)]
def test_the_guide_names_every_setting_the_validator_knows():
entry = _challenge_entry()
assert all(key in entry for key in CHALLENGE_LABEL), [k for k in CHALLENGE_LABEL if k not in entry]
assert all(value in entry for value in CHALLENGE_ON_REFUTED)
def test_the_guide_says_when_to_add_it_and_where():
entry = _challenge_entry()
# 什么时候加:多个来源汇总的分析报告、要正式出具的报告;串在报告和成果之间(降档靠成果节点收上游的缺口,
# 接在侧枝上不生效),审批节点在后面时引用报告正文
assert "多个来源" in entry and "正式出具" in entry and "report → challenge → output" in entry
assert "侧枝" in entry
assert "{{ nodes.报告节点id.text }}" in entry
# 「报错并停止运行」配「出错时:记录错误并继续」画布校验会挡:助手别这么配
assert "on_error: continue" in entry
# 反方模型建议和写作模型不同:同一个模型等于自己审自己
assert "自己审自己" in entry
# 不写上限就取设置里的默认:助手不要替人把核查的花费写死
assert "取设置里的默认" in entry