feat: add knowledge_delete tool + cmd_run self-kill guard via before_toolcall stage hook

This commit is contained in:
root
2026-07-16 19:24:31 +08:00
parent d67c2c3534
commit 09b79811a0
3 changed files with 62 additions and 20 deletions

View File

@ -1464,6 +1464,16 @@ func (a *Agent) executeKnowledgeTool(tc agentAPI.ToolCall) string {
tree := a.knowledge.BuildTree()
return formatTree(tree, 0)
case "knowledge_delete":
name, _ := tc.Arguments["name"].(string)
if name == "" {
return "name 不能为空"
}
if err := a.knowledge.Remove(name); err != nil {
return fmt.Sprintf("知识删除失败: %v", err)
}
return fmt.Sprintf("知识「%s」已删除", name)
default:
return fmt.Sprintf("未知的知识工具: %s", tc.Name)
}
@ -1833,6 +1843,20 @@ func (a *Agent) buildToolDefs() []interface{} {
},
},
})
tools = append(tools, map[string]interface{}{
"type": "function",
"function": map[string]interface{}{
"name": "knowledge_delete",
"description": "删除知识库中的指定知识条目。",
"parameters": map[string]interface{}{
"type": "object",
"properties": map[string]interface{}{
"name": map[string]interface{}{"type": "string", "description": "要删除的知识名称"},
},
"required": []string{"name"},
},
},
})
}
// 文档记忆工具