docs: Finalizer-Agent, Web-Search Sources und Multi-Agent System dokumentiert
ARCHITECTURE.md: - Kapitel 18 umbenannt: Multi-Agent Review-System → Multi-Agent System (Review + Finalizer) - Finalizer-Agent komplett dokumentiert (Konfiguration, Backend-Flow, SSE-Events, Frontend) - RunAgentChat() als generische Methode für Review/Finalizer dokumentiert - Neues Kapitel Web-Search (Backend, Streaming pauseStreamBubble, History, Shared-Page) - Sessions-Tabelle: finalizer_agent_id, Message-Typ: web_search_result - Entity-Relationship: Finalizer-Agent Beziehung - Chat-Pipeline: Phase 4c (Finalizer) ARCHITECTURE_QUICK.md: - Multi-Agent System Sektion erweitert (Finalizer-Flow, SSE-Events, Frontend-Rendering) - Web-Search Sources Sektion (DB, History, Shared-Page, Streaming) - Tabellen + Message-Typen aktualisiert README.md: - Finalizer-Agent und Web-Search als Features
This commit is contained in:
1 parent
6c38ccfe12
commit
72347ed2f5
3 files changed
+127
-21
No files matched your search
+20
-10
@@ -55,9 +55,9 @@ User 1──* Agent 1──* Session 1──* Chain 1──* Message 1──* At
|
||||
| `users` | Login, Persona, Settings (JSON), DefaultPath |
|
||||
| `tokens` | Auth-Tokens → User |
|
||||
| `agents` | AI-Agenten (Model, Tools, Config, AvatarScale, AvatarOffsetX/Y) |
|
||||
| `sessions` | Chat-Sessions (Workspace, Context, Telegram, AvatarScale, AvatarOffsetX/Y, AllowedChatIds, ReviewAgentId, MaxReviewIterations) |
|
||||
| `sessions` | Chat-Sessions (Workspace, Context, Telegram, AvatarScale, AvatarOffsetX/Y, AllowedChatIds, ReviewAgentId, MaxReviewIterations, FinalizerAgentId) |
|
||||
| `chains` | Ein Request-Response-Zyklus (Tokens, Timing, Iterations) |
|
||||
| `messages` | Einzelne Nachrichten (text / tool_use / tool_result / error) |
|
||||
| `messages` | Einzelne Nachrichten (text / tool_use / tool_result / error / web_search_result) |
|
||||
| `attachments` | Base64-Anhänge (Bilder, Dokumente) |
|
||||
| `archives` | Archivierte Chain-Gruppen |
|
||||
| `cronjobs` | Geplante Tasks (Cron-Expression + Prompt) |
|
||||
@@ -128,6 +128,9 @@ User-Input → POST /api/chat (SSE)
|
||||
→ Bei end_turn + ReviewAgent → Review-Phase:
|
||||
→ Review-Agent prüft (eigene Tools, max 25 Iterationen)
|
||||
→ [APPROVED] → Fertig | Feedback → Worker korrigiert → erneuter Review
|
||||
→ Bei FinalizerAgent → Finalizer-Phase:
|
||||
→ Finalizer-Agent arbeitet (eigene Tools, z.B. git commit)
|
||||
→ Einmalig, kein Feedback-Loop
|
||||
→ Stop-Button: POST /api/chat/stop → StreamingTracker.Cancel()
|
||||
→ CancellationToken durchgereicht bis ToolService → Prozess-Kill
|
||||
→ client_disconnected
|
||||
@@ -238,20 +241,27 @@ Läuft als `systemd`-Service, Kestrel auf konfigurierbarem Port (Default 19000),
|
||||
|
||||
---
|
||||
|
||||
## Multi-Agent Review-System
|
||||
## Multi-Agent System (Review + Finalizer)
|
||||
|
||||
Eine Session kann optional einen **Review-Agent** haben (`review_agent_id`, `max_review_iterations`).
|
||||
Eine Session kann optional einen **Review-Agent** (`review_agent_id`, `max_review_iterations`) und/oder einen **Finalizer-Agent** (`finalizer_agent_id`) haben.
|
||||
|
||||
**Flow:** Worker-Agent arbeitet → `end_turn` → Review-Agent prüft (eigener API-Call, eigene Tools, max 25 Iterationen) → `[APPROVED]` = fertig | Feedback → Worker korrigiert → erneuter Review (bis max Runden).
|
||||
**Flow:** Worker-Agent arbeitet → `end_turn` → Review-Agent prüft → `[APPROVED]` / Feedback-Loop → Finalizer-Agent arbeitet (einmalig, kein Loop) → Fertig.
|
||||
|
||||
**Backend:** `ChatService` baut `ReviewContext` (Model, SystemPrompt, Tools). `AnthropicService.RunReview()` orchestriert Review-Runden. `RunReviewAgentChat()` = eigener Claude-API-Call.
|
||||
**Backend:** `ChatService` baut `ReviewContext` + `FinalizerContext`. `RunReview()` orchestriert Review-Runden. `RunFinalizer()` führt Finalizer aus. Beide nutzen die generische `RunAgentChat()` Methode (eigener Claude-API-Call mit Tool-Loop).
|
||||
|
||||
**SSE-Events:** `review_start`, `review_text`, `review_tool_use`, `review_feedback`, `review_approved`
|
||||
**SSE-Events:**
|
||||
- Review: `review_start`, `review_text`, `review_tool_use`, `review_feedback`, `review_approved`
|
||||
- Finalizer: `finalizer_start`, `finalizer_text`, `finalizer_tool_use`, `finalizer_done`
|
||||
|
||||
**Frontend-Rendering:**
|
||||
- Streaming: `chat.js` rendert Review-Events als eigene Bubbles (`.review-bubble`)
|
||||
- History: `renderMarkdown` parst `[Review: AgentName]`, `[Review-Feedback ...]`, filtert `[APPROVED]`
|
||||
- `history.js` + `shared-page.js`: Review-Nachrichten als `.review-bubble`, kein Merging mit normalen Messages
|
||||
- Streaming: `chat.js` rendert Review-/Finalizer-Events als eigene Bubbles (`.review-bubble` / `.finalizer-bubble`)
|
||||
- History: `renderMarkdown` parst `[Review: AgentName]`, `[Finalizer: AgentName]`, `[Review-Feedback ...]`, filtert `[APPROVED]`
|
||||
- `history.js` + `shared-page.js`: Review-/Finalizer-Nachrichten mit eigenen Bubble-Klassen, kein Merging
|
||||
|
||||
**Web-Search Sources:**
|
||||
- `web_search_result`-Messages in DB gespeichert (Sources als JSON-Array, leere werden übersprungen)
|
||||
- History + Shared-Page: Tool-Box mit klickbaren Source-Links (Domain + Title)
|
||||
- Streaming: `pauseStreamBubble()` hält Bubble offen zwischen Web-Searches (keine Doppel-Bubbles)
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in new issue
Block a user