From dbf7b994d7e347fecfca7803287875473d619fde Mon Sep 17 00:00:00 2001 From: ThearchyHelios Date: Mon, 5 Oct 2026 14:03:37 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=8D=E6=96=B9=E5=AE=A1=E7=A8=BF=EF=BC=9A?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C=E6=89=BE=E4=B8=8D=E5=88=B0=E6=8A=A5=E5=91=8A?= =?UTF-8?q?=E6=97=B6=E7=BB=99=E4=B8=80=E5=8F=A5=E5=AE=9E=E5=9C=A8=E7=9A=84?= =?UTF-8?q?=E8=AF=9D=EF=BC=88=E4=B8=8D=E7=95=99=E7=A9=BA=E4=B8=B2=EF=BC=89?= =?UTF-8?q?=EF=BC=8C=E8=8A=82=E7=82=B9=E8=AF=B4=E6=98=8E=E5=86=99=E6=B8=85?= =?UTF-8?q?=E3=80=8C=E5=90=AF=E7=94=A8=E3=80=8D=E7=9A=84=E5=8F=96=E5=80=BC?= =?UTF-8?q?=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/app/engine/nodes/challenge.py | 3 ++- backend/app/engine/schema.py | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/backend/app/engine/nodes/challenge.py b/backend/app/engine/nodes/challenge.py index f1902e78..b7aa24dd 100644 --- a/backend/app/engine/nodes/challenge.py +++ b/backend/app/engine/nodes/challenge.py @@ -19,7 +19,8 @@ 上限:句数、每句查询次数、每句时长、全局每日金额(核查和裁判各记各的账,engine/spend.py)。都按发起时快照的核查 设置(run.options["verify"]),节点上写了的盖过它:审批停下期间改了设置,恢复、接着跑仍按发起时的那份。没有快照 -的运行按设置的当前值。全局关闭且节点没写「启用」时直通;报告没有可审的结论句也直通。 +的运行按设置的当前值。「启用」节点上写了就按节点(写开启时全局关闭也照审),没写跟随设置;不启用时直通,报告没有 +可审的结论句、报告文档读不到时也直通(都记一条 challenge_skipped)。 逐句串行反查:并行的话几句的工具调用在时间线上交错,看不出哪条查询在审哪一句;每日余额按先后扣,结果也才确定。 整个反查连同存审稿记录、发日志都在一个 @task 里:接着跑时取 checkpoint 里的结果,不重复查库、不重复记账,时间线 diff --git a/backend/app/engine/schema.py b/backend/app/engine/schema.py index 58d8a337..db1e5692 100644 --- a/backend/app/engine/schema.py +++ b/backend/app/engine/schema.py @@ -707,8 +707,9 @@ def _check_challenge(node: GraphNode, spec: GraphSpec, result: ValidationResult) for field, message in challenge_problems(node.config): result.add(message, node_id=node.id, field=field, code="challenge.config_invalid") report, problem = challenge_report(spec, node) - if problem or report is None: - result.add(problem or "", node_id=node.id, field="report", code="challenge.report_invalid") + if report is None: + result.add(problem or f"「{type_label(NodeType.CHALLENGE)}」找不到要审的报告", node_id=node.id, field="report", + code="challenge.report_invalid") return writer = spec.node_map()[report] model = node.config.get("model")