feat: implement skill middleware and enhance tool handling for selected skills

This commit is contained in:
mlogclub
2026-04-12 10:11:17 +08:00
parent 06abbbeeb6
commit 560ebdbf13
9 changed files with 153 additions and 13 deletions
@@ -93,6 +93,14 @@ func (h *RuntimeTraceHandler) resolveToolMetadata(modelToolName string) (ToolMet
SourceType: toolx.BuiltinToolCatalogServerCode,
}, true
}
if modelToolName == toolx.BuiltinSkillToolName {
return ToolMetadata{
ToolCode: toolx.BuiltinSkillToolCode,
ServerCode: toolx.BuiltinToolCatalogServerCode,
ToolName: toolx.BuiltinSkillToolName,
SourceType: toolx.BuiltinToolCatalogServerCode,
}, true
}
metadata, ok := h.toolMetadataBy[modelToolName]
return metadata, ok
}
@@ -55,6 +55,16 @@ func (c *RuntimeTraceCollector) SetInstructionSummary(summary InstructionTraceSu
c.Data.Instruction.HasToolRule = summary.HasToolRule
}
func (c *RuntimeTraceCollector) SetSkillMiddleware(enabled bool, toolName string) {
if c == nil {
return
}
c.mu.Lock()
defer c.mu.Unlock()
c.Data.Skill.MiddlewareEnabled = enabled
c.Data.Skill.MiddlewareToolName = toolName
}
func (c *RuntimeTraceCollector) AddToolItem(item ToolTraceItem) {
if c == nil {
return
@@ -107,11 +107,13 @@ type RuntimeTraceData struct {
}
type SkillTraceData struct {
Code string `json:"code,omitempty"`
Name string `json:"name,omitempty"`
RouteReason string `json:"routeReason,omitempty"`
RouteTrace string `json:"routeTrace,omitempty"`
AllowedToolCodes []string `json:"allowedToolCodes,omitempty"`
Code string `json:"code,omitempty"`
Name string `json:"name,omitempty"`
RouteReason string `json:"routeReason,omitempty"`
RouteTrace string `json:"routeTrace,omitempty"`
AllowedToolCodes []string `json:"allowedToolCodes,omitempty"`
MiddlewareEnabled bool `json:"middlewareEnabled,omitempty"`
MiddlewareToolName string `json:"middlewareToolName,omitempty"`
}
type InterruptTraceContext struct {