Zum Hauptinhalt springen

Documentation Index

Fetch the complete documentation index at: https://docs.fim.ai/llms.txt

Use this file to discover all available pages before exploring further.

Alle bemerkenswerten Änderungen an diesem Projekt sind hier dokumentiert. Das Format folgt Keep a Changelog. Versionen entsprechen Roadmap Meilensteinen.

[Unreleased]

Added

  • Nicht-englische Dokumentation zeigt jetzt die vollständige API-Referenz (OpenAPI-Endpunkte) und Konfigurationsseiten für Kanäle. Zuvor wurden diese Abschnitte nur auf der englischen Website angezeigt — die Navigation für zh / ja / ko / de / fr fehlte die Gruppe Endpoints und die Untergruppe Configuration > Channels, sodass Leser in diesen Sprachen nicht auf den automatisch generierten API-Spielplatz oder die Feishu-Kanal-Einrichtungsanleitung zugreifen konnten. Dies wurde als Nebeneffekt der Migration von docs/docs.json zu einer einzigen englischen Quelle der Wahrheit (docs/nav.template.json + scripts/docs-nav-glossary.json) behoben, die alle sechs Sprachen deterministisch regeneriert; eine manuelle sprachspezifische Synchronisierung ist nicht mehr erforderlich, wenn neue Dokumentationsseiten hinzugefügt werden.
  • Admin-Benutzer: unbegrenzte Kontingente pro Benutzer + Spalte „Registered”. Das Kontingentfeld leer zu lassen erbt jetzt das globale Limit; das Setzen auf 0 gewährt dem Benutzer unbegrenzte Nutzung. Zuvor führten beide zum gleichen Zustand, sodass die Gewährung von unbegrenztem Zugriff für einen einzelnen Benutzer eine direkte Datenbankbearbeitung erforderte. Die Benutzertabelle erhält auch eine Spalte „Registered” für Onboarding-Audits.

Behoben

  • Agent-Einstellungen: gebundene Ressourcen flackern nicht mehr als “(已删除)” beim Eintritt. Die KB- / Connector- / MCP-Server-Picker leiteten das Waisenkennzeichen synchron von selected − available ab, sodass jeder Agent, dessen Bestandsliste langsamer abgerufen wurde als der Agent selbst, kurzzeitig alle verknüpften Ressourcen als gelöscht markierte, bevor der korrekte Status wiederhergestellt wurde — besonders auffällig bei Org-Agenten mit mehreren Connectoren. Das Waisenkennzeichen wartet nun, bis jeder Bestandsabruf abgeschlossen ist, bevor es gerendert wird.
  • Toasts folgen nun dem Hell-/Dunkel-Design. Der Root-Toaster war unabhängig von der Benutzereinstellung auf Dunkel hartcodiert.
  • Die Nutzungsaufschlüsselung nach Agent dupliziert nicht mehr “Direct Chat”-Zeilen. Gespräche, die mit gelöschten Agenten verknüpft waren, erzeugten zuvor eine Zeile pro verwaister agent_id; sie werden nun in einer einzelnen Zeile zusammengefasst.
  • Self-Hosted-Deployments schlagen nicht mehr intermittierend mit container name already in use fehl. Ein neuer idempotenter ./deploy.sh-Wrapper räumt Hash-Präfix-Zombie-Container und DooD-Sandbox-Kinder auf, bevor docker compose up ausgeführt wird, sodass wiederholte Deployments nicht mehr auf dem Namen des Sandbox-Service kollidieren.
  • Keine redundanten chore(i18n): sync translations-Commits mehr nach Pushes. Der Pre-Commit-Übersetzungs-Hook aktualisierte .translation-cache.json auf der Festplatte, vergaß aber, sie zu stagen, sodass CI veraltete Cache-Einträge sah, dieselben Abschnitte neu übersetzte und aufgrund der LLM-Nichtdeterminismus einen leicht anderen Output automatisch committete. Der Hook staged nun den Cache zusammen mit den übersetzten Dateien — CI erkennt keinen Unterschied und beendet sich wie beabsichtigt stillschweigend.
  • Agent-Chat stürzt nicht mehr ab, wenn ein bestätigungspflichtiges Tool in einer ungebundenen Agent-Sitzung ausgeführt wird. Reine Modellgespräche, die ein integriertes Tool mit requires_confirmation=true aufgerufen haben, führten zu einem Hard-500 (oder einem roten “no agent_id”-Gater-Fehler in der UI), da der Pro-Agent-Genehmigungsrouter keine Konfiguration zu konsultieren hatte. Das Gate weicht nun elegant aus, wenn es keinen Agent zum Weiterleiten gibt, und der Chat-Stream stolpert nicht mehr über ein fehlendes agent_cfg.
  • Retry schlägt nicht mehr bei Strict-Alternation-Providern fehl, wenn der Verlauf verwaiste Benutzernachrichten enthält. Das Stoppen und erneute Versuchen einer Runde hinterlässt eine “gestoppte” Benutzernachricht im Gesprächsverlauf; das Abspielen dieses Verlaufs für Claude (das alternierende Benutzer-/Assistent-Rollen erzwingt) gab zuvor HTTP 400 zurück und verwarf stillschweigend frühere Nachrichten. Aufeinanderfolgende Nachrichten derselben Rolle werden nun vor dem Versand zu einer einzelnen Runde zusammengefasst, sodass jede Verwaiste als Kontext in den nächsten Aufruf übernommen wird — Retry funktioniert auch, wenn Sie stoppen, “Ich war noch nicht fertig — fahren Sie damit fort…” hinzufügen und erneut versuchen.
  • Playground-Retry zeigt die Abfrage nicht mehr kurzzeitig zweimal an. Der Retry-Flow spielte die gestoppte Runde aus dem Verlauf gleichzeitig ab und renderte eine neue Benutzersprechblase für die laufende Runde; während des Pre-Stream-Fensters waren beide sichtbar. Die laufende Sprechblase wird nun unterdrückt, wenn der Verlauf bereits denselben Inhalt rendert.
  • ReAct-Agent versucht nicht mehr, paraphrasierte Tool-Aufrufe zu wiederholen, nachdem ein Operator eine Genehmigungsanfrage ablehnt — er bestätigt die Ablehnung und stoppt.
  • Playground “Suggested follow-ups” kehrt zurück und ist nun pro Agent optional. Eine Regression hatte die Generierung von Vorschlägen in eine Fire-and-Forget-Hintergrundaufgabe verschoben, sodass der Playground die SSE-Events, die die Chip-Zeile unter einer Antwort anzeigen, nie erhielt. Vorschläge werden nun inline zwischen done und end für Agenten gestreamt, deren neuer “Follow-up Suggestions”-Schalter aktiviert ist (Standard aus, zu finden in der Einstellungsseite des Agenten). Task-ähnliche Agenten bleiben still und überspringen die zusätzliche Fast-Model-Roundtrip; Gesprächsagenten, die explizit eine Fortsetzung wünschen, erhalten die Chips zurück.

Geändert

  • Übersetzungsautorität von Locale-Dateien zu Glossar verschoben: Übersetzungsregeln befinden sich jetzt in scripts/translation-glossary.md — eine einzige Quelle der Wahrheit, die in jeden LLM-Übersetzungsaufruf (JSON, MDX, README) geladen wird. Der Pre-Commit-Hook lehnt jetzt bedingungslos manuelle Bearbeitungen von generierten Locale-Dateien ab (wodurch die vorherige ALLOW_LOCALE_EDIT=1-Überschreibung entfernt wird), da verstreute Pro-Locale-Bearbeitungen stillschweigend abweichen und bei vollständiger Neuübersetzung überschrieben werden. Um eine Fehlübersetzung zu beheben, bearbeiten Sie das Glossar (eine permanente Regel, die auf alle fünf Sprachen angewendet wird) und regenerieren Sie betroffene Dateien mit --force. Inline-Glossar-Regeln, die zuvor in drei Systemaufforderungen eingebettet waren, wurden in die externe Glossar-Datei konsolidiert.
  • Lizenzgeber und anwendbares Recht aktualisiert. Die FIM One Source Available License wird jetzt von FIM Labs Pte. Ltd. (Singapur) gewährt; das anwendbare Recht wechselt von der VR China zu Singapur, und Streitigkeiten werden durch SIAC-Schiedsverfahren in Singapur (ein Schiedsrichter, Englisch) beigelegt. Eine neue NOTICE-Datei auf oberster Ebene dokumentiert die F&E-Zuordnung, Marken und die Richtlinie für Komponenten von Drittanbietern. Keine Änderung an den zulässigen Nutzungs- oder Beschränkungsbedingungen.

[v0.8.5] - 2026-04-23

Hinzugefügt

  • Contributor-freundlicher i18n-Workflow: Mitwirkende müssen LLM_API_KEY nicht mehr konfigurieren, um PRs einzureichen, die englische Quelldateien betreffen. Wenn der lokale Pre-Commit-Übersetzungsschritt übersprungen wird (kein Schlüssel), übersetzt ein neuer .github/workflows/i18n-sync.yml-Workflow EN → ZH/JA/KO/DE/FR auf master nach dem Zusammenführen des PR und committed das Ergebnis automatisch. Der Pre-Commit-Hook weigert sich nun auch, manuelle Änderungen an generierten Locale-Dateien vorzunehmen (mit einem ALLOW_LOCALE_EDIT=1-Override für legitime Übersetzungskorrektionen), um stille Abweichungen zwischen EN-Quellen und übersetzten Ausgaben zu verhindern.
  • i18n CI-Fallback End-to-End verifiziert: Ein Smoke-Test-Push (nur EN, lokaler Übersetzungs-Hook übersprungen) bestätigte, dass der GitHub Actions-Workflow die geänderte Quelle erkennt, in alle fünf Locales übersetzt und das Ergebnis mit [skip ci] automatisch auf master committed, um Rekursion zu verhindern.
  • Exa-Integrationsdokumentationsseite: Dedizierter Integrations-Bereich in der Seitenleiste mit einer erstklassigen Exa-Seite, die die gesamte Exa-Suchoberfläche abdeckt (neural / fast / deep-reasoning / instant), Filterung, Content-Abruf und drei optimierte Voreinstellungen für Nachrichtenüberwachung, Forschungspapier-Abruf und Deep-Reasoning-Agenten. Dient als Partner-Landing-Page für das Exa-Integrationsverzeichnis.
  • Xinchuang (信创) Datenbankunterstützung: Der Database Connector listet nun KingbaseES (人大金仓), HighGo (瀚高) und DM8 (达梦) neben PostgreSQL/MySQL auf. KingbaseES und HighGo sind PG-kompatibel und verwenden asyncpg ohne zusätzliche Abhängigkeiten; DM8 verwendet das offizielle dmPython Vendor-Wheel. Ein eigenständiges scripts/test_xinchuang_dbs.py ermöglicht Operatoren, die Live-Konnektivität über die CLI zu überprüfen.
  • Feishu Channel + Bestätigungsgate über IM: Neuer Channel-Ressourcentyp (org-scoped, Anmeldedaten verschlüsselt im Ruhezustand) ermöglicht es Organisationen, eine Feishu-App für ausgehende Nachrichten zu verbinden. Tools mit requires_confirmation=True senden nun eine interaktive Approve/Reject-Karte an die konfigurierte Feishu-Gruppe, anstatt nur den Bestätigungsdialog im Portal anzuzeigen — jedes autorisierte Mitglied der Gruppe kann direkt aus Feishu genehmigen oder ablehnen. Umfasst Settings → Channels-Management-UI (Liste, Erstellen/Bearbeiten mit Dirty-State-Schutz, Details mit kopierbarer Callback-URL, Test-Send), CRUD-API (/api/channels) und den Feishu-Event-Callback-Endpunkt (/api/channels/{id}/callback) mit Signaturverifizierung und URL-Challenge-Unterstützung. Erster Schritt des v0.9 IM Channel Integration Roadmap-Elements, wird vor dem Zeitplan für die 2026-04-24 Roadshow ausgeliefert.
  • Agent Hook System (Skelett): Neue PreToolUseHook / PostToolUseHook-Abstraktion in src/fim_one/core/hooks/ ermöglicht es, dass deterministische Logik außerhalb der LLM-Schleife ausgeführt wird — der FeishuGateHook ist die erste konkrete Implementierung, angehängt an den Bestätigungsgate-Flow. Vollständiger Hook-Lebenszyklus + benutzerdefinierte YAML-Hooks bleiben v0.9-Umfang.
  • Hook System ist nun im ReAct und DAG Runtime live: Agenten, die hooks.class_hooks in ihrer model_config_json deklarieren, haben diese Hooks auf jeder Chat-Sitzung instanziiert und registriert. Der erste Consumer — FeishuGateHook — wird automatisch ausgelöst, wenn ein Agent ein Tool aufruft, dessen Connector-Aktion mit requires_confirmation=True gekennzeichnet ist, postet eine Approve/Reject-Karte an die Feishu-Gruppe der Organisation, blockiert das Tool und setzt fort oder bricht basierend auf dem Urteil ab. Zuvor war die Hook-Abstraktion vorhanden, aber nichts in der Web-Schicht verband sie mit Live-Chat.
  • Channels und Hook System-Architektur dokumentiert: Neue docs/architecture/hook-system.mdx erklärt die drei Hook-Punkte, warum Hooks außerhalb der LLM-Schleife ausgeführt werden, und führt FeishuGateHook End-to-End durch. Vorhandene Architektur-Seiten (system-overview, organization, react-engine, philosophy) verlinken darauf. README listet nun Messaging Channels als erstklassige v0.8-Fähigkeit auf und das Application Layer-Diagramm enthält IM-Ziele neben Portal/API/iframe.
  • Hook Approval Playground: Das Channels-Details-Blatt hat nun eine “Test Approval Flow”-Aktion, die einen sensiblen Tool-Aufruf simuliert, eine echte Bestätigungskarte an die verlinkte Feishu-Gruppe pusht und die Entscheidung des Reviewers live abfragt. Im Gegensatz zur vorhandenen Vorschau-Schaltfläche nutzt dies den vollständigen Produktionspfad (echte ConfirmationRequest-Zeile, echter Feishu-Callback, Statusübergänge), sodass Demos und Pre-Rollout-Proben denselben Code-Pfad verwenden, den ein Production Hook verwenden würde.
  • Pro-Agent-Task-Abschlussbenachrichtigungen: Agenten können nun eine Zusammenfassungskarte an den Org-Channel (derzeit Feishu) pushen, wenn eine lang laufende ReAct oder DAG-Task beendet ist. Konfigurierbar pro Agent in Settings → Agent → Notifications. Erster Consumer des generischen Outbound-Benachrichtigungsmusters.
  • Konfigurierbares Bestätigungsgate — inline oder Channel: Jeder Agent hat nun einen “Approval”-Bereich in Settings mit drei Routing-Modi (Auto / Nur Inline / Nur Channel), einem Approver-Scope-Selektor (Initiator / Agent-Besitzer / Jeder in der Org), einem “Bestätigung für jeden Tool-Aufruf erforderlich”-Override und einem expliziten Approval-Channel-Picker. Der Auto-Modus verwendet einen verknüpften Channel, falls vorhanden, und fällt elegant auf eine Inline-Bestätigungskarte im Chat-Stream zurück — sodass Agenten ohne Channel immer noch eine echte Approval-UX erhalten, anstatt stillschweigend zu fehlschlagen. Ein neuer POST /api/confirmations/{id}/respond-Endpunkt teilt einen einzelnen Decision-Recording-Pfad mit dem Feishu-Webhook, sodass jede Genehmigung — ob in Chat oder in einer Feishu-Gruppe angeklickt — dieselben approver_user_id und decided_at Audit-Felder setzt.

Geändert

  • Die Lade-Indikatoren im Playground verwenden jetzt einen subtilen Text-Shimmer-Effekt statt der unrealistisch aussehenden Fortschrittsleiste, die sich nach 8 Sekunden bei einer Pseudo-Vollbreite einfriert. Die beiden bestehenden Shimmer-Implementierungen (.shiny-text und .text-shimmer) wurden in ein einzelnes Design-System-Primitive mit optionalem Warm-Preset vereinheitlicht.
  • Connector-Karten zeigen jetzt ein “Private default”-Badge (mit Tooltip) an, wenn ein Connector allow_fallback deaktiviert hat, damit Besitzer auf einen Blick erkennen können, welche Connectoren erfordern, dass jeder Benutzer seine eigenen Anmeldedaten mitbringt. Der Hilfetext unter dem Allow-Fallback-Toggle im Connector-Einstellungsformular verdeutlicht auch, dass das Flag nur die Freigabe für andere Benutzer steuert — der Besitzer kann immer sein eigenes Standard-Credential verwenden, unabhängig davon.

Behoben

  • Connector-Aufrufe, die vom Besitzer eines Connectors mit allow_fallback=false und nur einer Standard-Anmeldedaten (keine Benutzer-spezifischen Anmeldedaten) durchgeführt werden, führen nicht mehr zu 401 mit “Requires authentication”. Der Besitzer ist jetzt von der Fallback-Gate ausgenommen — dieses Flag steuert nur, ob andere Benutzer die Standard-Anmeldedaten des Besitzers verwenden dürfen. Zuvor sendeten die eigenen Agenten des Besitzers stillschweigend unauthentifizierte Anfragen, und das gleiche Problem betraf auch Workflow-connector_action-Knoten.
  • Der Gesprächsexport zeigt jetzt das korrekte Modus-Label (“Planner” / “规划”) für automatisch geroutete DAG-Gespräche an, anstatt immer “Standard” anzuzeigen.
  • Export-Zeitstempel respektieren jetzt die konfigurierte Zeitzone des Benutzers, anstatt rohe UTC anzuzeigen.
  • Hochgeladener Dateiinhalt leckt nicht mehr in exportierte Gespräche; nur der Nachrichtentext des Benutzers ist enthalten.
  • Parallele Tool-Aufrufe kollidieren nicht mehr, wenn ein Provider index=0 für jeden gestreamten Tool-Call-Delta wiederverwendet; der Aggregator erkennt jetzt Grenzen über ID- oder Namensänderung und ordnet nachfolgende Deltas dem korrekten Slot zu.
  • Einstellungen → Kanäle spiegelt jetzt die Organisationsrolle des aktuellen Benutzers wider: Mitglieder (Nicht-Admin/Besitzer) sehen eine deaktivierte Schaltfläche “Neuer Kanal”, verborgene Aktionen zum Bearbeiten / Aktivieren-Deaktivieren / Löschen, ein schreibgeschütztes Banner und einen berechtigungsabhängigen leeren Zustand — anstelle eines aktivierten CTA, das bei der Übermittlung mit “Organization admin access required” fehlgeschlagen ist.
  • Die Sitzungsablauf-Umleitung behält jetzt die Abfragezeichenfolge bei, sodass Benutzer nach der erneuten Authentifizierung auf die genaue Registerkarte / den Filter landen, die sie angesehen haben, anstatt auf den bloßen Pfad.
  • Das Feishu-Kanalformular zeigt nicht mehr eine falsche Aufforderung zum “Verwerfen ungespeicherter Änderungen” an, wenn mit der Chat-Auswahl interagiert wird, die über dem Dialog überlagert ist.
  • Feishu-Kanal-Setup-Hinweise duplizieren nicht mehr chinesische Labels, wenn die Benutzeroberfläche selbst bereits auf Chinesisch ist (z. B. zuvor gerendert als “事件与回调 (事件与回调)”).
  • “Annotate All” im Schema-Manager gibt nicht mehr 500 Internal Server Error zurück — der Full-Annotate-Backend-Pfad hatte einen Fehler mit ungebundener Variable, der jeden Aufruf blockierte.
  • Das Bearbeiten eines Datenbank-Connectors zeigt jetzt den ********-Platzhalter im Passwortfeld anstelle von maskiertem Text mit drei Punkten, was deutlich macht, dass das Feld leer lassen das gespeicherte Passwort beibehält.
  • Das Aktualisieren einer Connector-Aktion bricht das Detailpanel nicht mehr zusammen — die bearbeitete Aktion bleibt ausgewählt, sodass Benutzer weiterhin daran arbeiten können.
  • Der KI-Connector-Editor unterscheidet jetzt zwischen Erfolg, teilweisem Fehler und vollständigem Fehler, anstatt für alle drei die gleiche “completed”-Meldung anzuzeigen. Fehlerursachen werden inline angezeigt, sodass Benutzer sehen können, was tatsächlich schief gelaufen ist.
  • Der KI-Connector-Editor kann nicht mehr stillschweigend mehrere Aktionen auf einmal löschen. Massenlöschung (>2 Aktionen) erfordert jetzt ein explizites destruktives Schlüsselwort in der Anweisung des Benutzers (“rebuild”, “全部重建”, “wipe” usw.); andernfalls wird die Operation mit einer klaren Fehlermeldung abgelehnt, um requires_confirmation / JMESPath-Einstellungen vor versehentlichem Verlust zu schützen.
  • Bestätigungskarten im Portal-Chat zeigen jetzt an, ob die Anfrage an einen Kanal (z. B. Feishu) weitergeleitet oder inline bearbeitet wurde, zusammen mit einem benutzerfreundlichen Hinweis darauf, wer genehmigen darf (der Initiator, der Agent-Besitzer oder ein beliebiges Organisationsmitglied). Kanal-geroutete Anfragen erzeugen auch eine inline ausstehende Karte, sodass der Benutzer nicht im Unklaren darüber bleibt, ob eine Benachrichtigung tatsächlich gesendet wurde.
  • Feishu-Genehmigungskarten werden nach der ersten Entscheidung schreibgeschützt: Der /callback-Webhook gibt eine Ersatzkarte zurück, bei der die Schaltflächen Genehmigen/Ablehnen entfernt sind und die Kopfzeile grün (genehmigt) oder rot (abgelehnt) gefärbt ist, was wiederholte Klicks verhindert. Doppelte Klicks, die noch von veralteten Feishu-Clients ankommen, erhalten einen “This request was already approved/rejected.”-Toast und eine frische Kopie der entschiedenen Karte, sodass die veraltete Ansicht aufgeholt wird.
  • Die einfache Aktion “Send Test Message” auf Kanalzeilen und dem Detailblatt wurde wiederhergestellt. Der Approval Playground führt die vollständige Hook-Rundreise durch, aber ein Benachrichtigungskanal (kein Genehmigungshook verdrahtet) benötigt immer noch eine schnelle Anmeldedaten-/Konnektivitätsprüfung, die der einfache Test-Send abdeckt.
  • Gleichzeitige Klicks auf die gleiche Feishu-Genehmigungskarte können nicht mehr beide erfolgreich sein. Der /callback-Handler flippt jetzt den ConfirmationRequest-Status über ein bedingtes UPDATE ... WHERE status='pending' und verwendet die betroffene Zeilenanzahl, um zu entscheiden, welcher Aufrufer “gewonnen” hat; zuvor konnten zwei parallele Anfragen beide pending lesen und einen Schreibvorgang durchführen, was möglicherweise zu genehmigt-dann-abgelehnt in der gleichen Zeile führte.
  • Ausstehende Genehmigungsanfragen verfallen jetzt automatisch nach CHANNEL_CONFIRMATION_TTL_MINUTES (Standard 24h) über einen Hintergrund-Sweeper. Verhindert, dass ein veralteter Klick Tage später den Agent-Status flippt, der bereits abgerissen wurde; der nächste Klick auf eine abgelaufene Karte erhält eine graue “Expired”-entschiedene Karte und einen “no longer active”-Toast.
  • Send Test Message liefert jetzt eine einfache Textbenachrichtigung (keine Schaltflächen zum Genehmigen/Ablehnen) und befindet sich nur im Kanal-Detailblatt — nicht im Zeilendropdown. Benutzer, die nicht beabsichtigen, Genehmigungshooks zu verwenden, werden nicht durch interaktive Schaltflächen auf einer “Test”-Nachricht verwirrt. Das Testen der Genehmigungsrundreise bleibt über die Schaltfläche Approval Playground verfügbar.
  • Kanal-Detailblatt gestrafft: “How to finish setup” ist jetzt ein ausklappbarer Abschnitt, der standardmäßig eingeklappt ist (sodass er das Blatt für bereits konfigurierte Kanäle nicht dominiert), und der äußere Abstand wurde reduziert, sodass der Inhalt näher an der Blattecke sitzt.
  • Builder KI meldet maskierte (****) Anmeldedaten nicht mehr als fehlend — es erkennt sie jetzt als konfiguriert und überspringt falsche “credential missing”-Anleitungen.
  • Die Playground-Agent-Liste zeigt jetzt alle zugänglichen Agenten anstelle von nur veröffentlichten, sodass Entwurfs-Agenten getestet werden können, ohne sie zuerst zu veröffentlichen.
  • Chat-Bild-Uploads stürzen den Stream nicht mehr bei fehlerhaften data:-URLs ab — der MIME-Extractor fällt jetzt sicher auf application/octet-stream zurück, anstatt einen IndexError während der Generierung auszulösen.
  • Playground-Bild-Miniaturen brechen jetzt in-flight-Abrufe bei Unmount über AbortController ab, um veraltete Blob-URL-Zuweisungen und verschwendete Bandbreite während schneller Navigation zu vermeiden.

[v0.8.4] - 2026-04-17

Hinzugefügt

  • Conversation-Wiederherstellung: Synthetische tool_result-Zeilen bleiben nun nach einem unterbrochenen Turn bestehen; Clients können einen getrennten SSE-Stream über POST /chat/resume mit dem zuletzt gesehenen Cursor fortsetzen.
  • Playground stellt nun automatisch unterbrochene SSE-Streams mithilfe des /chat/resume-Endpunkts mit exponentiellem Backoff (max. 3 Versuche) wieder her; zeigt während der Wiederherstellung einen “Reconnecting…”-Indikator an.
  • Prompt-Cache-Observabilität: cache_read_input_tokens und cache_creation_input_tokens werden aus LLM-Responses erfasst, pro Turn in TurnProfiler aggregiert, als turn_cache-Zusammenfassungszeile (read/create tokens + geschätzte Einsparungen) protokolliert und in der Chat-done_payload unter einem neuen cache-Feld bereitgestellt. Ermöglicht die Überprüfung, dass Anthropic-Prompt-Caching tatsächlich trifft, und dient gleichzeitig als Detektor dafür, ob API-Relaisstationen den Cache-Rabatt berücksichtigen.

Geändert

  • System-Prompts verwenden nun eine memoized Section Registry mit Anthropic Prompt-Caching Breakpoints auf dem stabilen Präfix — reduziert die Token-Kosten pro Turn um ~60-80% auf dem gecachten Präfix für Claude-Modelle. ReAct JSON-Modus, nativer Function-Calling-Modus und Synthese geben zwei System-Nachrichten für Cache-fähige Provider (Claude, Bedrock Anthropic, Vertex Claude) aus und fallen auf eine einzelne verkettete Nachricht für alle anderen Provider zurück.

Behoben

  • Thinking/Reasoning-Token bleiben jetzt über mehrteilige Gespräche hinweg erhalten — Das Anthropic-Feld signature wird erfasst und gemäß API-Anforderungen pro Austausch wiedergegeben.
  • Provider-bewusste Reasoning-Wiedergabepolitik: reasoning_content (von DeepSeek-R1, Qwen QwQ, Gemini Thinking, OpenAI o-Serie) wird nicht mehr an Nicht-Anthropic-Provider bei nachfolgenden Durchläufen wiedergegeben. Zuvor wurde das Feld bedingungslos in ChatMessage.to_openai_dict() serialisiert, was gegen Provider-Dokumentation verstieß (DeepSeek und Qwen dokumentieren beide explizit „senden Sie reasoning_content nicht in der Nachrichtenhistorie zurück”) und stillschweigend ihre automatischen Präfixe / KV-Caches bei jedem mehrteiligen Austausch ungültig machte. Die Richtlinie ist zentralisiert in core/prompt/reasoning.py — Claude-Familie (einschließlich Bedrock- und Vertex-Proxys) gibt weiterhin Thinking-Blöcke mit Signatur wie erforderlich wieder.

[v0.8.3] - 2026-04-16

Hinzugefügt

  • convert_to_markdown Built-in Tool — Neues universelles Agent-Tool, das beliebige Dateien, URLs, YouTube-Links oder Data URIs in sauberes Markdown mithilfe von Microsofts MarkItDown konvertiert. Unterstützt PDF, Word (.docx), Excel (.xlsx/.xls), PowerPoint (.pptx), HTML, JSON, CSV, XML, ZIP, EPUB, Outlook .msg, Bilder, Audio (Sprache → Text) und YouTube-Transkripte. Standardmäßig für jeden Agent verfügbar — auf der gleichen Ebene wie web_fetch. Wenn ein Vision-fähiges LLM konfiguriert ist, werden eingebettete Bilder und gescannte PDF-Seiten automatisch über das offizielle markitdown-ocr-Plugin OCR’d. Diese Funktionalität war zuvor in der Hintergrund-RAG-Ingestion verborgen; Agenten haben sie jetzt im interaktiven Konversationspfad.
  • Dokument-OCR über markitdown-ocr — Eingebettete Bilder in DOCX / XLSX / PPTX und gescannte PDF-Seiten werden nun mit dem gleichen Vision-fähigen LLM OCR’d, das der Rest von FIM One durchleitet. Gilt sowohl für das Built-in convert_to_markdown-Tool als auch für die RAG-Ingestion-Pipeline, sodass Chat-Zeit-Konvertierung und Knowledge-Base-Ingestion byte-identisches Markdown für die gleiche Eingabe erzeugen.
  • Universelle Vision-Provider-Unterstützung für Dokument-OCR — Ein neuer LiteLLMOpenAIShim Duck-Type umhüllt jedes FIM One OpenAICompatibleLLM in der openai SDK’s .chat.completions.create(...)-API-Form und leitet dann durch litellm.completion() weiter. MarkItDown (das die openai SDK-Oberfläche hart codiert) kann nun Anthropic Claude, Google Gemini, Azure, Bedrock und jeden anderen von LiteLLM unterstützten Provider konsumieren — ohne Pro-Provider-Adapter-Code in FIM One.
  • Vision-bewusste RAG-Ingestion — Knowledge-Base-Uploads von Office-Dokumenten und gescannten PDFs lösen nun das Standard-Vision-LLM des Workspace auf (DB-first, ENV-Fallback) und leiten es an MarkItDown für OCR während der Ingestion weiter. Null-Regression: Wenn kein Vision-fähiges Modell verfügbar ist, fällt die Ingestion stillschweigend in den reinen Text-Modus zurück — genau das Verhalten vor der Funktion.
  • Erweiterte MarkItDown-Format-Abdeckung — RAG ingiert nun nativ .pdf, .msg (Outlook), .epub, .mp3, .wav und .m4a über MarkItDowns Audio-Transkriptions- und Outlook-Extras. YouTube-URLs fließen über convert_to_markdown über markitdown[youtube-transcription].
  • LLM_SUPPORTS_VISION Umgebungsvariable — Optionales Opt-out (=false) für den ENV-Modus Dokument-OCR-Fallback. Standardverhalten ist optimistisch (true), das die gängigen ENV-Setups abdeckt (gpt-4o, claude-3-5-sonnet, gemini-1.5-pro/flash). Setzen Sie auf false nur, wenn Ihr ENV-konfiguriertes LLM_MODEL Vision nicht unterstützt (z.B. deepseek-v3, qwen-chat, llama-3.1, gpt-3.5-turbo, o1-mini), um einen fehlgeschlagenen Vision-Aufruf bei jedem Dokument-Upload zu überspringen. Wird vollständig ignoriert, wenn eine von Admin kuratierte ModelGroup aktiv ist — DB-Modus ist immer die Quelle der Wahrheit, wenn verfügbar.
  • Turn-level Profiler — Jeder ReAct-Turn protokolliert nun Phasen-Level-Timings (memory_load, compact, tool_schema_build, llm_first_token, llm_total, tool_exec) in einer einzelnen strukturierten Log-Zeile pro Turn. Umschaltbar über REACT_TURN_PROFILE_ENABLED (Standard: an; setzen Sie auf false für Zero-Overhead No-op).
  • Strukturierte Compact Work Card — Konversations-Kompaktierung parst nun ihre eigene 9-Abschnitt-Markdown-Ausgabe in eine typisierte WorkCard und führt neue Kompaktierungen in die vorherige ein, sodass Fehler und ausstehende Aufgaben aus früheren Teilen einer langen Sitzung über mehrere Kompaktierungsrunden hinweg erhalten bleiben, anstatt von Grund auf neu zusammengefasst zu werden.

Geändert

  • Benutzerbasierte Ratenbegrenzung — Der LLM-Layer-Ratenbegrenzer verwaltet jetzt einen separaten Bucket pro Benutzer statt eines einzelnen prozessglobalen Buckets. Verhindert, dass ein störender Benutzer alle anderen Benutzer auf demselben Worker drosselt. Umschaltbar über LLM_RATE_LIMIT_PER_USER (Standard: aktiviert).

Behoben

  • Dangling tool_use recovery — Conversations interrupted mid-tool-execution (user Stop, SSE disconnect, crash) previously left an assistant message with a tool_use block and no matching tool_result, causing the next turn to crash with an opaque HTTP 400 from the LLM API. DbMemory.get_messages() now detects and repairs these dangling blocks on the read path with a synthetic [interrupted] tool_result. Raw DB log is not mutated.
  • Empty-content assistant messages with tool_calls no longer dropped — The DbMemory load-path filter previously silently discarded any assistant row with empty text content. Native function-calling intermediates (which carry only tool_calls, no text) were being wiped out. The filter now requires BOTH empty content AND no tool_calls.

[v0.8.2] - 2026-04-10

Hinzugefügt

  • Intelligente Dokumentverarbeitung (Vision-fähig) — Adaptive Dokumentbehandlung basierend auf Modellfähigkeiten. Wenn das Ziel-LLM Vision unterstützt (GPT-4o, Claude 3/4, Gemini), werden PDF-Seiten als Bilder gerendert und über Vision-Content-Blöcke für vollständige visuelle Treue gesendet. Nur-Text-Modelle greifen auf pdfplumber-Textextraktion zurück. Zwei Modi: Vision und Nur-Text. Konfigurierbar über DOCUMENT_PROCESSING_MODE, DOCUMENT_VISION_DPI, DOCUMENT_VISION_MAX_PAGES Umgebungsvariablen. Pro-Modell supports_vision Umschalter in Admin.
  • Document-Vision-Pipeline — DOCX-, PPTX- und PDF-Dateien, die im Chat hochgeladen werden, haben ihre eingebetteten Bilder extrahiert und werden als Vision-Content an das LLM gesendet, wenn Vision auf dem Modell aktiviert ist.
  • Multi-Turn-Vision-Persistenz — Vision-Content aus hochgeladenen Dokumenten und Bildern bleibt über Gesprächsrunden hinweg erhalten, sodass das Modell den visuellen Kontext während des gesamten Gesprächs behält.
  • Intelligente PDF-Verarbeitung — Textreiche PDF-Seiten extrahieren Text plus eingebettete Bilder separat (Token sparen). Gescannte oder reine Bildseiten werden als vollständige PNG-Seite für maximale Treue gerendert.
  • Vorgefertigtes Sandbox-ImageDockerfile.sandbox mit gängigen Data-Science-Paketen (pdfplumber, Pillow, pandas, etc.), sodass die KI-Code-Ausführung in --network=none Containern sofort funktioniert.
  • Resource-Fork-Vervollständigung — Alle fünf Ressourcentypen unterstützen jetzt Fork: Agent, Connector, Workflow, MCP Server und Skill. KB-Fork entfernt (inhärent benutzerlokal).

Geändert

  • Schnellere Chat-Antwort-Fertigstellung — SSE-Stream schließt sich sofort nach Abschluss des Agenten; Titelerzeugung und Folgeverbesserungsvorschläge laufen im Hintergrund statt die Antwort zu blockieren.
  • Intelligentere Kontext-Komprimierung — Konversationskomprimierung verwendet ein strukturiertes 9-Abschnitt-Format, das Schlüsselinformationen (ursprüngliche Anfrage, Fehler, ausstehende Aufgaben) über lange Sitzungen hinweg besser bewahrt.
  • Reduzierte Agent-Schleifen — Anti-Loop-Anweisungen zu Agent-Prompts hinzugefügt; Zyklenerkennung-Schwellenwert gesenkt, sodass wiederholte identische Tool-Aufrufe früher erkannt werden.
  • Schnellerer Request-Start — LLM-Konfigurationssuchen und Domain-Klassifizierung laufen jetzt gleichzeitig ab und reduzieren den Pro-Request-Overhead um 400-1100ms.
  • Bessere Handhabung leerer Tools — Tools, die keine Ausgabe zurückgeben, erzeugen jetzt eine aussagekräftige Meldung statt bloßem „(keine Ausgabe)”, was unnötige Wiederholungen verhindert.
  • Automatische Bereinigung alter Tool-Ergebnisse — Tool-Ergebnisse älter als die 6 neuesten werden automatisch vor der Kontext-Komprimierung gelöscht, um Konversationen schlank zu halten.
  • Tool-Ergebnis-Aggregat-Budget — Gesamte Tool-Ergebnis-Token sind auf 40K pro Sitzung begrenzt; neue Ergebnisse werden gekürzt, wenn das Budget überschritten wird, um Kontext-Überfluss durch große API-Antworten zu verhindern.
  • Kontext-Überfluss-Automatische-Wiederherstellung — Wenn das LLM eine Anfrage aufgrund von Kontext-Längenspeicherung ablehnt, komprimiert der Agent automatisch auf 50% und versucht es erneut, statt die gesamte Konversation zum Absturz zu bringen.
  • Schlüsselwort-basierte Tool-Auswahl — Wenn eine Abfrage offensichtlich einem bestimmten Tool nach Name oder Beschreibungs-Schlüsselwörtern entspricht, überspringt der Agent den LLM-basierten Tool-Auswahlaufruf und spart 200-500ms.
  • LLM-Verbindungs-Pooling — Alle LLM-API-Aufrufe teilen sich jetzt einen einzigen Verbindungs-Pool mit optimierten Keepalive-Einstellungen, was den Verbindungs-Overhead über die gesamte Sitzung hinweg reduziert.
  • Intelligentere Fertigstellungsprüfung — Der Verifizierungsschritt nach der Antwort wird für lange detaillierte Antworten (>200 Token) übersprungen, um eine unnötige LLM-Runde zu vermeiden.
  • Modell-Fallback bei Provider-Ausfall — Wenn das primäre Modell nicht verfügbar ist (Rate-Limited, überlastet oder ausgefallen), versucht der Agent automatisch mit dem schnellen Modell erneut, statt zu fehlschlagen.

Behoben

  • Agent-Halluzinationen bei unlesbaren Dateien — Wenn der KI-Agent eine Datei nicht lesen konnte (z. B. bildbasiertes PDF), las er zuvor andere nicht verwandte Dateien und präsentierte deren Inhalt als Inhalt der Zieldatei. Eine Dateiintegritäts-Schutzmaßnahme in der System-Eingabeaufforderung verhindert dies nun.
  • Datei-ID-Injection für Uploads — Hochgeladene Dateien enthalten nun ihre UUID file_id im Nachrichtenkontext, sodass der Agent direkt über read_uploaded_file auf sie zugreifen kann, ohne zu raten.
  • Vision-Toggle-Lesevorgänge aus neuer Modellstruktur — Das Flag supports_vision in Modellkonfigurationen wurde nicht korrekt aus der ModelGroup/ModelProviderModel-ORM-Struktur gelesen. Behoben.
  • Verbesserte Fehlermeldungen für unlesbaren Dateien — Wenn Dateien nicht gelesen werden können, gibt das Tool nun spezifische Anleitung (Dateityp, Vision-Vorschlag) statt generischer Fehler zurück.

[v0.8.1] - 2026-03-29

Hinzugefügt

  • Zeitzonenbewusste Admin-Benachrichtigungen — Admin-Benachrichtigungs-E-Mails zeigen jetzt Ereigniszeiten in der konfigurierten Zeitzone jedes Empfängers an, anstatt immer UTC anzuzeigen.
  • Progressive Datenbankwerkzeug-Offenlegung — Ein einzelnes database Meta-Werkzeug mit list_tables/discover/query Unterbefehlen ersetzt einzelne Pro-Tabellen-Werkzeuge. Konfigurierbar über DATABASE_TOOL_MODE Umgebungsvariable (progressive Standard, legacy Fallback).
  • On-Demand-Werkzeugladen — Wenn mehr als 12 Werkzeuge verfügbar sind, ermöglicht ein request_tools Meta-Werkzeug dem Agenten, zusätzliche Werkzeuge dynamisch während des Gesprächs zu laden, anstatt auf die anfängliche Auswahl beschränkt zu sein.
  • Progressive MCP-Werkzeug-Offenlegung — Ein einzelnes mcp Meta-Werkzeug mit discover/call Unterbefehlen ersetzt einzelne Pro-Server-Werkzeuge. Konfigurierbar über MCP_TOOL_MODE Umgebungsvariable (progressive Standard, legacy Fallback).
  • Pro-Turn Token-Budget-SchutzschalterREACT_MAX_TURN_TOKENS Umgebungsvariable bietet einen Notausschalter für unkontrollierte Agentenschleifen. Standard 0 (unbegrenzt) — verwenden Sie stattdessen token_quota pro Benutzer für tägliche Kostenkontrolle.
  • Pro-Modell Native Function Calling-Umschaltertool_choice_enabled Einstellung (ENV + Admin pro Modell) ermöglicht Modellen, die erzwungene Werkzeugauswahl ablehnen, Level 1 zu überspringen und direkt zum JSON-Modus zu gehen. Konfigurierbar unter Einstellungen → Modelle → Erweitert.
  • DAG-Qualitätsüberholung — Fünf Verbesserungen: Standard-Modell-Upgrade auf allgemeines Modell für Nicht-Fast-Schritte; automatische Skill-Erkennung in der Planung; Zitierverifizierer für rechtliche/medizinische/finanzielle Bereiche; strukturierte Inhaltskontext-Beibehaltung mit konfigurierbarem Kürzungsmultiplikator; Domain-Klassifizierung im Router mit Domain-bewusster Modellauswahl.
  • Domain-Modell-Eskalation in ReAct — Spezialisierte Domains (rechtlich/medizinisch/finanziell) eskalieren automatisch zum Reasoning-Modell mit obligatorischer Websuche und Zitierverifikation.
  • Dateianhang-Download — Dateikarten in Chat-Nachrichten können jetzt angeklickt werden, um die ursprüngliche Datei herunterzuladen.
  • Admin-Benachrichtigungs-Hauptschalter — Globaler Ein-/Ausschalter für Admin-E-Mail-Benachrichtigungen mit SMTP-Laufzeiterkennung. Zeigt ein Warnbanner an, wenn SMTP nicht konfiguriert ist, und deaktiviert alle Benachrichtigungssteuerelemente.
  • SMTP Reply-To-Header — Neue SMTP_REPLY_TO Umgebungsvariable ermöglicht Antworten an eine andere Adresse als den Absender.
  • Resource Fork Phase 1 (MCP Server + Skill)POST /api/mcp-servers/{id}/fork und POST /api/skills/{id}/fork Endpunkte erstellen benutzergesteuerte tiefe Kopien mit visibility=personal und forked_from Abstammungsverfolgung. Verschlüsselte Umgebungsvariablen/Header werden beim MCP Server Fork übersprungen; Veröffentlichungsstatus wird beim Skill Fork übersprungen. Alembic-Migration fügt forked_from Spalte zu beiden Tabellen hinzu. 41 Tests.
  • Workflow-Verbindungs-Dep Auto-SubscribeDependencyAnalyzer._resolve_workflow löst jetzt rekursiv Sub-Workflow-Abhängigkeiten mit Zyklenerkennung (besuchter Satz) auf. Agent- und Sub-Workflow-Knoten werden korrekt als Inhalts-Deps in Abhängigkeitsmanifesten hinzugefügt. Fehlende Ressourcen werden elegant behandelt (Warnung protokollieren, kein Fehler). 19 Tests.
  • Vorgefertigte Lösungsvorlagen (Market Seed Content) — 8 vertikale Lösungsvorlagen werden idempotent bei der Registrierung des ersten Benutzers gebootet: Financial Audit, Contract Review, Data Reporting, IT Helpdesk, HR Onboarding, Sales Assistant, Content Writer, Meeting Summary. Jede bündelt einen Agenten + Skill mit chinesischen SOPs. Veröffentlicht auf Market-Organisation (visibility=org, publish_status=approved) für sofortige Marketplace-Verfügbarkeit. 4 Tests.
  • ReAct-Zyklenerkennung — Deterministische Erkennung wiederholter identischer Werkzeugaufrufe. Injiziert eine Warnung nach 3 aufeinanderfolgenden Aufrufen mit denselben Argumenten, um zu verhindern, dass Agenten bei fehlgeschlagenen Werkzeugen in Schleifen geraten. Konfigurierbar über REACT_CYCLE_DETECTION_THRESHOLD.
  • ReAct-Abschluss-Checkliste — Einmalige Verifizierungsaufforderung vor Akzeptanz endgültiger Antworten, wenn Werkzeuge verwendet wurden, um vorzeitige oder unvollständige Antworten zu reduzieren. Umschaltbar pro Agenten-Instanz.

Geändert

  • Completion-Checklisten-Mindestanzahl für Tools — Die Checkliste wird jetzt nur ausgelöst, wenn der Agent 3+ Tool-Aufrufe getätigt hat (konfigurierbar über REACT_COMPLETION_CHECK_MIN_TOOLS). Einfache 1-2-Tool-Aufgaben überspringen die Verifizierung, um unnötige Latenz zu vermeiden.
  • Dynamische System-Prompt-Budgetierung — Die feste SYSTEM_PROMPT_RESERVE (4K Token) wurde aus der Kontextbudgetberechnung entfernt. ContextGuard berücksichtigt den System-Prompt jetzt dynamisch und gibt jeder Iteration ~4K mehr nutzbaren Kontext.
  • Zentralisierte Tool-Kürzung — Alle Tool-Typen delegieren die Kürzung jetzt an ein gemeinsames Modul. Standardwerte konfigurierbar über die Umgebungsvariablen TOOL_OUTPUT_MAX_CHARS, TOOL_OUTPUT_MAX_ITEMS, TOOL_OUTPUT_MAX_BYTES.
  • Domain-Erkennung entkoppelt — Die Domain-Klassifizierung läuft unabhängig in jedem Endpunkt und ist nicht mehr mit dem automatischen Routing gebündelt. Domain-SOP-Anweisungen wurden abgeschwächt, um eher zu leiten als vorzuschreiben, ob eine Websuche durchgeführt werden soll.
  • AUTO_ROUTING Umgebungsvariable entfernt — Der automatische Endpunkt klassifiziert Abfragen immer.

Behoben

  • Doppelte Nachrichtenübermittlung — Die Chat-Eingabe verwendet jetzt eine synchrone Schutzvorrichtung, um zu verhindern, dass dieselbe Nachricht bei schnellen Klicks mehrmals eingereicht wird.
  • Strukturierte Ausgabe-Degradationskette — Das 3-stufige Fallback (native FC → JSON mode → Klartext) fällt jetzt ordnungsgemäß durch alle Ebenen.
  • json_mode_enabled DB-Wert ignoriert — Modelle, die über Admin konfiguriert werden, verwenden jetzt korrekt ihre modellspezifische Einstellung, anstatt immer auf die Umgebungsvariable zurückzugreifen.
  • DAG-Planungsfehler-Meldung — Zeigt jetzt benutzerfreundliche zweisprachige Meldung statt rohem Pipeline-Fehler.
  • MCP-Server-Besitzer-Umgehung für allow_fallback — Der Server-Besitzer wird nicht mehr durch allow_fallback=False blockiert.

[v0.8] - 2026-03-20

Hinzugefügt

  • Marketplace-Redesign Phase 1 — Lösungen + Komponenten — Zwei-Ebenen-Marktmodell (Lösungen: Agent/Skill/Workflow; Komponenten: Connector/MCP Server) mit Bereichswähler (Global Market / org). KB aus Market-Bereich entfernt. Einheitliches Abonnementmodell.
  • Intelligente Dateiinhalt-Injektion + read_uploaded_file Tool — Kleine Uploads (<32K Zeichen) werden automatisch in LLM-Kontext eingefügt; große Dateien erhalten Metadaten + Tool-Hinweis. Dual-Mode-Lese-Tool mit Paginierung und Regex-Suche. GET /api/files/{file_id}/content Endpunkt.
  • Workflow Blueprint System — Visueller Workflow-Editor für mehrstufige Automatisierung: 25 Knotentypen (Start, End, LLM, ConditionBranch, QuestionClassifier, Agent, KnowledgeRetrieval, Connector, HTTPRequest, VariableAssign, TemplateTransform, CodeExecution, Iterator, Loop, VariableAggregator, ParameterExtractor, ListOperation, Transform, DocumentExtractor, QuestionUnderstanding, HumanIntervention, SubWorkflow, ENV + weitere), React Flow v12 Editor mit Drag-and-Drop-Palette, Auto-Layout, SSE-Echtzeit-Ausführung, Variableninterpolation, Bedingung/Klassifizierer-Verzweigung, Fehlerstrategien pro Knoten, Pro-Knoten-Timeout, Import/Export/Duplizieren, Versionsverlauf mit Diff-Viewer, 14 vordefinierte Templates, 306 Tests.
  • Workflow-Trigger — Cron-Planung mit Zeitzonenunterstützung; öffentliche API-Schlüssel (wf_ Präfix) für externe Ausführung ohne Benutzerauthentifizierung; Batch-Ausführung (bis zu 100 Eingabesätze, konfigurierbare Parallelität).
  • Workflow-Operationen — Echtzeit-Ausführungsprotokoll-Viewer, Trace-Viewer mit Variablen-Snapshots, Run-Replay-Overlay auf Canvas, Run-Verlauf-Export, Analytics-Dashboard mit täglichen Trends und Perzentilen, Pro-Knoten-Statistik-Panel, Favoriten/Anheften, Inline-Validierungs-Badges, Canvas-Knotensuche (Cmd+F), Tastaturkürzel, Snap-to-Grid.
  • Workflow Admin + Templates — Admin-Verwaltungsreiter für alle Workflows, WorkflowTemplate Modell mit Admin CRUD und 5 Seed-Templates, Veröffentlichungsfluss mit Org-Level-Review-Gating, Import-Konflikt-Resolver für externe Referenzen.
  • Agent Skill System — On-Demand-Skill-Laden: Skill Modell mit CRUD/Veröffentlichung/Review, read_skill(name) Tool für progressive Offenlegung (~80% Token-Reduktion), compact_instructions pro Agent für benutzerdefinierte ContextGuard-Komprimierung. Vollständige Skills-UI mit Listenseite, Editor und Agent-Skill-Wähler.
  • ConnectorMetaTool (Progressive Disclosure Phase 1-2) — Single Meta-Tool ersetzt Pro-Action-Tools. System-Prompt erhält leichte Stubs (~30 Token/Connector); Agent ruft discover/execute bei Bedarf auf. Feature Flag CONNECTOR_TOOL_MODE für Rückwärtskompatibilität.
  • Connector Import/Export/Fork — Connector-Templates via JSON-Export teilen, klonen und anpassen via Fork. Backend bereinigt Anmeldedaten beim Export.
  • Connector-Anmeldedaten-Verschlüsselung + Pro-Benutzer-Overrideconnector_credentials Tabelle mit Fernet-Verschlüsselung, allow_fallback Flag, GET/PUT/DELETE /my-credentials Endpunkte.
  • Publish Review UI — Org-Level-Review-System mit Genehmigung/Ablehnung-Workflow, Status-Badges auf Ressourcen-Karten, Review-Hinweis im Veröffentlichungs-Dialog, Erneute Einreichung für abgelehnte Ressourcen.
  • Semantische Schema-Annotationen — 16 vordefinierte semantische Tags für Connector-Felder mit description und pii Flags, in LLM-Tool-Beschreibungen angezeigt.
  • Agent Mid-Loop Self-Reflection — Goal-Check-Prompt wird alle 6 Iterationen in ReAct eingefügt, um Drift in langen Ketten zu verhindern.
  • Shadow Market org + Ressourcen-Abonnements — Pull-basierte Ressourcenfreigabe: Ressourcen werden über Marketplace erkannt und explizit abonniert. Market API für Browse/Abonnement/Abmeldung.
  • Agent Auto-Discovery + Sub-Agent Bindingdiscoverable Flag + sub_agent_ids Whitelist + CallAgentTool für einstufige Delegation.
  • MCP Server Anmeldedaten + Pro-Benutzer-Overridemcp_server_credentials Tabelle mit allow_fallback Flag für Anmeldedaten-Fallback-Verhalten.
  • Connector/KB Toggle — Suspend/Resume Endpunkte für beide Ressourcentypen.
  • Standalone KB Conversationskb_ids Feld auf Conversations für direkten KB-Chat ohne Agent-Binding.
  • Review Log Audit Tab — Admin-Audit-Seite mit System-Log / Review-Log Toggle und filterbarem Review-Trail pro Org/Ressource.
  • Agent Directive in Synthesisagent_directive Parameter stellt sicher, dass finale Antworten dem Kernzweck des Agenten entsprechen.

Geändert

  • Abonnementbasiertes Sichtbarkeitsmodell — Vereinfacht von 3-stufig zu 2-stufig (eigene → abonniert). Automatische Migration behält bestehenden Zugriff.
  • Werkzeug-Cache-Whitelist — Blacklist durch explizite cacheable-Eigenschaft auf Werkzeugen ersetzt. 11 schreibgeschützte Werkzeuge als cachebar markiert.
  • DAG-Executor-Kaskadenfehler — Fehlgeschlagene Schritte blockieren abhängige Schritte kaskadenartig mit transitiver Ausbreitung.
  • DAG-Planer-Verbesserungen — Werkzeugbeschreibungen im Planer, vollständiger Neuplanungsverlauf über alle Runden, 14 Engine-Konstanten als Umgebungsvariablen parametrisiert.
  • stream_answer-Beobachtungstrunkierung — Erhöht von 2000 auf 8000 Zeichen (konfigurierbar über REACT_TOOL_OBS_TRUNCATION).
  • Evidence-Konfidenz-UI — Bernsteinfarbene Warnkarten, [N]-Zitationsbadges mit Hover-Popups, Konfliktwarnbanner mit Seite-an-Seite-Vergleich.
  • Workflow-Versionsänderungszusammenfassungen — Automatisch generierte menschenlesbare Zusammenfassungen aus Blueprint-Diffs beim Versionsspeichern.
  • Workflow-Ausführungs-Aufbewahrungsbereinigung — Hintergrund-Bereinigungsaufgabe mit konfigurierbaren Alters-/Anzahllimits. Umgebungsvariablen: WORKFLOW_RUN_MAX_AGE_DAYS, WORKFLOW_RUN_MAX_PER_WORKFLOW.
  • Connector-Schutzschalter — Dreizustand-Maschine (geschlossen/offen/halb-offen) mit Pro-Connector-Fehler-Tracking und Überwachungsendpunkten.
  • elkjs durch leichtgewichtiges BFS-Auto-Layout ersetzt/workflows/[id]-Bundle von 473 kB auf 43 kB reduziert.

Behoben

  • Workflow-Eval-Namespace-Vereinfachung — Behobene Auflösung von Kurzvariablennamen in ConditionBranch und VariableAssign.
  • Keine erneute Überprüfung bei is_active-Umschaltung — Das Umschalten von is_active setzt publish_status nicht mehr von approved auf pending_review zurück.
  • Cascade-Skip für Bedingungszweige — Übersprungene Knoten deaktivieren ausgehende Kanten korrekt.
  • Abhängigkeitsanalysator — Behobene skill_ids-Auflösung, Groß-/Kleinschreibung-unabhängige Knotentypabstimmung.

Entfernt

  • Feld is_global und alle globalen Sichtbarkeitskonzepte entfernt — ersetzt durch Market-Org + Abonnements.
  • Globale Admin-Endpunkte für Agent/MCP-Server entfernt.

[v0.7.5] - 2026-03-12

Hinzugefügt

  • Kostenloser Modellwechsel — Wechsel zwischen Auto/React/DAG während des Gesprächs. Verfolgung des Modus pro Durchgang über metadata.mode.
  • Drei Modellrollen — Unabhängige Umgebungskonfiguration für General-, Fast- und Reasoning-Ebenen. Das Fast-Modell erbt nicht mehr die Einstellungen des Hauptmodells.
  • DAG-Engine-VerbesserungenStepOutput strukturierte Daten, Tool-Cache mit asynchronem Lock-Stampede-Prävention, LLM-Verifizierung pro Schritt mit Wiederholung (DAG_STEP_VERIFICATION), automatisches Routing über schnelle LLM-Klassifizierung (AUTO_ROUTING).
  • Verschlüsselung von Connector-Anmeldedaten — Auth-Token extrahiert in die Tabelle connector_credentials mit Fernet-Verschlüsselung über CREDENTIAL_ENCRYPTION_KEY. Endpunkte zur Außerkraftsetzung von Anmeldedaten pro Benutzer. Flag allow_fallback.
  • ModelConfig API-Schlüsselverschlüsselung im Ruhezustand — Transparente Verschlüsselung beim Schreiben / Entschlüsselung beim Lesen mit abwärtskompatiblem Klartexterkennung.

Geändert

  • Skeleton-Bildschirme — Alle Listen-/Gitter-Seiten zeigen während des Ladens layoutbewusste Skelette statt Spinner an.

Behoben

  • Schnelles Modell erbt keine Einstellungen mehr vom Hauptmodell.
  • SSE-Routing-Ereignisfeldnamen mit Backend abgestimmt.

[v0.7.4] - 2026-03-12

Hinzugefügt

  • Evaluation Center — Testdatensatz-Verwaltung, parallele Eval-Läufe mit LLM-Bewertung, Viewer für Ergebnisse pro Fall mit Pass/Fail/Latenz/Token und Auto-Polling.
  • Admin: json_mode_enabled Pro-Modell-Flag — Expliziter Toggle zur Vermeidung von AWS Bedrock Prefill-Problemen. ENV-Modelle werden durch LLM_JSON_MODE_ENABLED gesteuert.
  • SSE Protocol v2 — Echtzeit-Streaming mit delta_reasoning, usage Feldern, aufgeteilte done/suggestions/title/end Events.
  • AI Builder Erweiterung — 7 neue Builder-Tools, is_builder Flag, Builder-Prompt Auto-Refresh, SSRF-Guard. Vollständiger ReAct-Agent-Dialog für Connector-Verwaltung.
  • Duale Datenbankunterstützung — SQLite (Zero-Config) + PostgreSQL (Produktion). Docker Compose stellt PG automatisch mit Health Checks bereit.
  • Extended Thinking / ReasoningLLM_REASONING_EFFORT und LLM_REASONING_BUDGET_TOKENS für OpenAI o-Serie, Gemini 2.5+, Claude.
  • Admin: Tool-Deaktivierung — Pro-Tool Enable/Disable-Toggles; deaktivierte Tools werden zur Laufzeit aus dem Chat gefiltert.
  • Einstellungen: Organisationen-Tab — Erstellen, Beitreten und Verwalten von Organisationen mit Mitgliedsrollen direkt aus den Einstellungen.
  • Docker Compose Deployment — Einzelnes Image, benannte Volumes, eigenständige Next.js-Ausgabe.
  • Export: PDF-Format — Konversationen als PDF-Dokumente exportierbar.
  • Multi-Worker-UnterstützungWORKERS=N Umgebungsvariable; Redis Interrupt Broker für Worker-übergreifendes Relay.

Geändert

  • LLM-Schicht: LiteLLM — Direkter AsyncOpenAI-Client durch universelle Anbieterunterstützung ersetzt.
  • Strukturierte Ausgabe-Degradation — Einheitliches structured_llm_call() mit 3-stufiger Extraktion (Native FC → JSON Mode → Klartext + Regex).
  • Intelligentes Relay-Routing — Erkennt API-Protokoll automatisch anhand von URL-Pfadmustern für Relay-Plattformen von Drittanbietern.

Behoben

  • Docker-Sandbox (DooD) Volume-Mount-Pfad-Übersetzung.
  • Sicherheit: Sandbox-AST-Dunder-Validierung, MCP-Stdio-Standardwerte, SSRF-DNS-Rebinding, Shell-Metazeichen-Umgehung, Connector-Template-Injection.
  • Admin-Dashboard-Statistiken-Absturz auf PostgreSQL.
  • Docker: i18n-Dateiermittlung, Startup-Race-Condition, OAuth-Automatische Erkennung für benutzerdefinierte Ports.
  • Export: RFC 5987 Dateiname für CJK.

[v0.7.3] - 2026-03-06

Hinzugefügt

  • Globale MCP-Server — Von Administratoren bereitgestellt, in allen Chat-Sitzungen geladen.
  • Strukturiertes Audit-Loggingwrite_audit()-Hilfsfunktion mit strukturierten Spalten.

Behoben

  • Rückwärtskompatibilität für Einladungscode für das veraltete Feld registration_enabled.

[v0.7.2] - 2026-03-06

Hinzugefügt

  • Nur auf Einladung registrieren — Drei Modi (offen/Einladung/deaktiviert) mit CRUD für Einladungscodes.
  • Speicherverwaltung — Speichernutzung pro Benutzer, Löschen, Bereinigung verwaister Dateien.
  • Erzwungenes Logout pro Benutzer — Widerruf von Admin-Token.
  • Gesprächsmoderation — Admin-Liste/Löschen aller Gespräche.

[v0.7.1] - 2026-03-06

Hinzugefügt

  • API-Gesundheitsdashboard — Systemstatistiken, Connector-Metriken, Token-Nutzungsdiagramme.
  • JWT-Authentifizierung — Token-basierte SSE-Authentifizierung, Gesprächseigentümerschaft.
  • Admin-API — Agent-Verwaltung, Pro-Benutzer-Token-Kontingent (429-Durchsetzung).

[v0.7] - 2026-03-06

Hinzugefügt

  • Admin-Plattform — Benutzerverwaltung, Rollenwechsel, Passwort-Zurücksetzen, Konto aktivieren/deaktivieren.
  • Einrichtungs-Assistent beim ersten Start — Geführte Erstellung des Admin-Kontos.
  • Persönliches Zentrum — Globale Anweisungen pro Benutzer, Spracheinstellung.

[v0.6.5] - 2026-03-05

Hinzugefügt

  • Utility-Toolsemail_send, json_transform, template_render, text_utils.
  • Connector-AntwortfilterungCONNECTOR_RESPONSE_MAX_CHARS und CONNECTOR_RESPONSE_MAX_ITEMS.
  • Optionen für Embedding-Modelle — Jina, OpenAI und benutzerdefinierte Anbieter.

[v0.6] - 2026-03-01

Hinzugefügt

  • Connector-Plattform — Vollständige CRUD-Operationen, ConnectorToolAdapter, verschlüsselte Anmeldedaten pro Benutzer, Bestätigungsgate, Circuit Breaker, Audit-Protokollierung.
  • MCP-Integration — Automatische Tool-Erkennung über Protokoll, Prozessisolation.

[v0.5] - 2026-02-28

Hinzugefügt

  • Vollständige RAG-Pipeline — Jina Embedding + LanceDB + FTS + RRF + Reranker.
  • Grounded Generation — Evidenzgestützte Zitate, Konflikt-Erkennung, Konfidenzwerte.
  • KB-Dokumentenverwaltung — Chunk-Level CRUD, Suche, Wiederholung, Schema-Migration.
  • ContextGuard + Angeheftete Nachrichten — Token-Budget-Manager.
  • DAG-Neuplanung — Bis zu 3 Runden; LLM Compact für Speicher.

[v0.4] - 2026-02-25

Hinzugefügt

  • Mehrturn-Gespräche — DbMemory-Persistenz, intelligente Kürzung.
  • Tool-Schritt-Faltungs-UI — Werkzeugaufrufe ein-/ausklappen.
  • HTTP-Anfrage- und Shell-Exec-Werkzeuge.
  • Agent-Verwaltung — Erstellen, konfigurieren, veröffentlichen mit gebundenen Modellen/Werkzeugen.
  • JWT-Authentifizierung.

[v0.3] - 2026-02-25

Hinzugefügt

  • Web-Toolsweb_search (Jina/Tavily/Brave), web_fetch.
  • Dateivorgänge + MCP-Client.
  • DAG-Visualisierung — Interaktiver Flussgraph mit Live-Status.
  • Code-Ausführung in Docker--network=none, Speicherlimits, Timeout.

[v0.2] - 2026-02-24

Hinzugefügt

  • Wiederholung & Ratenbegrenzung — Exponentielles Backoff.
  • Nutzungsverfolgung — Token-/Kostenabrechnung pro Anfrage.
  • Native Funktionsaufrufe — Direkte Modellwerkzeugauswahl.
  • Multi-Modell-UnterstützungFAST_LLM_MODEL für DAG-Schritte.
  • Speichersystem — Fenster-, Zusammenfassungs- und Datenbankspeicher.
  • FastAPI-Backend/api/execute, /api/stream (SSE).

[v0.1] - 2026-02-22

Hinzugefügt

  • ReActAgent — Reason → Act → Observe Schleife.
  • DAGPlanner — LLM-generierte Abhängigkeitsgraphen, parallele Ausführung, Ergebnisverifikation.
  • Tools — Rechner, Python-Ausführung.
  • Portal UI — Next.js mit Streaming, dunkles/helles Design, KaTeX.