mirror of
https://gitcode.com/JianFeeeee/HomeAgent.git
synced 2026-10-03 15:53:56 +00:00
feat: add knowledge_delete tool + cmd_run self-kill guard via before_toolcall stage hook
This commit is contained in:
@ -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"},
|
||||
},
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
// 文档记忆工具
|
||||
|
||||
Reference in New Issue
Block a user