52 lines
1.2 KiB
Go
52 lines
1.2 KiB
Go
package toolx
|
|
|
|
import (
|
|
"strings"
|
|
|
|
"agent-desk/internal/pkg/dto/request"
|
|
)
|
|
|
|
const (
|
|
MCPRiskLevelRead = "read"
|
|
MCPRiskLevelWrite = "write"
|
|
)
|
|
|
|
type TrustedMCPToolPolicy struct {
|
|
ToolCode string
|
|
Title string
|
|
RiskLevel string
|
|
RequireConfirmation bool
|
|
}
|
|
|
|
var trustedMCPToolPolicies = map[string]TrustedMCPToolPolicy{
|
|
"system/server_time": {
|
|
ToolCode: "system/server_time",
|
|
Title: "获取当前时间",
|
|
RiskLevel: MCPRiskLevelRead,
|
|
RequireConfirmation: false,
|
|
},
|
|
"system/service_info": {
|
|
ToolCode: "system/service_info",
|
|
Title: "查看服务信息",
|
|
RiskLevel: MCPRiskLevelRead,
|
|
RequireConfirmation: false,
|
|
},
|
|
}
|
|
|
|
func GetTrustedMCPToolPolicy(toolCode string) (TrustedMCPToolPolicy, bool) {
|
|
policy, ok := trustedMCPToolPolicies[NormalizeToolCodeAlias(strings.TrimSpace(toolCode))]
|
|
return policy, ok
|
|
}
|
|
|
|
func ApplyTrustedMCPToolPolicy(item request.AIAgentMCPToolRequest) request.AIAgentMCPToolRequest {
|
|
policy, ok := GetTrustedMCPToolPolicy(item.ToolCode)
|
|
if !ok {
|
|
return item
|
|
}
|
|
item.ToolCode = policy.ToolCode
|
|
item.Title = policy.Title
|
|
item.RiskLevel = policy.RiskLevel
|
|
item.RequireConfirmation = policy.RequireConfirmation
|
|
return item
|
|
}
|