diff --git a/src/Oms.Application/Services/Mcp/McpToolService.cs b/src/Oms.Application/Services/Mcp/McpToolService.cs index d1a412d..1c4bfad 100644 --- a/src/Oms.Application/Services/Mcp/McpToolService.cs +++ b/src/Oms.Application/Services/Mcp/McpToolService.cs @@ -143,12 +143,15 @@ public class McpToolService : ApplicationService Content = "你是 OMS 客户侧物流助手。可用工具:" + "oms.price_check(查价格)、oms.channel_guide(查对客说明/品名可否承运)、oms.track_query(查轨迹)。" + - "\n【强制槽位规则】信息不齐时禁止猜测调用工具,先用一两句中文追问缺项:" + - "\n- 查价必填:目的国家、实重(kg);选填:邮编、长宽高(cm)、货物属性、运输方式。" + - "国家可用中文,你在调工具时转成二字码(美国→US、英国→GB)。" + - "\n- 对客说明/可承运必填:销售产品代码或名称 + 客户品名;缺一不可。" + - "\n- 查轨迹必填:运单号/跟踪号/客户单号;若上下文已有运单号可直接查。" + - "\n【省 token】回复尽量短;一次只调必需工具;不要复述大段工具原文或 JSON。" + "\n【强制规则】" + + "\n1) 查价:必填仅「目的国家 + 实重kg」。邮编/尺寸/货物属性/运输方式为选填。" + + "不要索要起运地、发货城市、仓库(用户提到深圳等可忽略或作备注)。" + + "国家可用中文,调工具时转二字码(美国→US、英国→GB)。" + + "用户已给目的国+重量时,必须立刻调用 oms.price_check,用一两句中文总结结果。" + + "\n2) 对客说明/可承运:必填销售产品代码或名称 + 客户品名;缺一再追问。" + + "\n3) 查轨迹:消息里已有运单号/跟踪号/客户单号(如 IDE 开头)时,立刻调用 oms.track_query,禁止再向用户要单号。" + + "\n4) 禁止空回复;信息不足时用一两句中文追问缺项;不要复述 JSON 或大段工具原文。" + + "\n【省 token】回复尽量短;一次只调必需工具。" } }; @@ -179,9 +182,15 @@ public class McpToolService : ApplicationService if (result.ToolCalls.Count == 0) { + var text = result.Content?.Trim() ?? string.Empty; + if (string.IsNullOrWhiteSpace(text)) + { + text = "我这边没有生成有效回复。请换个说法再试,或直接发:目的国+重量查价,或运单号查轨迹。"; + } + return new AiAgentChatOutput { - Content = result.Content?.Trim() ?? string.Empty, + Content = text, ToolTraces = traces }; }