⚙️ Config v1.3.15
-
Updated Agent tool capabilities
run_in_backgroundnow supports explicitly selected MCP, Plugin, and Action tools in addition to background-native Code Interpreter tools- Action selection covers every eligible operation; OAuth Actions and operations that already define
run_in_backgroundare excluded - Programmatic MCP tools require Code Interpreter on the Agent; incompatible builder selections are disabled or cleared, and stale caller options are removed server-side
- Programmatic execution intersects caller-authorized tools with LibreChat's trusted execution registry
-
Added
endpoints.agents.maxSubagents- Limits explicit subagents in flat Agent lists and Agent team graphs
- Defaults to
10, accepts values from1to50, and is enforced from the base YAML
-
Added live Agent reasoning-label settings
reasoningLabelenables a generated orientation for top-level reasoning as a response developsreasoningLabelModel,reasoningLabelEndpoint, andreasoningLabelPromptconfigure the label callreasoningLabelMinChars,reasoningLabelUpdateChars, andreasoningLabelUpdateIntervalMscontrol streaming revisionsreasoningLabelMaxPerRundefaults to8; each attempted revision is a separate model call with its own usage and cost
-
Updated
endpoints.agents.toolApproval- Static rules are evaluated in
deny,ask, thenalloworder before the configured mode fallback - Rules match MCP runtime names and model-facing aliases across top-level and nested Subagent tools
- Attached Code environments automatically ask before file writes and command or code execution while leaving read and search operations under the regular policy
toolApproval.enabled: falseis the administrator emergency override for the attached-environment baseline; callers without approval and resume support otherwise fail closed
- Static rules are evaluated in
-
Added highly experimental Agent Code environment configuration
endpoints.agents.statefulCodeSessions.allowedEnvironmentsrestricts selectableuser,agent-user, andconversationworkspace scopesstatefulCodeSessions.environmentsdefines named managed or attached backends and requires exactly one default when executable entries exist- Attached environments can route through
workerId, enroll an operator worker withpairing.workerId, or allow owner-bound workers withpairing.allowPrincipalWorkers pairing.tokenEnvnames the secret-bearing environment variable; pairing-only control planes cannot be execution defaultsconfigSchema.permissions.fileWriteandcommandExecutionlet administrators expose boundedallow,ask, ordenychoices for owner-bound environments; omitted or invalid preferences fall back toasksettingsis populated from server-validated owner preferences at request time and should not be configured in deployment YAML- Isolation, networking, mounts, privileged execution, ingress, egress, and secrets remain outside the user-configurable schema
LIBRECHAT_CODE_BASEURL_STATEFULselects a dedicated stateful Code API while stateless Agents continue usingLIBRECHAT_CODE_BASEURLCODE_ENVIRONMENT_PAIRING_USER_MAXandCODE_ENVIRONMENT_PAIRING_USER_WINDOWcontrol per-user pairing limits- Attached environments, pairing, and stateful workspaces remain highly experimental and may change substantially
-
Added self-hosted Code Interpreter JWT authentication
CODEAPI_AUTH_PROVIDER=librechat-jwtandCODEAPI_JWT_ENABLED=trueenable per-user bearer tokens- EdDSA and RS256 private keys can be supplied as PEM, base64-encoded PEM, or private JWK, with configurable key ID, issuer, audience, lifetime, and mint cache
CODEAPI_JWT_SINGLE_TENANT_IDsupplies the non-strict tenant fallback; strict isolation fails closed without authenticated tenant contextLIBRECHAT_CODE_SANDBOX_OUTPUT_MAX_SIZEdefaults to65536and derives safe sandbox-image windowsLIBRECHAT_CODE_IMAGE_CHUNK_BYTESis now an optional exact window override instead of a fixed32768-byte default
-
Updated Agent event and background delivery configuration
- Added
endpoints.agents.backgroundTasks.completionWakeups, which defaults totrue; set it tofalsefor poll-only background tools and Subagents endpoints.agents.eventDrivennow contains only optionalselfUrl; pre-release child-turn, completion, coalescing, mailbox, checkpoint, and receipt fields were removed- Removed the pre-release
ENABLE_AGENT_EVENT_CHILD_TURNS,ENABLE_SUBAGENT_COMPLETION_WAKEUPS, andAGENT_TRIGGERS_DETACHED_ACTIONS_PRODUCER_ENABLEDflags rateLimits.agentEvents.userMaxanduserWindowInMinutesconfigure a separate API-key-principal ingress bucket, defaulting to 40 requests per minute
- Added
-
Added experimental Scheduled Chats configuration
interface.schedulesis absent by default and must be added explicitly to enable the panel and engineuse,create,maxPerUser,minIntervalMinutes,autoDisableAfterFailures,fireConcurrency, andrequireProjectconfigure permissions and limitsschedules: falseand{ use: false }are authoritative deployment-wide stopsSCHEDULES_DISABLED=trueimmediately blocks automatic and manual runs without deleting definitions- Multi-replica deployments require Redis-backed resumable streams;
SCHEDULES_SINGLE_PROCESS=trueis only for a truly single-process deployment without Redis
-
Added
customParams.paramDefinitions[].range.positiveMin- Allows
range.minto remain a sentinel while ordinary values begin at a higher floor - Validation and UI clamping accept only the sentinel or values from
positiveMinthroughmax
- Allows
-
Added configurable HTTP security headers
- Baseline HSTS, X-Frame-Options, X-Content-Type-Options, Cross-Origin-Opener-Policy, Cross-Origin-Resource-Policy, and Referrer-Policy headers are sent by default
SECURITY_HEADERS=falsedisables the baseline and acts as the global Content Security Policy kill switchCSP_ENABLED=trueenables nonce-based CSP;CSP_REPORT_ONLY=trueis the default for staged rolloutCSP_*_EXTRA,CSP_FRAME_ANCESTORS,CSP_ALLOW_WASM, andCSP_ALLOW_DATA_WORKERSadapt the policy to deployment resources
-
Updated Langfuse configuration
- Added YAML-only
langfuse.headersfor authenticating one self-hosted Langfuse origin or gateway across traces, media, feedback, project lookup, and credential verification - Header values support
${ENV_VAR}references, are masked in config output, and fail closed when configuration resolves multiple Langfuse origins - Authorized administrators can open sampled sessions from Context Usage and authenticated same-tenant shared conversations
- Added export-plan trace attributes and secret-free connection-change events for troubleshooting
- Fanout media upload targets must be absolute HTTPS URLs and upload requests no longer follow redirects
- Added YAML-only
-
Updated request-scoped MCP configuration
- Added
{{LIBRECHAT_BODY_PARENTMESSAGEID}}for native Agent, Chat Completions, and legacy Assistants requests; Open Responses rejects it because no equivalent parent identity exists - MCP display titles accept Unicode letters and numbers, hyphens, and apostrophes after an initial letter or number
- Redundant server-name prefixes are removed from model-facing tool keys without changing routing
- Deferred servers resolve declared
serverInstructionswhen they become available during an active request
- Added
-
Updated OpenID and SAML settings
GRAPH_API_SCOPESconfigures the Microsoft Graph scopes requested for{{LIBRECHAT_GRAPH_ACCESS_TOKEN}}OBO exchangeOPENID_REFRESH_BRIDGE_GRACE_MScontrols the short rotated-token recovery bridge and defaults to60000msSAML_NAME_ID_FORMATrequests a stable NameID format; transient identifiers are rejectedSAML_IDP_ISSUERoptionally pins the expected IdP entity ID
-
Added base-only, source-aware content filters
- Top-level
filterscan inspect selected fields across messages, prompts, Agent instructions, conversation starters and titles, feedback, Skills, memories, files, tool arguments, model parameters, and Action metadata - Each source independently selects fields and built-in credential patterns or bounded RE2JS custom patterns
filters.messages.unattributedAssistantContentcontrols classification of legacy assistant rows without provenancefilters.files.pii.uninspectablecan allow or block opaque and oversized selected content- Each source accepts
pii.action: block | audit;blockremains the default, whileauditrecords raw-free findings without rejecting or changing content - Explicit
filters.files.pii.uninspectable: blockremains fail-closed independently of audit mode - The policy is loaded only from base YAML and cannot be changed through database, role, group, or user overrides
- Legacy
messageFilter.piiremains supported, stays block-only, and applies alongside the source-aware policy
- Top-level
-
Updated web-search configuration
- Added
webSearch.searxngSearchOptionsfor engines, language, time range, and timeout - Added keyless Keenable search and scraping, with optional
KEENABLE_API_KEY,KEENABLE_API_URL, andKEENABLE_FETCH_URLoverrides keenableSearchOptionsandkeenableScraperOptionsconfigure result count, domains, attribution titles, and timeouts
- Added
-
Added
interface.feedback- Defaults to
true; setting it tofalsehides response feedback controls and rejects feedback writes
- Defaults to
-
Updated deployment defaults and controls
secureImageLinksnow defaults totrue; set it tofalseonly for intentionally public local image URLsENABLE_INSIGHTS=trueexposes tenant-scoped MongoDB Insights to authorized administratorsCONSOLE_LOG_LEVELselects console verbosity orsilent, overriding theDEBUG_CONSOLEfallbackREDIS_READONLY_RECOVERY_INTERVALdefaults to5000ms and debounces Keyv reconnects after a failover leaves a socket on a read-only replicaVIOLATION_SCORE_TTLexpires inactive violation scores;0disables expiry- Startup rejects the retired published
JWT_SECRETandJWT_REFRESH_SECRETvalues - Removed the pre-release
GENERATION_PROTOCOL_VERSIONsetting; current clients and built-in generation stores select protocol v2 automatically
-
Updated built-in provider configuration
- Vertex AI Agents use the shared
GOOGLE_MODELScatalog unless an explicitvertexaicatalog takes precedence - Google model settings expose
resendFiles, boundmaxContextTokensto 10-2,000,000, and apply model-aware Gemini 2.5 thinking-budget ranges - Native Anthropic prompt-cache and 1M-context checks now recognize matching Sonnet and Opus 4.6-or-later model IDs consistently
- Added Claude Fable 5.1 to the direct Anthropic, Vertex AI, and Bedrock model catalogs with its distinct cache-read pricing
- Added Gemini 3.8 Flash to the Google AI Studio and Google Cloud Gemini Enterprise Agent Platform model catalogs with Flash-family thinking, parameter, context, prefill, and pricing behavior
- Agent model headers accept
{{LIBRECHAT_USER_TENANT_ID}}and{{LIBRECHAT_USER_TENANTID}}, resolved from authoritative request-scoped tenant context - Updated built-in GPT-5.6 Sol pricing
- Vertex AI Agents use the shared
-
Updated the config version to
1.3.15