from __future__ import annotations from server.contracts import AgentReply, IntentResult def install_fake_pi_tool_adapter(monkeypatch) -> None: """让历史网关测试用确定性 Pi 替身选择工具,不恢复规则意图识别。""" from server.agent_core import fallback_lane from server.agent_core.tool_runtime import run_tool_async async def fake_pi( store, session_id: str, intent: IntentResult, *, actor: str = "planner", **_kwargs, ) -> AgentReply: query = str(intent.params.get("query") or "") if "检查点" in query: selected = IntentResult( intent="checkpoint.create", params={}, confidence=1.0, source="LLM", ) elif "试排" in query: params = {} if "交期优先" in query: params["strategy"] = "DELIVERY_FIRST" elif "产能均衡" in query: params["strategy"] = "CAPACITY_BALANCE" selected = IntentResult( intent="schedule.run", params=params, confidence=1.0, source="LLM", ) else: return AgentReply(text="测试 Pi 未选择任何工具。") return await run_tool_async( store, session_id, selected, actor=actor, ) monkeypatch.setattr(fallback_lane, "propose_reply", fake_pi)