feat: remove priority field from skill definition and related services

This commit is contained in:
mlogclub
2026-04-14 17:44:06 +08:00
parent 2369a5a9a1
commit ccdb04e9aa
6 changed files with 4 additions and 62 deletions
+2 -3
View File
@@ -83,9 +83,8 @@ func buildSeedItems() []models.SkillDefinition {
"graph/create_ticket_with_confirmation",
"graph/handoff_to_human"
]`,
Priority: 100,
Status: enums.StatusOk,
Remark: "after-sales escalation skill",
Status: enums.StatusOk,
Remark: "after-sales escalation skill",
AuditFields: models.AuditFields{
CreatedAt: now,
CreateUserID: 0,
-1
View File
@@ -25,7 +25,6 @@ func BuildSkillDefinitionResponse(item *models.SkillDefinition) response.SkillDe
Instruction: item.Instruction,
Examples: examples,
ToolWhitelist: toolWhitelist,
Priority: item.Priority,
Status: int(item.Status),
StatusName: getSkillStatusName(item.Status),
Remark: item.Remark,
@@ -29,7 +29,7 @@ func (c *SkillDefinitionController) AnyList() *web.JsonResult {
params.QueryFilter{ParamName: "status"},
params.QueryFilter{ParamName: "name", Op: params.Like},
params.QueryFilter{ParamName: "code", Op: params.Like},
).Asc("priority").Desc("id")
).Desc("id")
list, paging := services.SkillDefinitionService.FindPageByCnd(cnd)
results := make([]response.SkillDefinitionResponse, 0, len(list))
for _, item := range list {
@@ -45,7 +45,7 @@ func (c *SkillDefinitionController) GetList_all() *web.JsonResult {
list := services.SkillDefinitionService.Find(params.NewSqlCnd(c.Ctx,
params.QueryFilter{ParamName: "status"},
).Asc("priority").Desc("id"))
).Desc("id"))
results := make([]response.SkillDefinitionResponse, 0, len(list))
for _, item := range list {
results = append(results, builders.BuildSkillDefinitionResponse(&item))
@@ -156,21 +156,6 @@ func (c *SkillDefinitionController) PostDelete() *web.JsonResult {
return web.JsonSuccess()
}
func (c *SkillDefinitionController) PostUpdate_priority() *web.JsonResult {
if _, err := services.AuthService.RequirePermission(c.Ctx, constants.PermissionSkillDefinitionUpdate); err != nil {
return web.JsonError(err)
}
var ids []int64
if err := c.Ctx.ReadJSON(&ids); err != nil {
return web.JsonError(err)
}
if err := services.SkillDefinitionService.UpdatePriority(ids); err != nil {
return web.JsonError(err)
}
return web.JsonSuccess()
}
func (c *SkillDefinitionController) PostDebug_run() *web.JsonResult {
if _, err := services.AuthService.RequirePermission(c.Ctx, constants.PermissionSkillDefinitionView); err != nil {
return web.JsonError(err)
-1
View File
@@ -912,7 +912,6 @@ type SkillDefinition struct {
Instruction string `gorm:"type:longtext"` // Instruction 为 Skill 的主体说明文档存储字段,使用 Markdown 编写,供 Agent 理解任务目标、步骤和工具使用要求。
Examples string `gorm:"type:text"` // Examples 为示例问法 JSON 数组字符串。
ToolWhitelist string `gorm:"type:text"` // ToolWhitelist 为允许使用的工具编码 JSON 数组字符串。
Priority int `gorm:"type:int;not null;default:0;index"` // Priority 为 Skill 命中冲突时的优先级,数值越大优先级越高。
Status enums.Status `gorm:"type:int;not null;default:0;index"` // Status 为 Skill 当前状态,使用全局通用状态:0启用 1禁用 2删除。
Remark string `gorm:"type:text"` // Remark 为后台备注,用于记录配置说明、维护信息或内部协作信息。
AuditFields
@@ -13,7 +13,6 @@ type CreateSkillDefinitionRequest struct {
Instruction string `json:"instruction"`
Examples []string `json:"examples"`
ToolWhitelist []string `json:"toolWhitelist"`
Priority int `json:"priority"`
Remark string `json:"remark"`
}
@@ -75,24 +75,6 @@ func (s *skillDefinitionService) Delete(id int64) {
repositories.SkillDefinitionRepository.Delete(sqls.DB(), id)
}
func (s *skillDefinitionService) NextPriority() int {
if max := repositories.SkillDefinitionRepository.FindOne(sqls.DB(), sqls.NewCnd().Desc("priority").Desc("id")); max != nil {
return max.Priority + 1
}
return 1
}
func (s *skillDefinitionService) UpdatePriority(ids []int64) error {
return sqls.WithTransaction(func(ctx *sqls.TxContext) error {
for i, id := range ids {
if err := repositories.SkillDefinitionRepository.UpdateColumn(ctx.Tx, id, "priority", i+1); err != nil {
return err
}
}
return nil
})
}
func (s *skillDefinitionService) GetByCode(code string) *models.SkillDefinition {
return repositories.SkillDefinitionRepository.GetByCode(sqls.DB(), code)
}
@@ -115,14 +97,10 @@ func (s *skillDefinitionService) CreateSkillDefinition(req request.CreateSkillDe
Instruction: normalized.Instruction,
Examples: mustMarshalSkillStringArray(normalized.Examples),
ToolWhitelist: mustMarshalSkillStringArray(normalized.ToolWhitelist),
Priority: normalized.Priority,
Status: enums.StatusOk,
Remark: normalized.Remark,
AuditFields: utils.BuildAuditFields(operator),
}
if item.Priority <= 0 {
item.Priority = s.NextPriority()
}
if err := repositories.SkillDefinitionRepository.Create(sqls.DB(), item); err != nil {
return nil, err
}
@@ -154,7 +132,6 @@ func (s *skillDefinitionService) UpdateSkillDefinition(req request.UpdateSkillDe
"instruction": normalized.Instruction,
"examples": mustMarshalSkillStringArray(normalized.Examples),
"tool_whitelist": mustMarshalSkillStringArray(normalized.ToolWhitelist),
"priority": resolveSkillPriorityForService(normalized.Priority, current.Priority),
"remark": normalized.Remark,
"update_user_id": operator.UserID,
"update_user_name": operator.Username,
@@ -168,7 +145,6 @@ func (s *skillDefinitionService) normalizeSkillDefinitionRequest(req request.Cre
Name: strings.TrimSpace(req.Name),
Description: strings.TrimSpace(req.Description),
Instruction: strings.TrimSpace(req.Instruction),
Priority: normalizeSkillPriorityForService(req.Priority),
Remark: strings.TrimSpace(req.Remark),
}
if normalized.Code == "" {
@@ -235,18 +211,3 @@ func mustMarshalSkillStringArray(input []string) string {
}
return string(buf)
}
func normalizeSkillPriorityForService(priority int) int {
if priority < 0 {
return 0
}
return priority
}
func resolveSkillPriorityForService(input, current int) int {
input = normalizeSkillPriorityForService(input)
if input <= 0 {
return current
}
return input
}