feat: introduce ToolSourceType enum and refactor related code to use it
This commit is contained in:
@@ -7,6 +7,7 @@ import (
|
||||
"time"
|
||||
|
||||
impladapter "cs-agent/internal/ai/runtime/internal/impl/adapter"
|
||||
"cs-agent/internal/pkg/enums"
|
||||
"cs-agent/internal/pkg/toolx"
|
||||
|
||||
einotool "github.com/cloudwego/eino/components/tool"
|
||||
@@ -18,7 +19,7 @@ type ToolMetadata struct {
|
||||
ToolCode string
|
||||
ServerCode string
|
||||
ToolName string
|
||||
SourceType string
|
||||
SourceType enums.ToolSourceType
|
||||
}
|
||||
|
||||
type RuntimeTraceHandler struct {
|
||||
@@ -101,7 +102,7 @@ func (h *RuntimeTraceHandler) WrapInvokableToolCall(_ context.Context, endpoint
|
||||
item.ErrorMessage = err.Error()
|
||||
}
|
||||
h.collector.AddToolItem(item)
|
||||
if metadata, ok := h.resolveToolMetadata(item.ToolName); ok && strings.TrimSpace(metadata.SourceType) == toolx.GraphCreateTicketConfirm.ServerCode {
|
||||
if metadata, ok := h.resolveToolMetadata(item.ToolName); ok && metadata.SourceType == enums.ToolSourceTypeGraph {
|
||||
recommendedAction, riskLevel, ticketDraftReady := parseGraphToolOutcome(item.ToolCode, result)
|
||||
h.collector.AddGraphToolItem(GraphToolTraceItem{
|
||||
ToolCode: item.ToolCode,
|
||||
|
||||
@@ -8,6 +8,7 @@ import (
|
||||
impladapter "cs-agent/internal/ai/runtime/internal/impl/adapter"
|
||||
runtimetooling "cs-agent/internal/ai/runtime/tooling"
|
||||
"cs-agent/internal/models"
|
||||
"cs-agent/internal/pkg/enums"
|
||||
"cs-agent/internal/pkg/toolx"
|
||||
|
||||
einotool "github.com/cloudwego/eino/components/tool"
|
||||
@@ -34,7 +35,7 @@ func (f *ToolFactory) BuildMCPTools(aiAgent *models.AIAgent) ([]runtimetooling.M
|
||||
if toolCode == "" {
|
||||
toolCode = toolx.BuildMCPToolCode(item.ServerCode, item.ToolName)
|
||||
}
|
||||
if toolx.ResolveToolSourceType(toolCode) != "mcp" {
|
||||
if toolx.ResolveToolSourceType(toolCode) != enums.ToolSourceTypeMCP {
|
||||
continue
|
||||
}
|
||||
serverCode, toolName := toolx.SplitMCPToolCode(toolCode)
|
||||
|
||||
@@ -8,6 +8,7 @@ import (
|
||||
"cs-agent/internal/ai/runtime/registry"
|
||||
runtimetooling "cs-agent/internal/ai/runtime/tooling"
|
||||
"cs-agent/internal/models"
|
||||
"cs-agent/internal/pkg/enums"
|
||||
"cs-agent/internal/pkg/toolx"
|
||||
)
|
||||
|
||||
@@ -37,7 +38,7 @@ func buildRuntimeTraceToolMetadata(
|
||||
ToolCode: strings.TrimSpace(item.ToolCode),
|
||||
ServerCode: strings.TrimSpace(item.ServerCode),
|
||||
ToolName: strings.TrimSpace(item.ToolName),
|
||||
SourceType: "mcp",
|
||||
SourceType: enums.ToolSourceTypeMCP,
|
||||
}
|
||||
}
|
||||
for modelName, metadata := range staticToolMetadata {
|
||||
@@ -45,7 +46,6 @@ func buildRuntimeTraceToolMetadata(
|
||||
metadata.ToolCode = strings.TrimSpace(metadata.ToolCode)
|
||||
metadata.ServerCode = strings.TrimSpace(metadata.ServerCode)
|
||||
metadata.ToolName = strings.TrimSpace(metadata.ToolName)
|
||||
metadata.SourceType = strings.TrimSpace(metadata.SourceType)
|
||||
if modelName == "" || metadata.ToolCode == "" {
|
||||
continue
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user