feat(agent-memory): UI fuer Agent-Memories mit semantischer Suche — Modul 8/16
Check Cross-Plugin Imports / check (push) Has been cancelled

Drittes Modul via Phase-Q-Manifest-Architektur: Registrierung komplett
ueber das agent_memory-Plugin-Manifest (page_route /agent-memory +
menu_item, Brain-Icon) — routes/index.tsx unangetastet. Komponenten-Map
mit 40 Eintraegen.

Zusaetzlicher Fix: Sidebar-ICON_MAP um Brain, Store, Tags erweitert —
Marketplace (Store) und Tags zeigten bisher Fallback-Icons, weil die
Manifest-Icons nicht in der kuratierten Map standen.

Backend existierte vollstaendig (create mit Embedding, list mit
agent_id-Pflichtfilter + Typ + Pagination, semantische Suche via pgvector,
update mit Embedding-Regeneration, delete; agent_memory:read/write),
Frontend hatte 0% Abdeckung.

- api/agentMemory.ts: TanStack-Hooks (useAgentMemories mit
  enabled-Gating, useAgentMemorySearch, create/update/delete)
- pages/AgentMemory.tsx: Agent-Picker (Pflichtfeld — Backend filtert
  zwingend nach agent_id), Pick-Agent-Prompt, semantische Suche mit
  Relevanz-Score-Badges und Clear, Memory-Karten mit Typ-Badges
  (fact/context/pattern/instruction), Create/Edit-Dialog, Delete mit
  Confirm — Aktionen hinter agent_memory:write
- i18n agentMemory.* + nav.agentMemory de/en

Verifikation: Vitest 11/11 (Agent-Picker-Pflicht, Pick-Prompt, Badges,
Suche mit Score + Clear, Create/Edit prefilled, Delete mit+ohne Confirm,
Gating, Empty/Error) · tsc exit 0 · production build exit 0 ·
Backend-Regressionen (route-order, m5-miniapps) 10/10 · compileall
sauber · Manifest-Check OK.
This commit is contained in:
Agent Zero
2026-09-13 19:45:18 +02:00
parent e7b746809b
commit 24423b6802
8 changed files with 898 additions and 4 deletions
+33 -1
View File
@@ -25,7 +25,8 @@
"approvals": "Freigaben",
"delegations": "Delegationen",
"marketplace": "Marketplace",
"skills": "Skills"
"skills": "Skills",
"agentMemory": "Agent Memory"
},
"auth": {
"login": "Anmelden",
@@ -1788,5 +1789,36 @@
"deleteConfirm": "Skill '{{name}}' wirklich loeschen?",
"empty": "Keine Skills vorhanden.",
"loadError": "Skills konnten nicht geladen werden."
},
"agentMemory": {
"title": "Agent Memory",
"agentLabel": "Agent",
"agentPlaceholder": "Agent auswaehlen",
"loadingAgents": "Lade Agenten...",
"pickAgent": "Bitte einen Agenten auswaehlen, um dessen Memories zu sehen.",
"create": "Memory erstellen",
"createTitle": "Neues Memory",
"createSubmit": "Erstellen",
"editTitle": "Memory bearbeiten",
"save": "Speichern",
"memoryType": "Typ",
"type_fact": "Fakt",
"type_context": "Kontext",
"type_pattern": "Muster",
"type_instruction": "Anweisung",
"content": "Inhalt",
"contentPlaceholder": "Was soll der Agent sich merken?",
"search": "Suchen",
"searchPlaceholder": "Semantische Suche... (Enter)",
"clearSearch": "Zuruecksetzen",
"searchResults": "{{count}} Treffer (semantisch)",
"noSearchResults": "Keine Treffer fuer diese Suche.",
"score": "Relevanz: {{score}}%",
"created": "Erstellt:",
"edit": "Bearbeiten",
"delete": "Loeschen",
"deleteConfirm": "Dieses Memory wirklich loeschen?",
"empty": "Keine Memories fuer diesen Agenten.",
"loadError": "Memories konnten nicht geladen werden."
}
}
+33 -1
View File
@@ -25,7 +25,8 @@
"approvals": "Approvals",
"delegations": "Delegations",
"marketplace": "Marketplace",
"skills": "Skills"
"skills": "Skills",
"agentMemory": "Agent Memory"
},
"auth": {
"login": "Sign In",
@@ -1788,5 +1789,36 @@
"deleteConfirm": "Really delete skill '{{name}}'?",
"empty": "No skills yet.",
"loadError": "Failed to load skills."
},
"agentMemory": {
"title": "Agent Memory",
"agentLabel": "Agent",
"agentPlaceholder": "Select an agent",
"loadingAgents": "Loading agents...",
"pickAgent": "Pick an agent to see its memories.",
"create": "Create memory",
"createTitle": "New memory",
"createSubmit": "Create",
"editTitle": "Edit memory",
"save": "Save",
"memoryType": "Type",
"type_fact": "Fact",
"type_context": "Context",
"type_pattern": "Pattern",
"type_instruction": "Instruction",
"content": "Content",
"contentPlaceholder": "What should the agent remember?",
"search": "Search",
"searchPlaceholder": "Semantic search... (Enter)",
"clearSearch": "Clear",
"searchResults": "{{count}} matches (semantic)",
"noSearchResults": "No matches for this search.",
"score": "Relevance: {{score}}%",
"created": "Created:",
"edit": "Edit",
"delete": "Delete",
"deleteConfirm": "Really delete this memory?",
"empty": "No memories for this agent.",
"loadError": "Failed to load memories."
}
}