强 schema 清洗:所有工具定义在生成时统一清洗,补齐 properties、规整 type、强制 additionalProperties=false,避免 schema 漏洞导致模型随意输出。AITool.cs、ToolSchemaSanitizer.cs
预执行拦截(Claude Code 风格):工具执行前校验 JSON、必填字段、类型、未知字段;失败则返回错误 ToolResult 反馈给模型,允许自修正或降级回复。ToolCallValidator.cs、AIIntelligenceCore.cs 重试清洗:retry_tools 解析前剥离 json 围栏,避免误判。AIIntelligenceCore.cs 工具选择:Query 阶段强制 tool_choice: "required",Action 维持 auto。AIIntelligenceCore.cs
This commit is contained in:
@@ -22,6 +22,7 @@ namespace WulaFallenEmpire.EventSystem.AI.Tools
|
||||
public virtual Dictionary<string, object> GetFunctionDefinition()
|
||||
{
|
||||
var parameters = GetParametersSchema() ?? SchemaObject(new Dictionary<string, object>(), new string[] { });
|
||||
parameters = ToolSchemaSanitizer.Sanitize(parameters);
|
||||
return new Dictionary<string, object>
|
||||
{
|
||||
["type"] = "function",
|
||||
|
||||
Reference in New Issue
Block a user