// research/agent.go – Research-Agent: wraps brain.AskQuery package research import ( "fmt" "strings" "my-brain-importer/internal/agents" "my-brain-importer/internal/brain" ) // Agent beantwortet Fragen mit der Wissensdatenbank. type Agent struct{} func New() *Agent { return &Agent{} } func (a *Agent) Handle(req agents.Request) agents.Response { if len(req.Args) == 0 { return agents.Response{Text: "❌ Keine Frage angegeben."} } question := strings.Join(req.Args, " ") answer, chunks, err := brain.AskQuery(question) if err != nil { return agents.Response{Error: err, Text: fmt.Sprintf("❌ Fehler: %v", err)} } if len(chunks) == 0 { return agents.Response{Text: "❌ Keine relevanten Informationen in der Datenbank gefunden.\nFüge mehr Daten mit `/ingest` hinzu."} } var sb strings.Builder fmt.Fprintf(&sb, "💬 **Antwort auf:** _%s_\n\n", question) sb.WriteString(answer) sb.WriteString("\n\n📚 **Quellen:**\n") for _, chunk := range chunks { fmt.Fprintf(&sb, "• %.1f%% – %s\n", chunk.Score*100, chunk.Source) } return agents.Response{Text: sb.String()} }