feat(tool-filter): implement runtime tool filtering middleware and associated tests

This commit is contained in:
mlogclub
2026-04-19 10:28:18 +08:00
parent 77a5c68b01
commit 92712d882a
6 changed files with 543 additions and 20 deletions
@@ -100,6 +100,15 @@ func (c *RuntimeTraceCollector) ActivateSkill(skill SkillMetadata, routeReason s
c.Data.Skill.RouteTrace = routeTrace
}
func (c *RuntimeTraceCollector) SetFilteredToolCodes(toolCodes []string) {
if c == nil {
return
}
c.mu.Lock()
defer c.mu.Unlock()
c.Data.Skill.FilteredToolCodes = append([]string(nil), toolCodes...)
}
func (c *RuntimeTraceCollector) SetRetrieverSummary(summary RetrieverTraceSummary) {
if c == nil {
return
@@ -12,6 +12,8 @@ type ToolTraceItem struct {
LatencyMs int64 `json:"latencyMs,omitempty"`
Status string `json:"status,omitempty"`
ErrorMessage string `json:"errorMessage,omitempty"`
Blocked bool `json:"blocked,omitempty"`
BlockedReason string `json:"blockedReason,omitempty"`
}
type ToolSearchTraceItem struct {
@@ -146,6 +148,7 @@ type SkillTraceData struct {
RouteReason string `json:"routeReason,omitempty"`
RouteTrace string `json:"routeTrace,omitempty"`
AllowedToolCodes []string `json:"allowedToolCodes,omitempty"`
FilteredToolCodes []string `json:"filteredToolCodes,omitempty"`
MiddlewareEnabled bool `json:"middlewareEnabled,omitempty"`
MiddlewareToolName string `json:"middlewareToolName,omitempty"`
VisibleCodes []string `json:"visibleCodes,omitempty"`