Back to Fastgpt

V4.15.2

document/content/self-host/upgrading/4-15/4152.en.mdx

4.15.28.3 KB
Original Source

📦 Upgrade Guide

Upgrade OpenSandbox Images

If OpenSandbox is enabled in your deployment, update the following images:

  • opensandbox/server:v0.2.1
  • opensandbox/execd:v1.0.21
  • opensandbox/egress:v1.1.4

This upgrade fixes an issue that prevented files with Chinese filenames from being downloaded. See OpenSandbox Configuration for the complete configuration.

Update the AGENT_ENGINE Environment Variable

Starting with V4.15.2, AGENT_ENGINE uses new enum values. Update the environment variable before upgrading:

Previous valueNew value
defaultfastAgent
pipiAgent

The previous values are no longer supported. Using default or pi will fail environment variable validation and prevent FastGPT from starting. If AGENT_ENGINE is not set, FastGPT uses fastAgent by default.

Configure the File Download URL Mode

V4.15.2 introduces the STORAGE_DOWNLOAD_URL_MODE environment variable, which defaults to short-proxy.

  • short-proxy: Returns a FastGPT short URL and proxies file downloads through the FastGPT App.
  • short-redirect: Returns a FastGPT short URL that redirects to a temporary S3/CDN URL after validation.

To use short URLs without routing file traffic through the FastGPT App, set:

STORAGE_DOWNLOAD_URL_MODE=short-redirect

When using short-redirect, you must configure STORAGE_EXTERNAL_ENDPOINT.

🚀 New Features

  1. Enterprise verification / company verification.
  2. The portal page now supports selecting Agent V2 apps for conversations.
  3. File upload and download URLs now use short access URLs, reducing the context consumed by long URLs and the risk of malformed model output. Previously issued URLs remain supported.
  4. For file URLs without a recognizable extension, FastGPT now infers the file type from the buffer to improve parsing success rates.
  5. The Custom Tool Parameters node now supports manually entering a JSON Schema and marking parameters as required.

⚙️ Improvements

General Improvements

  1. Updated the delete confirmation copy when a Skill is not associated with an app.
  2. Adapted to the latest WeChat publishing channel SDK.
  3. Renamed the plugin status from Offline to Uninstalled.
  4. Judge nodes now use a unique ID as the identifier instead of the index, so target branches remain stable when branches are deleted or reordered.
  5. Files generated by system tools no longer expire after 1 hour. They are now long-lived and deleted together with the conversation.
  6. The registration button is now hidden in Sync Mode.
  7. Improved the performance of the fade-in effect for streaming output in chat dialogs.
  8. Upgraded LiteParse to fix PDF parsing errors under concurrent workloads. The default file parsing worker count is now 5 instead of 10 and remains configurable through PARSE_FILE_WORKERS.
  9. Added in-flight request deduplication for the model list and sandbox package endpoints. Identical concurrent requests now share the same result, reducing duplicate requests triggered by workflow nodes and selectors.
  10. Workflow node responses are now included in SSE streams.

Streaming Markdown Rendering Improvements

  1. Reduced streaming render updates to 20 frames per second. Completed Markdown blocks are cached, while active blocks reuse their parser and animation runtime, reducing repeated parsing, DOM updates, and frame drops during long responses.
  2. Moved fade-in effects to a stable character timeline. Characters that are already visible no longer restart their animation when later Markdown is parsed; only newly appended characters fade in.
  3. Temporarily completes streaming tails for bold, italic, bold italic, strikethrough, nested emphasis, inline code, and block math so delimiter characters arriving one at a time do not change the DOM structure of existing content.
  4. Defers lists, task items, blockquotes, headings, code fences, tables, links, images, and citation markers until their structure is known. This prevents control markers from flashing and avoids previously rendered content disappearing and then reappearing.

🐛 Fixes

General Fixes

  1. Optimized the CI workflow by pinning action step versions to commit hashes to reduce the risk of CI supply-chain attacks.
  2. Removed the high-risk archive extraction library used for PPTX parsing and replaced it with a streaming decompression and parsing flow to reduce the risk of malicious code execution.
  3. Custom chunk delimiters now reject a single | or consecutive || to prevent incorrect parsing of large numbers of chunks.
  4. Improved automatic license purchase logic for WeCom edition customers after payment to prevent duplicate or missing license purchases.
  5. Fixed empty Tag labels in the Plugin Marketplace.
  6. Fixed runtime calculations for LoopRun iterations and ParallelRun tasks so each item reports its own elapsed time instead of summing the runtimes of its child steps.
  7. Deleting a chat file while it is uploading now also aborts the presign and upload requests, preventing deleted files from reappearing or incorrectly updating other files.
  8. Fixed cases where file persistence, type, or metadata could be lost during uploads, draft uploads, and first-turn media messages.

Agent Loop Fixes

  1. Fixed unfinished interactive sessions failing to resume when history=0. Regular requests still exclude history. When the latest round contains an unfinished interaction, FastGPT retains the nearest Human/AI pair long enough to detect and restore the interaction, then filters the history as configured.
  2. Fixed ask answers in nested workflows not being restored as the matching tool response. New interaction records use askId to associate the ask call with the user's answer, while legacy planId records remain readable.
  3. Fixed duplicate tool responses and plan snapshots after resuming a child interaction. Tool results are updated in place by toolCallId, and plans are updated by planId, preventing duplicate tool cards or plans after a refresh.
  4. Fixed Agent Knowledge Base search not reading the split dataset parameters from the main workflow, adding compatibility with the latest Knowledge Base search parameter structure.
  5. Fixed later tools continuing to run after an ask in the same model response had already paused the loop, preventing additional tool side effects before the user answers.
  6. Fixed parent-node errors being hidden when a workflow node also produced child execution details. Parent errors are now preserved in SSE events, workflow results, and traces.
  7. Fixed workflowDispatchDeep not being restored when the workflow observer failed before dispatch started, preventing subsequent workflows from inheriting an incorrect nesting depth.

🛠️ Code Improvements

General Code Improvements

  1. Refactored Agent V2 assisted generation / ChatAgentHelper to reuse the dialog.
  2. AI request records that contain very long base64/data URLs are truncated before saving to prevent possible stack overflows.
  3. Unified SSE event wrapping for stronger type hints.
  4. Added the AUTH_COOKIE_SECURE environment variable. When enabled, login cookies use the Secure attribute and are sent only over HTTPS.

Agent Loop Refactor

  1. Workflow Agent and ToolCall now use the same Agent Loop execution core. ToolCall disables plan and ask capabilities while sharing the same loop execution, context handling, tool events, interactive recovery, and billing rules as Workflow Agent.
  2. Standardized the Provider interface for fastAgent and piAgent. The execution engine can be selected with AGENT_ENGINE, and both providers now use the same input, runtime, and result contracts.
  3. Standardized the event lifecycle for plan, ask, sandbox, file reading, Knowledge Base search, and runtime tools so SSE events, execution details, and errors are handled consistently.
  4. Unified the generation and persistence of assistantResponses, node responses, Provider state, and context-compression checkpoints, and removed duplicate adapters from the legacy execution paths.
  5. Unified usage collection for model calls, context compression, and tool execution to prevent duplicate billing or usage aggregation.
  6. Improved tool scheduling by allowing safe tools to run in parallel while writing tool responses back in model-call order. Stateful tools such as plan and ask continue to run sequentially.