Files
FiDA_Python/src/server/agent/tools/terminate_tool.py

30 lines
906 B
Python
Raw Normal View History

2026-03-03 17:33:51 +08:00
from typing import Literal
from langchain_core.tools import tool
from pydantic import BaseModel, Field
class TerminateInput(BaseModel):
"""終止對話的輸入參數"""
status: Literal["success", "failure"] = Field(
description="互動結束的狀態:'success' 表示任務完成,'failure' 表示無法繼續",
examples=["success", "failure"]
)
reason: str = Field(
default="",
description="可選:簡單說明為什麼結束(例如 '報告已生成''缺少關鍵資訊'",
examples=["報告已成功生成", "無法取得足夠資料"]
)
@tool(args_schema=TerminateInput)
2026-03-11 21:45:46 +08:00
def terminate(status: str, reason: str = "") -> dict:
2026-03-03 17:33:51 +08:00
"""
2026-03-11 21:45:46 +08:00
终止本次互动
2026-03-03 17:33:51 +08:00
"""
2026-03-11 21:45:46 +08:00
return {
"messages": [], # 清空追加消息
"__end__": True, # 结束标记
"status": status,
"reason": reason
}