"""判定 find_agent 调度执行是否真正成功完成。""" from __future__ import annotations from dataclasses import dataclass from supply_agent.types import AgentResult from supply_infra.services.video_discovery_service import get_video_discovery_service @dataclass(frozen=True) class FindAgentRunOutcome: succeeded: bool failure_reason: str | None = None def evaluate_find_agent_run( run_id: str, agent_result: AgentResult | None = None, ) -> FindAgentRunOutcome: """有候选写入即成功:``video_discovery_candidate`` 按 run_id 存在记录。 ``agent_result`` 保留给调用方兼容,不再参与成败判定。 """ del agent_result # 成败只看库表,不看模型最终文案 if get_video_discovery_service().has_candidates(run_id): return FindAgentRunOutcome(succeeded=True) return FindAgentRunOutcome( succeeded=False, failure_reason="no_candidates", )