[Unreleased]
Hinzugefügt
- Workflow Blueprint System — Visueller Workflow-Editor zum Entwerfen und Ausführen mehrstufiger Automatisierungs-Blueprints. Vollständige Stack-Implementierung:
- Backend:
WorkflowundWorkflowRunORM-Modelle mit Alembic-Migration; Pydantic-Schemas für CRUD + Validierung; vollständige REST API (/api/workflows/*) mit Create, Read, Update, Delete, List, Import/Export; SSE-basierter Ausführungs-Endpoint für Echtzeit-Laufstatus-Streaming; verschlüsselte Umgebungsvariablen über vorhandenenCREDENTIAL_ENCRYPTION_KEY. - Execution Engine:
WorkflowEnginemit topologischer Sortierung für Knotenausführungsreihenfolge, Bedingungsverzweigungsunterstützung undVariableStorefür knotenübergreifende Datenübergabe. 12 Knotenausführer: Start, End, LLM, ConditionBranch, QuestionClassifier, Agent, KnowledgeRetrieval, Connector, HTTPRequest, VariableAssign, TemplateTransform, CodeExecution. - Frontend: Visueller Workflow-Editor mit React Flow v12 — Drag-and-Drop-Knotenpalette, 12 benutzerdefinierte Knotenkomponenten mit typspezifischen Symbolen und Konfiguration, Knotenkonfigurationspanel mit typspezifischen Formularen, Verbindungsvalidierung, Ausführungspanel mit SSE-gesteuertem Live-Ausführungsstatus, Workflow-Listenseite mit Kartengitter. Vollständige i18n-Unterstützung (6 Sprachen).
- Sicherheit: Code-Ausführungsknoten verwendet
subprocessstatt bloßemexec()für OS-Level-Isolation; Umgebungsvariablen gefiltert aus Eval-/Template-Ausführungskontexten; SSE-Keepalive für lange laufende Workflows; ordnungsgemäßeExecutionContext-Verdrahtung über alle Knotenausführer.
- Backend:
- Admin: Review Log Audit-Tab — Admin-Audit-Seite hat jetzt einen segmentierten Toggle „System Log / Review Log”. Das Review Log-Panel fragt den neuen
GET /api/admin/review-logEndpoint ab (Filter: Org, Ressourcentyp, Aktion; Limit/Offset-Pagination) und zeigt eine Tabelle mit Zeit, Org-Name, Ressourcentyp, Ressourcenname, Aktions-Badge (farbcodiert: grün=genehmigt, rot=abgelehnt, bernstein=eingereicht/erneut eingereicht, gedimmt=unveröffentlicht) und Operator. Vollständige i18n (EN + ZH). - Platform Organization: Integrierte Org
platform(ID:00000000-0000-0000-0000-000000000001) — alle neuen Benutzer treten automatisch bei. Diese Organisation ersetzt das Konzept der „globalen” Sichtbarkeit und bietet einen zentralen Hub zum Teilen von Ressourcen über alle Benutzer hinweg. - Resource Subscriptions: Benutzer können sich jetzt von gemeinsamen Ressourcen (Agenten, Konnektoren, Wissensdatenbanken, MCP-Server) aus Org-Märkten abonnieren/abmelden. Neue
resource_subscriptionsDatenbanktabelle verfolgt Abonnementbeziehungen. - Market API: Neue Endpoints zum Durchsuchen und Verwalten von Abonnements:
GET /api/market— verfügbare Ressourcen in aktueller Org durchsuchenPOST /api/market/subscribe— Ressource abonnierenDELETE /api/market/unsubscribe— Ressource abmeldenGET /api/market/subscriptions— aktuelle Abonnements des Benutzers auflisten
- Market Page: Neue
/marketSeite im Portal zum Durchsuchen und Verwalten von Abonnements für Org-Ressourcen. - Agent Auto-discovery: Neues
discoverableBoolean-Feld auf Agenten. Agenten mitdiscoverable=truekönnen automatisch erkannt und von LLMs über dascall_agentTool aufgerufen werden (einstufige Delegation, keine Rekursion). - Sub-agent Binding: Neues
sub_agent_idsFeld auf Agenten — explizite Whitelist aufrufbarer Sub-Agenten für granulare Zugriffskontrolle. - CallAgentTool: Integriertes Tool, das Aufgaben an spezialisierte Agenten mit strukturierter Eingabevalidierung und Ergebnisbehandlung delegiert.
- MCP Server Credentials: Neue
mcp_server_credentialsTabelle ermöglicht Umgebungsvariablen- und HTTP-Header-Overrides pro Benutzer für MCP-Server. - MCP Credentials Endpoint:
PUT /api/mcp-servers/{id}/my-credentialsermöglicht Benutzern, persönliche Credential-Overrides für gemeinsame MCP-Server zu speichern. allow_fallbackauf MCPServer: Boolean-Feld, das Credential-Fallback-Verhalten steuert — wenntrue, fallen fehlende Benutzer-Credentials auf Standardwerte des Eigentümers zurück.- Connector/KB Toggle: Neue Endpoints für Ressourcenzustandsverwaltung:
POST /api/connectors/{id}/toggle— Konnektor aussetzen/fortsetzenPOST /api/knowledge-bases/{id}/toggle— Wissensdatenbank aussetzen/fortsetzen
- Standalone KB Conversations: Neues
kb_idsFeld aufChatStreamRequestundConversation— Benutzer können jetzt direkt mit Wissensdatenbanken chatten, ohne sie an einen Agenten zu binden. - Platform Org Protection: Die Platform Org kann nicht gelöscht werden, und Benutzer können sie nicht selbst verlassen. Stellt sicher, dass alle Benutzer die Konnektivität zur Organisations-Hub beibehalten.
- Publish Review UI (Frontend): Org-Level Publish Review System Frontend — Review-Toggle im Org-Bearbeitungsdialog, ReviewsSheet mit Typ-/Status-Filtern und Genehmigung/Ablehnung-Workflow, Publish-Status-Badges (ausstehend/genehmigt/abgelehnt) auf Agent-Karten mit Tooltip für Ablehnungsnotizen, Review-Hinweis im Publish-Dialog, wenn Ziel-Org Review erfordert, Aktion erneut einreichen für abgelehnte Ressourcen, „Review Management” Dropdown für Org-Admin/Eigentümer. Alle Ressourcentypen (Agenten, Konnektoren, KBs, MCP-Server) erhalten
publish_status,reviewed_by,reviewed_at,review_noteTypfelder. Vollständige i18n (EN + ZH).
Behoben
- Keine erneute Überprüfung beim
is_active-Umschalten: Das Umschalten vonis_activebei Agenten, Konnektoren, Wissensdatenbanken oder MCP-Servern setztpublish_statusnicht mehr vonapprovedaufpending_reviewzurück. Dercheck_edit_revert-Schutz wird jetzt nur noch ausgelöst, wenn sich tatsächliche Inhaltsfelder ändern (nicht nuris_active).
Geändert
- Sichtbarkeit vereinfacht: Die Ressourcensichtbarkeit wurde von
personal | org | globalaufpersonal | orgreduziert. “Globale” Ressourcen werden jetzt in der Platform-Organisation veröffentlicht, wobei das abwärtskompatible Verhalten beibehalten wird und gleichzeitig das Sichtbarkeitsmodell vereinfacht wird. - Veröffentlichungsschnittstelle vereinheitlicht: Alle 4 Ressourcentypen (Agent, Connector, Knowledge Base, MCP Server) unterstützen jetzt nur noch
scope="org"zum Veröffentlichen. Keinescope="global"oder Admin-exklusiven globalen Veröffentlichungsendpunkte mehr. - Automatische Platform-Registrierung: Neue Benutzer werden bei der Registrierung automatisch zur Platform-Organisation hinzugefügt, um sofortigen Zugriff auf gemeinsame Organisationsressourcen zu gewährleisten.
- Admin-Panel-Bereinigung: Die Admin-Registerkarten “Global Agents” und “Global MCP” wurden entfernt, da globale Ressourcen jetzt über die Platform-Organisation verwaltet werden.
Entfernt
- Feld
is_globalaus Agent- und MCPServer-Modellen sowie aus allen API-Antworten entfernt - Felder
cloned_from_agent_idundcloned_from_mcp_server_idaus Agent und MCPServer entfernt - Globale Agenten-Verwaltungsendpunkte (
/api/admin/global-agents/*) entfernt - Globale MCP-Server-Endpunkte (
/api/admin/mcp-servers/*) entfernt - Alle Konzeptreferenzen
visibility="global"aus Ressourcen, API-Verträgen und Frontend-Logik entfernt
[v0.7.5] - 2026-03-12
Hinzugefügt
-
Kostenloser Modusumschaltung + Verfolgung pro Durchgang: Benutzer können jetzt frei zwischen Auto/React/DAG mitten in der Konversation wechseln, ohne einen neuen Chat zu starten. Jede Assistent-Nachricht speichert ihren tatsächlichen Ausführungsmodus in
metadata.mode. Verlaufsdurchgänge werden mit der korrekten Engine pro Durchgang gerendert (erkannt aus Metadaten oder SSE-Event-Fingerprinting). Seitenleisten-Modussymbole entfernt. Badge pro Durchgang zeigt, welche Engine jeden Durchgang verarbeitet hat. -
Drei Modellrollen (F5): Unabhängige Umgebungskonfiguration für General-, Fast- und Reasoning-Modell-Tiers. Fast-Modell erbt nicht mehr Reasoning-Einstellungen vom Hauptmodell. Neue Umgebungsvariablen:
FAST_LLM_API_KEY,FAST_LLM_BASE_URL,FAST_LLM_TEMPERATURE,REASONING_LLM_MODEL,REASONING_LLM_API_KEY,REASONING_LLM_BASE_URL,REASONING_LLM_TEMPERATURE,REASONING_LLM_CONTEXT_SIZE,REASONING_LLM_MAX_OUTPUT_TOKENS,REASONING_LLM_EFFORT,REASONING_LLM_BUDGET -
Strukturierte Schrittausgabe (F2):
StepOutputDataclass ersetzt einfache String-Ergebnisse in DAG-Schritten und ermöglicht zukünftige Unterstützung für strukturierte Daten und Artefaktübergabe zwischen Schritten -
Tool-Cache (F3): Identische Tool-Aufrufe innerhalb einer einzelnen DAG-Ausführung werden zwischengespeichert, um redundante API-Aufrufe zu vermeiden. Pro-Schlüssel-Async-Locks verhindern Thundering Herd. Konfigurierbar über
DAG_TOOL_CACHE(Standard: aktiviert) -
Verifikation pro Schritt (F4): Optionale LLM-basierte Qualitätsprüfung nach Abschluss jedes DAG-Schritts. Bei Fehler wird einmal mit Verifikations-Feedback erneut versucht. Konfigurierbar über
DAG_STEP_VERIFICATION(Standard: deaktiviert) -
Auto-Routing (F1): Fast LLM klassifiziert Anfragen als ReAct- oder DAG-Ausführungsmodus. Neuer
/api/autoEndpunkt mit SSE-Routing-Event. Frontend 3-Wege-Modusumschalter (Auto/Standard/Planner). Konfigurierbar überAUTO_ROUTING(Standard: aktiviert) -
Design-Philosophie-Dokument: Neues
docs/design-philosophy.mdxdokumentiert architektonische Entscheidungen — warum Handoff, Backflow, Teams und agent_hint absichtlich von der DAG-Ausführung ausgeschlossen wurden -
Verbindungs-Anmeldedaten-Verschlüsselung + Benutzerübersteuerung pro Benutzer — Auth-Token (
bearer,api_key,basic) werden jetzt ausauth_configextrahiert und separat in einer neuenconnector_credentialsTabelle mit optionaler Fernet-Verschlüsselung gespeichert (setzen SieCREDENTIAL_ENCRYPTION_KEY). Sensible Felder werden aus allen API-Antworten entfernt. Neue Endpunkte:GET/PUT/DELETE /api/connectors/{id}/my-credentialsermöglichen Benutzern, persönliche Anmeldedaten-Übersteuerungen zu speichern. Spalteallow_fallbackauf Verbindungen steuert, ob das Fehlen persönlicher Anmeldedaten auf die Standard-Anmeldedaten des Verbindungseigentümers zurückfällt. Chat-Tool-Laden löst zuerst pro-Benutzer-Anmeldedaten auf, dann Fallback auf Eigentümer-Anmeldedaten wennallow_fallback=true. Vorhandene Anmeldedaten werden automatisch vonauth_configdurch Migrations9u1w3y5a678migriert. -
ModelConfig API-Schlüssel-Verschlüsselung im Ruhezustand —
ModelConfig.api_keyist jetzt im Ruhezustand mit demEncryptedStringTypeDecorator verschlüsselt (Fernet symmetrische Verschlüsselung überCREDENTIAL_ENCRYPTION_KEY). Transparente Verschlüsselung beim Schreiben / Entschlüsselung beim Lesen mit abwärtskompatibel erkanntem Legacy-Klartext. Migrationf8g9h0a1b2c3konvertiert vorhandene Klartextwerte an Ort und Stelle.
Behoben
- Schnelles Modell (
get_fast_llm()) erbt nicht mehrLLM_API_KEY,LLM_BASE_URL,LLM_TEMPERATUREund Reasoning-Einstellungen von der Hauptmodellkonfiguration - Backend Pydantic-Schemas akzeptieren nun
"auto"-Modus für Konversationen und Agent-execution_mode, Standardwert von"react"zu"auto"geändert - Frontend SSE-Routing-Ereignisfeldnamen mit Backend abgestimmt (
chosen_mode→mode,reason→reasoning) — Auto-Routing fiel stillschweigend zu ReAct zurück, unabhängig von der Klassifizierer-Entscheidung - Standard-Ausführungsmodus des Agent-Einstellungsformulars von
"react"zu"auto"geändert, um mit Backend-Schema-Standardwerten übereinzustimmen
Geändert
- Mode-Toggle-Labels enthalten jetzt den Engine-Namen: “Standard (ReAct)”, “Planner (DAG)” für bessere Klarheit
- Skeleton-Bildschirme — Alle Listen-/Grid-Seiten zeigen jetzt während des initialen Ladens layoutgerechte Skeleton-Platzhalter statt eines zentrierten Spinners an. Betroffene Seiten:
/agents(3-spaltigeAgentCard× 6),/chats(ListRow× 8),/kb(3-spaltigeKbCard× 6),/kb/[id](strukturelles Skeleton mit Header + Toolbar +TableRow× 5),/connectorsConnectors-Tab (3-spaltigeConnectorCard× 6),/artifacts(4-spaltigeArtifactCard× 8). Drei neue Composites wurden zuskeleton.tsxhinzugefügt:ConnectorCard,ArtifactCard,TableRow. Tab-Wechsel und sekundäre Ladezustände (Show-more, Suche, Dialoge) behalten Loader2-Spinner bei.
[v0.7.4] - 2026-03-12
Hinzugefügt
- Evaluation Center — Neuer
/eval-Bereich im Portal für quantitative Agenten-Qualitätsbenchmarking. Features: Test Dataset-Verwaltung (erstellen/bearbeiten Sie Sammlungen von Prompt + erwartetes Verhalten + Assertion-Testfälle); Eval Runs (wählen Sie einen Agenten + Dataset → führen Sie alle Fälle parallel durch den Live-Agenten mitasyncio.Semaphore(5)aus → bewerten Sie jede Antwort mit einem schnellen LLM-Grader → speichern Sie pro Fall Pass/Fail + Latenz + Token-Ergebnisse); Results Viewer mit erweiterbaren Zeilen, Pass-Rate-Fortschrittsbalken und Auto-Polling (3s) während der Ausführung. Geeignet für Enterprise-Beschaffungsüberprüfung. Migrationr8t0v2x4z567. - Admin:
json_mode_enabledPro-Modell-Flag — Jede Modellkonfiguration hat jetzt einen expliziten JSON Mode-Schalter (standardmäßig aktiviert) in Admin → Models → Advanced settings. Das Deaktivieren verhindert, dass LiteLLM eine Assistant-Prefill-Nachricht ({"role":"assistant","content":"{"}) injiziert, die AWS Bedrock dazu bringt, Konversationen mit einerValidationExceptionbei der 2. und nachfolgenden Agenten-Iteration abzulehnen. ENV-konfigurierte Modelle werden durch die neueLLM_JSON_MODE_ENABLEDUmgebungsvariable gesteuert. Alle URL-Pattern-Heuristiken (is_bedrock,is_anthropic_relay) wurden entfernt; die Fähigkeit ist jetzt explizit. Enthält Alembic-Migration (q7s9u1w3y456). - Admin-Modellformular UX — Umstrukturierter Dialog zum Hinzufügen/Bearbeiten von Modellen: Standardmäßig werden nur Name, Modellname und API-Schlüssel angezeigt. Alle anderen Einstellungen (Basis-URL, Provider, Temperatur, Max Output Tokens, Context Size, JSON Mode) sind unter einem “Advanced”-Schalter zusammengefasst, um visuelles Rauschen für den häufigen Fall zu reduzieren.
- Settings: Organizations-Tab — Benutzer können jetzt Organisationen direkt von der Settings-Seite aus erstellen, beitreten und verwalten. Features umfassen einen Create Organization-Dialog (Name, automatisch generierter Slug, Beschreibung, Emoji-Symbol), einen Edit-Dialog (nur Besitzer), ein Members Sheet zur Verwaltung von Mitgliederrollen (Besitzer/Admin/Mitglied mit farbcodierten Badges) und Inline-Aktionen (Verlassen für Nicht-Besitzer, Löschen für Besitzer). Alle Org-Operationen rufen die benutzerorientierten
/api/orgs-Endpunkte auf. Vollständige i18n-Unterstützung (EN + ZH). - SSE Protocol v2 — Echtzeit-Antwort-Streaming: Backend
StreamChunkerhältdelta_reasoningundusageFelder; LLM-Anfragen enthalten Nutzungsverfolgung; ReAct_run_native()streamt jetzt überstream_chat. SSE-Protokoll sendetdoneunmittelbar nach der Antwort, dann sendetsuggestions,titleundendals separate Events. DB-Sitzung wird während der LLM-Ausführung früh freigegeben. SQLite-Pool-Größe erhöht von 5 auf 20. - AI Builder-Erweiterung — 7 neue Tools +
is_builderFlag: Drei neue Connector-Builder-Tools (GetSettings,TestConnection,ImportOpenAPI) und vier neue Agenten-Builder-Tools (ListConnectors,AddConnector,RemoveConnector,SetModel). Neueis_builderboolesche Spalte auf Agenten mit Alembic-Migration. Builder-Prompt Auto-Refresh bei Sitzungserstellung. SSRF-Schutz für OpenAPI-Import. - SSE v2 Frontend — Streaming-Cursor, DAG-Runden-Snapshots, UI-Polish: Frontend-Hooks analysieren
end/suggestions/titleEvents. DAG-Neuplanung zeigt vorherige fehlgeschlagene Runden als zusammenklappbare Karten. CSS-Punkt-Puls-Streaming-Cursor. DAG-Layout entkoppelt von Schrittzuständen. Eingeklappte Seitenleiste Neuer-Chat-Button. Connector-Editor Overflow-Fix.font-monodurchtabular-numsersetzt. - AI Builder-Konzeptseite: Neue
docs/concepts/ai-builder.mdxmit Connector- und Agenten-Builder-Guides sowie chinesischer Übersetzung. - Builder Dialog — ReAct-Agent für Connector-Verwaltung: Aktualisiert das AI-Assistenten-Panel von einem Single-Shot-LLM-Aufruf zu einer vollständigen ReAct-Agent-Schleife. Ein “Advanced Builder”-Button öffnet einen Vollbild-Dialog mit der eingebetteten PlaygroundPage (Chat auf der linken Seite, Live-Action-Vorschau auf der rechten Seite). Sechs Connector-Builder-Tools (
connector_list_actions,connector_create_action,connector_update_action,connector_delete_action,connector_update_settings,connector_test_action) arbeiten direkt mit der DB und werden automatisch injiziert, wenn der Builder Agent aktiv ist.POST /api/builder/sessionerstellt oder wiederverwendet einen Pro-Connector-Builder-Agent, der Konversationsverlauf speichert. - Dual-Datenbankunterstützung (SQLite + PostgreSQL):
DATABASE_URLakzeptiert jetzt sowohl SQLite (sqlite+aiosqlite:///...) als auch PostgreSQL (postgresql+asyncpg://...) Verbindungszeichenfolgen. SQLite bleibt die Null-Konfiguration-Standard; PostgreSQL wird für Produktions- und Multi-Worker-Bereitstellungen empfohlen. Docker Compose stellt automatisch einen PostgreSQL-Service mit Health Checks bereit. Alembic-Migrationen sind Dialekt-aware (json_extractvs::json->>'key'). Admin-Health-Dashboard zeigt die tatsächliche Datenbank-Engine und Version. - Modellkonfigurationsdokumentation: Neue
docs/configuration/models.mdxSeite mit Modellkonfigurationsreferenz, einschließlich Extended Thinking / Reasoning-Setup für jeden Provider. - Extended Thinking / Reasoning-Unterstützung: Fügen Sie
LLM_REASONING_EFFORT(low/medium/high) undLLM_REASONING_BUDGET_TOKENSUmgebungsvariablen für Modelle mit Extended Thinking (OpenAI o-Serie, Gemini 2.5+, Claude) hinzu. Sendetreasoning_effortfür OpenAI/Gemini,thinkingfür Anthropic (automatisch erkannt). Extrahiertreasoning_contentaus mehreren Provider-Feldnamen (DeepSeek R1, Claude-Proxies) und zeigt es im UI “thinking”-Schritt an. - Admin: Tool deaktivieren: Neues Admin-Tools-Panel mit Pro-Tool-Aktivieren/Deaktivieren-Schaltern (gespeichert als
disabled_builtin_toolsEinstellung). Deaktivierte Tools werden zur Laufzeit aus der Chat-Tool-Auflösung gefiltert. Der/api/tools/catalogEndpunkt gibt eindisabledFlag zurück, und die Tools-Seite UI zeigt den deaktivierten Zustand. - Admin: MCP-Server auf Connectors-Seite: MCP-Server-Verwaltung von der Tools-Seite zur Connectors-Seite als neuer Tab verschoben.
MCPServersSectionin eine wiederverwendbare Komponente mit imperativen Action Refs extrahiert. - Admin: Reasoning Effort im Health Dashboard: Reasoning Effort Label wird jetzt im Admin-Health-Check-Dashboard angezeigt.
- Export: PDF-Format: Konversationen können jetzt als PDF-Dokumente exportiert werden (erfordert
reportlab+MarkdownExtras). - start.sh: WORKERS Umgebungsvariable: Setzen Sie
WORKERS=N, um uvicorn mit mehreren Workern im Portal/API-Modus auszuführen.
Geändert
- Tests: NativeToolFakeLLM für stream-basierte ReAct aktualisiert: Test-Fake-LLM erzeugt nun
StreamChunk-Sequenzen, die der neuen stream-basierten_run_native()-Schleife entsprechen - LLM-Schicht: Direkter
AsyncOpenAI-Client durch LiteLLM für universelle Provider-Unterstützung ersetzt. Alle Provider-spezifischen Bedingungen (Anthropic-Denken,max_completion_tokens, GPT-5-Tools-Workaround) wurden entfernt. Anthropic-Modelle werden nun über LiteLLMs natives API weitergeleitet, was ordnungsgemäßereasoning_content-Unterstützung (erweitertes Denken) ermöglicht - Tools-Seite vereinfacht: Tools-Seite zeigt nun nur integrierte Tools (keine Registerkarten mehr); MCP-Verwaltung wurde auf die Connectors-Seite verschoben
- Redis-Interrupt-Broker: Cross-Worker-Interrupt-/Inject-Relay über Redis Pub/Sub. Automatisch aktiviert, wenn
REDIS_URLgesetzt ist; fällt ansonsten auf In-Process-Warteschlangen zurück. Docker Compose enthält nun einen Redis-Service (automatisch konfiguriert, keine Benutzeraktion erforderlich) - Export: Standard-Detailstufe: Export-Dialog zeigt nun standardmäßig Zusammenfassung (keine Ausführungsdetails) statt vollständig
- Artefakte: Nach Datei-mtime sortieren: List-all-artifacts verwendet nun per-Datei-mtime für genaue Sortierung (setzt Konversationszeit-Workaround zurück)
- Chat: asynchrones Laden von Bildern:
_load_image_data_urlsist nun asynchron und lagert Dateileseoperationen überasyncio.to_threadan einen Thread aus, um die Event-Loop freizugeben - Multi-Worker-Bereitschaft: SSE-Tickets, OAuth-Status und Bind-Tickets verwenden nun JWT-signierte Token statt In-Memory-Dicts; Dateiindex-Sperren verwenden
fcntl.flock()für Cross-Process-Sicherheit; Wartungs-Cache-TTL von 30s auf 5s reduziert für schnellere Cross-Worker-Propagation - Health-Dashboard: Infrastruktur-Checks: Datenbanktyp (SQLite/PostgreSQL) und Redis-Status zum Admin-Health-Dashboard hinzugefügt
- Smart-Relay-Routing: Erkennt API-Protokoll automatisch aus URL-Pfadmustern (z. B.
/claudeoder/anthropic→ Anthropic nativ,/gemini→ Google nativ), was ordnungsgemäße Authentifizierungsheader und Parametertranslation für Third-Party-Relay-Plattformen ohne manuelle Provider-Konfiguration ermöglicht - Strukturierte Output-Degradation: Einheitliches
structured_llm_call()-Dienstprogramm mit 3-stufiger Extraktion (Native FC → JSON Mode → Klartext + Regex-Fallback). DAG Planner, Plan Analyzer und Tool-Auswahl wurden umgestaltet, um das gemeinsame Dienstprogramm zu verwenden und ad-hoc-JSON-Parsing durch konsistente Wiederholung und Degradation über alle strukturierten LLM-Call-Stellen hinweg zu ersetzen
Dokumentation
- Architekturdiagramm-Layout-Fix: Mermaid-Flussdiagramme von links-rechts (
LR) zu oben-unten (TD) gewechselt für bessere Lesbarkeit,mode: "wide"aus Frontmatter entfernt undcustom.cssfür zentrierte Mermaid-SVG-Darstellung hinzugefügt - Mermaid-Knotenbeschriftungs-Zeilenumbrüche:
\ndurch<br/>in allen Mermaid-Flussdiagramm-Knotenbeschriftungen in Architektur- und Konzeptdokumenten (EN + ZH) ersetzt — Mermaid rendert\nals Literaltext in Anführungszeichen
Behoben
-
Docker Sandbox (DooD) Volume Mount: Behebung leerer
-vBind Mounts, wennCODE_EXEC_BACKEND=dockerin einem Container (docker-compose) ausgeführt wird. Sandbox-Verzeichnis vontmp/conversations/zudata/sandbox/verschoben (unter dem bereitgestellten./data:/app/dataVolume). NeueDOCKER_HOST_DATA_DIRUmgebungsvariable übersetzt Container-interne Pfade in für den Docker-Daemon sichtbare Host-Pfade. Behebt_PROJECT_ROOTAuflösung zu/app/src/(nicht/app/) durch Verwendung von.parent - Sicherheit: Python Sandbox AST Dunder-Validierung: Blockierung von Sandbox-Escape über AST Dunder-Attribut-Validierung
-
Sicherheit: MCP stdio Standardwerte + Befehlserlaubnis: Harmonisierung von MCP stdio Transport-Standardwerten (jetzt standardmäßig deaktiviert) und Hinzufügen einer Befehlserlaubnis (
ALLOWED_STDIO_COMMANDS) -
Sicherheit: SSRF DNS Rebinding-Prävention: Verhinderung von SSRF DNS Rebinding durch Transport-Level IP Pinning (
SSRFSafeTransport) - Sicherheit: Shell-Metazeichen Ausweichungserkennung: Erkennung von Shell-Metazeichen Ausweichung (Befehlsersetzung, Backticks, Variablenerweiterung, leere Anführungszeichen-Einfügung) vor der Blockliste
- Sicherheit: Connector Template Injection: Escape von Connector Template Inline-Substitutionen zur Verhinderung von JSON Injection
-
DAG: AnalysisCard Markdown: Analysebegründung wird jetzt mit
MarkdownContentstatt einfachem<p>gerendert, was Fettdruck/Listen in mehrstufiger Analyse behebt - DAG: Scroll-zu-Schritt mit eingeklappten Schritten: Klicken auf einen Schrittknoten in der Seitenleiste erweitert jetzt automatisch den eingeklappten Schrittbereich vor dem Scrollen
-
DAG: History Turn zeigt Schrittkarten: History Turns rendern jetzt Schrittkarten im erweiterten Collapsible (zuvor durch
hideStepCardsverborgen) - DAG: Veraltete Analyse bei Neuplanung: Analyse “Ziel nicht erreicht” aus Runde 1 wird jetzt sofort gelöscht, wenn die Neuplanung beginnt, und der Spinner “Analysieren…” aus Runde 2 erscheint korrekt
-
UI: Chat-Suche Fokusring:
focus-visible:outline-nonezu Sucheingabe hinzugefügt, um Fokusring-Überlauf zu verhindern - Export: PDF Lesbarkeit: Zeilenabstand (leading) und Zellenfüllung in allen PDF-Stilen erhöht für bessere Textlesbarkeit
-
Export: Emoji-Entfernung entfernt: Unnötige
_strip_emoji()aus der Endantwort-Darstellung in DOCX und PDF Exporten entfernt, ursprünglicher Inhalt bewahrt -
Admin: Dashboard Stats PG Absturz: Absturz der Admin Dashboard Stats Seite auf PostgreSQL behoben —
GROUP BYmit parametrisiertemcoalesce()verursachteGroupingError; ersetzt durchliteral()Spalten-Standard - Docker Compose Bereitstellung: Einzelnes Image (API + Frontend), benannte Volumes für Datenpersistenz, Standalone Next.js Output-Modus
-
Admin: Login-Verlauf Aufzeichnung: Auth-Endpunkte zeichnen jetzt jeden Anmeldeversuch (IP-Adresse, User-Agent, Erfolg/Fehler mit Grund) in der
LoginHistoryTabelle für Sicherheitsaudit auf - Admin: Dateibrowser: Neue Admin Dateibrowser-Endpunkte zum Auflisten und Herunterladen von benutzergestützten Dateien mit Paginierungsunterstützung
-
Admin: Erweiterte Agenten-/KB-Ansichten: Admin Agentenliste und Knowledge Base Ansichten zeigen jetzt
model_name,tools,kb_idsundembedding_modelFelder für bessere Sichtbarkeit -
Chat: Blockierung sensibler Wörter: Sowohl ReAct als auch
inject_messageChat-Endpunkte erzwingen jetzt Filterung sensibler Wörter, blockieren Nachrichten, die konfigurierte sensible Wörter enthalten -
SSE: Strukturierte Fehlerbehandlung:
onErrorCallback imuseSSEHook aktualisiert von einfacher Zeichenkette zuApiErrorObjekt für reichhaltigeren Fehlerkontext (Fehlercode, Argumente) -
UI:
formatTokensUtility: Neuer Formatierungshelfer zur Anzeige von Token-Zählungen mit Gebietsschema-bewusster Zahlenformatierung -
UI:
CheckboxundFadeInKomponenten: Neue shadcn-ähnliche Checkbox und Fade-In Animations-Wrapper Komponenten
Geändert
- Docs: ASCII → Mermaid-Diagramme: Alle ASCII-Diagramme mit Rahmen wurden in native Mermaid-Diagramme konvertiert (12 Diagramme auf 6 Seiten) für besseres Rendering und Interaktivität
- Docs: Dark-Mode-Design: Verfeinerte Mintlify-Farbkonfiguration — warmer Bernstein-Akzent im Dark Mode, Gradient-Hintergrund-Dekoration, korrekte Hintergrundfarben entsprechend dem Projekt-Design
Behoben
- Export: RFC 5987 Dateinamenunterstützung: UTF-8 codiertes
filename*wird gegenüber einfachemfilenameim Content-Disposition-Header bevorzugt, wodurch beschädigte CJK-Dateinamen beim Exportieren von Gesprächen behoben werden - Docker i18n beschädigt: Kopiere
messages/-Verzeichnis in die eigenständige Ausgabe und fügeoutputFileTracingIncludeshinzu, damit next-intl Locale-JSON-Dateien zur Laufzeit erkennen kann - Docker-Startracebedingung: Füge API-Bereitschafts-Warteschleife (Python-Socket-Abfrage) im Einstiegspunkt hinzu, bevor Next.js gestartet wird, um
e.map is not a functionSSR-Fehler zu verhindern - Artefakte: Nach Gesprächserstellungszeit sortieren: Sortiere Artefakte nach Gesprächserstellungszeit statt nach Datei-mtime (mtime ist auf Docker-Volumes unzuverlässig)
- OAuth: Produktions-API-URL automatisch von window.location-Port erkennen: Die automatische Erkennung im Browser funktioniert jetzt korrekt für benutzerdefinierte Ports in der Produktion (nicht nur 3000)
- Docker: DooD-Sandbox-Volume-Mount-Pfad-Nichtübereinstimmung: Bei Ausführung in einem Container mit
CODE_EXEC_BACKEND=docker(Docker-outside-of-Docker) wurden Sandbox-Skripte in Container-interne Pfade geschrieben, die für den Host-Docker-Daemon unsichtbar waren, was zu leeren-v-Mounts und „Datei oder Verzeichnis nicht vorhanden”-Fehlern führte. Behoben durch Verschieben des Sandbox-Verzeichnisses zudata/sandbox/, Hinzufügen derDOCKER_HOST_DATA_DIR-Umgebungsvariable mit_resolve_host_path()für Pfadübersetzung und Behandlung von leeren Umgebungsvariablen-Grenzfällen
[v0.7.3] - 2026-03-06
Hinzugefügt
- Globale MCP-Server: Von Admin bereitgestellte MCP-Server, die in allen Chat-Sitzungen geladen werden (nicht pro Benutzer/Agent); Abfragelogik:
or_(is_global==True, user_id==current_user.id) - Abwärtskompatibilitätsmodus: Admin-Plattform liest Legacy-
registration_enabledBoolean, wennregistration_modenicht gesetzt ist (migriert automatisch zu “open”-Modus) - Strukturiertes Audit-Logging:
write_audit()-Hilfsfunktion zentralisiert Audit-Log-Schreibvorgänge (admin_id, target_type, target_id, detail-Felder); ersetzt Ad-hoc-AuditLog()-Aufrufe
Geändert
- Audit-Log-Schema: Von rohem
meta-Dict zu strukturiertenadmin_id/target_type/target_id/detail-Spalten für bessere Compliance verschoben - OAuth-Callback-URL-Konstruktion:
{API_BASE_URL}/api/auth/oauth/{provider}/callback(automatisch vom Backend konstruiert, keine Hardcodierung)
Behoben
- Einladungscode-Rückwärtskompatibilität: Interpretiert registration_mode korrekt, wenn nicht explizit gesetzt (liest aus registration_enabled)
- Multi-Benutzer-Szenario: Globale MCP-Server verursachen keine Konflikte mehr mit Benutzer-Tools
[v0.7.2] - 2026-03-06
Hinzugefügt
- Nur-auf-Einladung-Registrierungsmodus: Neues Registrierungssystem mit drei Modi (offen/Einladung/deaktiviert) und CRUD für Einladungscodes
- Speicherverwaltung: Berechnung der Festplattennutzung pro Benutzer, Clear-Befehl, Bereinigung verwaister Dateien
- Erzwungenes Logout pro Benutzer: Möglichkeit für Administratoren, alle Token zu widerrufen und Neuauthentifizierung zu erzwingen
- Gesprächsmoderation: Möglichkeit für Administratoren, alle Benutzerkonversationen aufzulisten und zu löschen
Geändert
- Admin-Panels: Aufgeteilt in Admin-Liste (Benutzer, API-Schlüssel, Agenten, etc.) mit konsistenten Dropdown-Menü-Aktionsmustern
Behoben
- Admin-Listen-Paginierung: Alle Admin-Datenlisten unterstützen jetzt Paginierung und Suche
[v0.7.1] - 2026-03-06
Hinzugefügt
- API-Gesundheits-Dashboard: Systemstatistiken (Benutzer, Gespräche, Token, Modellnutzungsdiagramme, Token-nach-Agent-Aufschlüsselung), Connector-Aufrufsmetriken (Erfolgsquote, Latenz)
- JWT-Authentifizierung: Token-basierte SSE-Authentifizierung, Gesprächseigentümerschaft, Ressourcenisolation pro Benutzer
- Admin-API: Agent-Verwaltung, Durchsetzung von Token-Kontingenten pro Benutzer (429 bei Überschreitung)
Behoben
- Token-Kontingent-Durchsetzung: ReAct- und DAG-Endpunkte prüfen nun Kontingente pro Benutzer vor der Ausführung
[v0.7] - 2026-03-06
Hinzugefügt
- Admin Platform v0.7: Benutzerverwaltung mit Suche/Pagination, Rollenwechsel, Passwort-Zurücksetzen, Konto aktivieren/deaktivieren, Nur-Einladungs-Registrierung, Pro-Benutzer-Kontingent, Gesprächsmoderation, Speicherverwaltung
- Einrichtungsassistent beim ersten Start: Beim ersten Start führt das Portal durch die Erstellung eines Admin-Kontos (Benutzername, Passwort, E-Mail)
- Persönliches Zentrum: Pro-Benutzer globale Systeminstruktionen, die auf alle Gespräche angewendet werden
- Spracheinstellung: Pro-Benutzer-Spracheinstellung (auto/en/zh) lenkt alle LLM-Antworten zur gewählten Sprache
Geändert
- Multi-Mandanten-Authentifizierung: JWT-Token erzwingen Gesprächseigentümerschaft; Agenten erben Benutzerkontext
Behoben
- OAuth-Kontobindung: Ordnungsgemäße E-Mail-Abgleichung für Link-/Login-Flows über alle Anbieter hinweg
[v0.6.5] - 2026-03-05
Hinzugefügt
- Utility-Tools:
email_send,json_transform,template_render,text_utils - Connector-Antwortfilterung:
CONNECTOR_RESPONSE_MAX_CHARSundCONNECTOR_RESPONSE_MAX_ITEMSLimits - Embedding-Modelloptionen: Unterstützung für Jina, OpenAI und benutzerdefinierte Embedding-Anbieter
Behoben
- RAG-Pipeline-Stabilität: Bessere Fehlerbehandlung für fehlgeschlagene Chunk-Operationen
[v0.6] - 2026-03-01
Hinzugefügt
- Connector-Plattform (Kernfunktion):
- Connector CRUD (erstellen, lesen, aktualisieren, löschen)
ConnectorToolAdapterkonvertiert Connector → BaseTool in ToolRegistry- Benutzer-spezifische Anmeldedaten mit AES-GCM-Verschlüsselung
- Bestätigungsgate für Schreibvorgänge
- Circuit Breaker für Verbindungsfehler
- Operationsklassifizierung (Lesen/Schreiben/Admin)
- Audit-Protokollierung für alle Tool-Aufrufe
- MCP-Integration: Automatische Tool-Erkennung über MCP-Protokoll, Prozessisolation
- Connector-Datenfluss-Beispiel: Abfrage → Governance → MCP → Legacy-System
Geändert
- Werkzeug-Architektur: Einheitliche ToolRegistry unterstützt integrierte, MCP und Connector-Werkzeuge
Behoben
- Werkzeugkategorisierung: Alle integrierten Werkzeuge sind ordnungsgemäß mit Kategorien gekennzeichnet
[v0.5] - 2026-02-28
Hinzugefügt
- Vollständige RAG-Pipeline: Jina Embedding + LanceDB Vektorspeicher + FTS + RRF Hybrid-Retrieval + Reranker
- Grounded Generation: Evidenzgestützte RAG mit
[N]Zitationen, Konflikterkennung, erklärbare Konfidenzwerte - KB-Dokumentenverwaltung: Chunk-Level CRUD, Textsuche, fehlgeschlagene Dokument-Wiederholung, automatisch migrierendes Vektorspeicher-Schema
- ContextGuard + Angeheftete Nachrichten: Token-Budget-Manager; angeheftete Nachrichten vor Komprimierung geschützt
Geändert
- Multi-Turn-Speicher: DbMemory in
core/memory/db.py, CompactUtils incore/memory/compact.py - LLM Compact:
CompactUtils.llm_compact()fasst alte Durchläufe über schnelle LLM zusammen - DAG Neu-Planung: Schleife bis zu
MAX_REPLAN_ROUNDS=3; plant neu, wennanalysis.achieved=Falseundconfidence < 0.5
Behoben
- Token-Overflow-Handling: Automatische LLM-gestützte Zusammenfassung respektiert Token-Budgets
[v0.4] - 2026-02-25
Hinzugefügt
- Mehrteilige Gespräche: DbMemory speichert Gesprächsverlauf; intelligente Kürzung verwaltet lange Sitzungen
- Tool-Schritte falten: UI klappt Werkzeugaufrufe für bessere Lesbarkeit ein/aus
- HTTP-Anfrage-Werkzeug: Benutzerdefinierte Header, Authentifizierung, Methodenauswahl
- Shell-Ausführungs-Werkzeug: Sichere Befehlsausführung mit Timeout
- Agent-Verwaltung: Erstellen, Konfigurieren, Veröffentlichen von Agenten mit gebundenen Modellen, Werkzeugen, Anweisungen
- Ausführungsmodus pro Agent: Standard-/Planner-Modus-Umschalter, Temperaturkontrolle
- JWT-Authentifizierung: Zustandslose tokenbasierte Authentifizierung für API-Aufrufe
Geändert
- Speicherarchitektur: ReAct vollständig mit DbMemory verbunden; DAG injiziert Verlauf als angereicherte Abfragepräfix
- Admin-Integritätsprüfung: Überwacht sowohl ENV-konfigurierte als auch admin-konfigurierte Modelle
Behoben
- Multi-Benutzer-Isolation: Gespräche nach Benutzer isoliert; Agenten auf Benutzer beschränkt
[v0.3] - 2026-02-25
Hinzugefügt
- Web-Tools:
web_search(Jina/Tavily/Brave),web_fetch, konfigurierbare Anbieter - Dateivorgänge-Tool: Lesen, Schreiben, Auflisten, Löschen mit Pfadvalidierung
- MCP-Client: Protokoll-first-Tool-Integration, Prozessisolation
- Tool-Autodiscovery:
discover_builtin_tools()inbuiltin/__init__.py - Tool-Kategorien: computation, web, filesystem, knowledge, mcp, connector, general
- DAG-Visualisierung: Interaktiver Flussdiagramm mit Live-Status, Abhängigkeitskanten, Klick-zum-Scrollen
- Python/Node.js-Ausführung: Code-Ausführung in Docker für Isolation (
CODE_EXEC_BACKEND=docker) - Sandbox-Härtung:
--network=none,--memory=256m, Timeout-Durchsetzung
Geändert
- Tool-Schnittstelle: Alle Tools sind jetzt kategorisiert; Registry unterstützt Filterung
- Ausführungsmodell: DAG Executor führt Schritte gleichzeitig über asyncio aus
Behoben
- Robustheit der Werkzeugerkennung: Behandelt fehlende optionale Abhängigkeiten elegant
[v0.2] - 2026-02-24
Hinzugefügt
- Wiederholung & Ratenbegrenzung: Automatische exponentielle Backoff-Strategie für vorübergehende Fehler
- Nutzungsverfolgung: Token-/Kostenabrechnung pro Anfrage
- Native Funktionsaufrufe: Direkte Modellunterstützung für Werkzeugauswahl (kein reines JSON-Parsing)
- Multi-Modell-Unterstützung:
FAST_LLM_MODELfür kostengünstigere DAG-Schrittausführung - Speichersystem: WindowMemory (letzte N Durchläufe), SummaryMemory (LLM-zusammengefasst), DbMemory (persistent)
- FastAPI-Backend:
/api/execute(ReAct),/api/stream(SSE-Streaming)
Geändert
- LLM-Abstraktion: BaseLLM → OpenAICompatibleLLM mit einheitlicher Schnittstelle
- ModelRegistry: Zentralisierte Konfiguration, automatische Anbieterauswahl
Behoben
- Fehlerwiederherstellung: Automatischer Wiederholungsversuch bei vorübergehenden API-Fehlern
[v0.1] - 2026-02-22
Hinzugefügt
- ReActAgent: Reason → Act → Observe Schleife mit Werkzeugen
- DAGPlanner: LLM-generierte Abhängigkeitsgraphen, DAGExecutor für gleichzeitige Ausführung, PlanAnalyzer zur Ergebnisverifikation
- BaseTool Framework: Einheitliche Schnittstelle für alle Werkzeuge
- Calculator Werkzeug: Arithmetische Ausdrücke, Formelauswertung
- Python exec Werkzeug: Codeausführung in isolierter Umgebung
- KaTeX Rendering: Mathematische Notation in Streaming-Ausgabe
- JSON Mode Parsing: Robuste Verarbeitung strukturierter Ausgaben
- Portal UI: Next.js Web-Oberfläche mit Echtzeit-Streaming, dunkel/hell/System-Design
- Anfängliche Dokumentation: Wiki-Seiten zu Philosophie, Architektur und Roadmap
Behoben
- Streaming-Stabilität: Ordnungsgemäße SSE-Fehlerbehandlung und Verbindungsbereinigung