196 Commits

Author SHA1 Message Date
Timothy Carambat
0c03a838b4 Remove unused providers (#5793)
* remove HF endpoint support

* Delete DPAIS

* forgot file ref
2026-06-09 14:55:03 -07:00
Timothy Carambat
5706b42a28 1.14.0 release (#5788) 2026-06-09 06:45:56 -07:00
Timothy Carambat
a4c9ee1baf Make native tool calling opt-out instead of opt-in (#5783)
feat(agents): make native tool calling opt-out instead of opt-in

Flip the agent provider tool calling model from opt-in to opt-out.
Native tool calling is now enabled by default for all providers that support it.
ENV flag renamed from PROVIDER_SUPPORTS_NATIVE_TOOL_CALLING to PROVIDER_DISABLE_NATIVE_TOOL_CALLING.

Base class (`ai-provider.js`):
- `supportsNativeToolCalling()` now returns `true` by default
- `supportsNativeToolCallingViaEnv()` replaced with `optsOutOfNativeToolCallingViaEnv()`
- All providers now set `this.providerTag` for ENV-based opt-out lookup

Mostly untouched (already had tool calling, just removed redundant override + added providerTag):
- openai, azure, deepseek, minimax, anthropic
- genericOpenAi (ENV capability check updated to opt-out)

Already had dynamic capability checking (added opt-out ENV guard):
- ollama, lmstudio, cerebras, novita, dockerModelRunner, gemini, lemonade

Removed old ENV opt-in check (now inherits opt-out default from base):
- groq, openrouter, litellm, localai, bedrock

Modified to support native tool calling (added tooled stream/complete paths):
- apipie, cometapi, fireworksai, giteeai, koboldcpp, mistral,
  moonshotAi, ppio, privatemode, sambanova, textgenwebui,
  togetherai, xai, zai

Stayed disabled (provider genuinely cannot support tools):
- cohere (no OAI-compatible tool API yet)
- perplexity (no tool calling API support)
- nvidiaNim (deprecated)
- foundry (needs explicit testing)
- dellProAiStudio (likely deprecated, untested)
2026-06-08 16:43:40 -07:00
Dmitry Maranik
0f42baadeb feat(embed): opt-in deny-by-default for embeds with no allowlist (#5759)
* feat(embed): opt-in deny-by-default for embeds with no allowlist

An embed created without `allowlist_domains` currently answers requests from ANY origin: EmbedConfig.parseAllowedHosts() returns null for an empty allowlist, and the embed middleware (canRespond) skips the origin check when it is null.

This adds an opt-in, back-compatible `EMBED_REQUIRE_ALLOWLIST` env flag that makes embeds with no allowlist deny all requests until an allowlist is set (default/unset preserves existing behavior), plus a creation-time console warning and an .env.example entry.

Signed-off-by: Dmitry Maranik <dmitrymaranik@gmail.com>

* chore(embed): persist EMBED_REQUIRE_ALLOWLIST in dumpENV protectedKeys

Per review on #5759: EMBED_REQUIRE_ALLOWLIST is not GUI-controlled, so add it to the dumpENV() protectedKeys array so the setting survives env writes.

Signed-off-by: Dmitry Maranik <dmitrymaranik@gmail.com>

* update to spec

---------

Signed-off-by: Dmitry Maranik <dmitrymaranik@gmail.com>
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2026-06-06 13:07:49 -07:00
Sanidhya Singh
43e0d9a43d feat: make document sync stale-after interval configurable (#5747)
The document sync/watch feature hardcoded the stale-after interval to 7
days (604800000ms), which is too infrequent for operational documents
that change often. This makes it configurable via the new
DOCUMENT_SYNC_STALE_AFTER_MS environment variable.

- defaultStaleAfter now reads DOCUMENT_SYNC_STALE_AFTER_MS, falling back
  to the 7-day default for unset/invalid/non-positive values and
  enforcing a 1-hour minimum to avoid overloading embedders.
- watch() now persists staleAfterMs on the queue record so the
  configured interval governs recurring syncs, not just the first one.
- Documented the variable in server/ and docker/ .env.example files.

Resolves #3988

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2026-06-03 09:07:49 -07:00
Sean Hatfield
15b7966366 Kokoro TTS provider (#5679)
* add kokoro tts provider

* fix api key fallback + add try/catch around voice fetch

* fix order

* update order and endpoint parsing

* remove log

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2026-06-01 16:30:21 -07:00
Sean Hatfield
9c6ab7cadb feat: add server-side speech-to-text with OpenAI provider (#5596)
* feat: add server-side speech-to-text with OpenAI provider

* extract shared mic button and silence detector for STT

* dynamically fetch openai stt models from api

* add STT entries to .env.example

* filter non-audio uploads in handleAudioUpload

* update translations for STT

* Deepgram provider for STT (#5612)

* add deepgram provider for speech-to-text

* add deepgram STT entries to .env.example

* add comment to clarify successful api key usage

* revert unintentional embed submodule change

* resize deepgram.png to 300x300

* filter lots of dupe models from picker

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>

* deepgram nit

* Lemonade provider for STT (#5610)

* add lemonade provider for speech-to-text

* add lemonade STT entries to .env.example

* convert lemonade STT audio to wav via collector

* clarify lemonade STT api key reuse in env examples

* extract STT wav conversion into reusable helper

* use async fs in collector convertAudioToWav

* return result object from convertAudioToWav on empty filename

* apply filtering

* DiD path name

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>

* Generic OpenAI provider for STT (#5609)

* add generic openai provider for speech-to-text

* add generic-openai STT entries to .env.example

* wav conversion

* remove log

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>

* i18n (#5740)

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2026-06-01 15:47:00 -07:00
Asish Kumar
bee224171c feat: add Cerebras as an LLM provider (#5699)
* feat: add Cerebras as an LLM provider

Adds Cerebras (https://www.cerebras.ai) as a first-class LLM provider for
chat and agents. Cerebras exposes an OpenAI-compatible inference API, so the
integration mirrors the existing fast-inference providers (Groq/SambaNova):

- New `CerebrasLLM` provider with streaming, prompt-window limits sourced from
  the shared model map, and dynamic model discovery via the customModels
  helper (`GET /v1/models`).
- New `CerebrasProvider` agent provider with the standard UnTooled fallback and
  optional native OpenAI-compatible tool calling, gated behind the existing
  `PROVIDER_SUPPORTS_NATIVE_TOOL_CALLING` ENV (since tool-calling support
  varies per Cerebras model).
- Wires the provider through getLLMProvider/getLLMProviderClass, agent
  selection, ENV validation/persistence, system settings, and the agent
  sub-task client builder so agent helpers (e.g. web-scraping summarization)
  work for Cerebras.
- Registers `cerebras` in the context-window model map (tracked LiteLLM
  provider + legacy fallback values) for accurate context limits.
- Frontend: API key + model-selection options, onboarding/settings provider
  entries, agent-provider enablement, privacy-policy entry, and provider logo.
- Documents the new `CEREBRAS_API_KEY` / `CEREBRAS_MODEL_PREF` env vars in the
  example env files and adds Cerebras to the supported-provider lists.

resolves #5605

* use proper model fallback
use public endpoint for model fetching

* context window reporting + better chat repsonses + show thinking

* add Cerebrase agent tool calling, capability detection, context windows, and usage reporting

* add safety caching

* stub out images

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2026-05-27 11:38:30 -07:00
Timothy Carambat
9fe6bbfb09 v1.13.0 release (#5693) 2026-05-26 12:04:13 -07:00
Timothy Carambat
2f189f9703 bump docker run in HOW_TO_USE_DOCKER 2026-05-22 14:56:27 -07:00
Sean Hatfield
d348b17449 Workspace deletion protection (#5662)
* add WORKSPACE_DELETION_PROTECTION env flag to disable workspace deletion from UI and APIs

* minor nits

* patch test for phrase

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2026-05-20 08:53:00 -07:00
Sean Hatfield
bd7d30a96d feat: Memories/Personalization (#5269)
* add memory storage layer with model, endpoints, schema, and system setting

* add memory extraction background worker

* handle single-user and multi-user mode for memory extraction

* add memory injection and personalization ui

* lint

* personalization UI polish, fix RBAC for all roles, and endpoint guards

* split admin personalization page into subcomponents

* split admin personalization page into subcomponents, use early return instead of ternary for readability

* make error responses consistent in memory endpoints

* consolidate duplicate MemoryItem into shared component

* skip memory reranking when no query context is available

* extract promptWithMemories util to deduplicate memory injection

* add english translations

* refactor memory api routes to eliminate ambiguous path params

* make memory extraction interval and idle threshold configurable via env vars

* add hint to memory form input

* inline personalization content in admin settings page

* consolidate unprocessed chat queries into single fetch

* simplify personalization page with early returns and layout subcomponent

* add memories sidebar with chat settings menu redesign

* remove legacy personalization ui

* split MemoriesSidebar into subcomponent folders

* fix memory card menu spacing to match design

* fix memories visibility for non-admin users

* add english translations for memories sidebar ui

* add workspace access checks to all memory endpoints

* pass user prompt to agent getDefinition for memory reranking

* check idle threshold per user/workspace group instead of globally

* use factory pattern for i18n text sizes and replace Trans with plain t() keys

* add placeholder examples and format guidance for manual memory creation

* remove stale comment

* refactor chat menu

* refactor sidebar to use provider and simplified DOM rendering

* fix memories sidebar overflow from long workspace names, widen memories options menu

* fix edit memory modal cursor landing at start of input

* hide memory add/move actions when at limit

* revert scope of workspace settings route changed for first pass of memories ui

* jsdoc memory model methods, drop redundant error logs

* inline error response returns and move body validation after perms in memory endpoints

* run memory fetches concurrently in list endpoint and prompt injection

* jsdoc server memory model methods

* normalize memory_enabled to true/false and add SystemSettings helper

* extract memory ownership middleware, strip redundant .end() calls

* use validWorkspaceSlug middleware for memory endpoints, switch to slug-based urls

* add description to memories util

* simplify memory ownership middleware to single db query

* use aibitat tool call for memory extraction, add chat safety limits

* truncate per-chat prompt/response before memory extraction

* add input validation to memory model

* validate ids array input in markMemoryProcessed

* inline memory injection in chatPrompt and systemPrompt

* make memory migration additive and drop unused sourceThreadId

* normalize translation files

* reset translations, minor nit

* refactor consts, extract memories with outputs

* set intervla

* sync

* rearch how memory extract works by moving to Observer/Reflector pattern (Mastra aspect)

* remove timeout on load

* Feat/memory i18n (#5661)

translations for #5269

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2026-05-19 17:24:18 -07:00
Daniel Dutra
b5f138fe55 feat: adding MiniMax LLM provider (#5450)
* add MiniMax LLM provider support

* add MiniMax LLM provider to the docs

* fix: add trailing newlines for lint compliance

* add env vars to system settings | make max tokens configurable via ui | pass max tokens into minimax llm provider

* change fallback max tokens value to null to use provider default | pass max tokens into handleFucntionCallStream and chat

* add minimax to getModelTag switch

* pass provider into tooledStream and tooledComplete

* remove max tokens param

* update image

---------

Co-authored-by: angelplusultra <macfittondev@gmail.com>
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2026-05-18 13:20:57 -07:00
Asish Kumar
720ea69929 feat: allow configurable collector port (#5607)
* feat: allow configuring collector port

* refactor

* persist collector save in prod

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2026-05-11 17:29:01 -07:00
Timothy Carambat
bde72505ff Remove default models to show empty until real models are retreieved (#5524)
resolves #5505
Fix placeholder
resolves #5503
resolves #5522
2026-04-24 15:13:57 -07:00
jimmyzhuu
680d38a3ce [FEAT] Add native Baidu Search provider for Agent web browsing (#5388)
* feat: add native baidu search provider for agent web browsing

* chore: address baidu search review feedback

* refactor baiduSearch internal util to be locally scoped

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2026-04-22 17:53:20 -07:00
Timothy Carambat
f144692903 1.12.1 release tags (#5483) 2026-04-22 15:15:59 -07:00
Timothy Carambat
246edc38ce Add automatic agent skill aproval via ENV Flag (#5405)
* add autoapproval env flag

* persist flag
2026-04-10 13:20:47 -07:00
Timothy Carambat
f6f1c80042 1.12.0 release (#5331) 2026-04-02 13:52:00 -07:00
Timothy Carambat
96965b3f30 Intelligent Skill Selection (#5236)
* Beta Intelligent Tooling
todo: Agent Skill banner warning when tool # is high or % of content window?

* forgot files

* add UI controls and maxToolCallStack setting

* update docs link

* ISS i18n (#5237)

i18n
2026-03-19 10:06:37 -07:00
Timothy Carambat
93d191f162 Merge branch 'master' of github.com:Mintplex-Labs/anything-llm 2026-03-18 09:26:09 -07:00
Timothy Carambat
1ed3cb5ca0 bump version tag 1.11.2 2026-03-18 09:25:39 -07:00
Kesku
409ac543bd feat(agents): Add Perplexity Search API as web search provider (#5210)
* feat(agents): Add Perplexity Search API as web search provider

Adds Perplexity as a search provider for the agent web-browsing plugin,
using the Perplexity Search API (POST /search) which returns raw ranked
web results — distinct from the existing Perplexity LLM integration.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* chore: replace docs.perplexity.ai with console.perplexity.ai

* chore: replace docs.perplexity.ai with console.perplexity.ai

---------

Co-authored-by: kesku <kesku@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2026-03-17 14:16:20 -07:00
Ryan
179a823ab1 Fix: Azure OpenAI model key collision (#5092)
* fix: Migrate AzureOpenAI model key from OPEN_MODEL_PREF to prevent the naming collision. No effort necessary from current users.

* test: add backwards compat tests for AzureOpenAI model key migration

* patch missing env example file

* linting

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2026-03-05 17:12:08 -08:00
Timothy Carambat
e145c391e9 v1.11.1 Release tags (#5107)
bump tag
2026-03-02 09:25:06 -08:00
Timothy Carambat
a6ba5a4034 Lemonade integration (#5077)
* lemonade integration

* lemonade embedder

* log

* load model

* readme updates

* update embedder privacy entry
2026-02-27 11:02:38 -08:00
Timothy Carambat
ac0b1d401d Native Tool calling (#5071)
* checkpoint

* test MCP and flows

* add native tool call detection back to LMStudio

* add native tool call loops for Ollama

* Add ablity detection to DMR (regex parse)

* bedrock and generic openai with ENV flag

* deepseek native tool calling

* localAI native function

* groq support

* linting, add litellm and OR native tool calling via flag
2026-02-26 13:37:56 -08:00
Timothy Carambat
40853e4e43 1.11.0 release tag (#5014) 2026-02-18 08:47:47 -08:00
Timothy Carambat
dba1be0600 add support for custom headers for LLM Generic OpenAI (#4999)
* add support for custom headers for LLM Generic OpenAI

* add env
2026-02-13 09:19:36 -08:00
Timothy Carambat
97b140b4b4 Update LMStudio LLM & Embedder for API token (#4948)
- Updates Option panels to be consistent for other providers
adds API key to all LMStudio API calls
2026-01-30 11:13:32 -08:00
Timothy Carambat
0032c4da22 SambaNova Integration (#4943)
* SambaNova Integration

* lint
2026-01-29 18:48:22 -08:00
Timothy Carambat
b8dd7bc97e Support PrivateModeAI Integration (#4937)
* Support PrivateModeAI Integration

* tooltip for proxy
2026-01-29 12:01:11 -08:00
Timothy Carambat
ac8248e08d bump versions to 1.10.0 2026-01-21 16:10:07 -08:00
Timothy Carambat
ff7cb17e34 Improved DMR support (#4863)
* Improve DMR support
- Autodetect models installed
- Grab all models from hub.docker to show available
- UI to handle render,search, install, and management of models
- Support functionality for chat, stream, and agentic calls

* forgot files

* fix loader circle being too large
fix tooltip width command
adjust location of docker installer open for web platform

* adjust imports
2026-01-14 15:55:26 -08:00
Timothy Carambat
3800a68402 Docker base image upgrade to Ubuntu 24 (#4754)
* test base image bump

* patch frontend compilation due to Vite QEMU exception

* migrate all runners to arm64 to avoid QEMU slowdown

* add back layer cleanup

* remove layer cache fix
2025-12-10 13:50:24 -08:00
Timothy Carambat
cd263337f8 fix: bump version tag 2025-12-09 13:18:51 -08:00
Timothy Carambat
92752a2a15 Improve MCP functionality (#4709)
* Improve MCP functionality

* apply ANSI strip path

* attempt ARM build

* improve dockerfile IO build time and migrate to ARM build

* fix comment

* add ability to disable MCP cooldown feature

* update devbuild name

* move chromium arm build patch to CDN
2025-12-05 11:01:20 -08:00
方程
90e474abcb Support Gitee AI(LLM Provider) (#3361)
* Support Gitee AI(LLM Provider)

* refactor(server): 重构 GiteeAI 模型窗口限制功能,暂时将窗口限制硬编码,计划使用外部 API 数据和缓存

* updates for Gitee AI

* use legacy lookup since gitee does not enable getting token context windows

* add more missing records

* reorder imports

---------

Co-authored-by: 方程 <fangcheng@oschina.cn>
Co-authored-by: timothycarambat <rambat1010@gmail.com>
2025-11-25 14:19:32 -08:00
Colin Perry
157e3e4b38 Feat/add openrouter embedding models (#4682)
* implemented openrouter embedding model support

* ran yarn lint

* data handling entry

---------

Co-authored-by: timothycarambat <rambat1010@gmail.com>
2025-11-25 11:16:16 -08:00
Sean Hatfield
c913a2d68c Prompt caching for Anthropic LLM and Agent providers (#4488)
* prompt caching for anthropic llm and agent providers

* add UI for control of ENV
simplify implementation

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2025-11-20 17:17:03 -08:00
Sean Hatfield
49c29fb968 Z.ai LLM & agent provider (#4573)
* wip zai llm provider

* cleanup + add zai agent provider

* lint

* change how caching works for failed models

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2025-11-20 15:57:03 -08:00
Chetan Sarva
c169193fc4 feature: Support for AWS Bedrock API Keys (#4651)
* feat: add AWS Bedrock API Key option to settings panel

* feat: Bedrock API key auth method

* fix: hide IAM note when using bedrock api key

* move to camcelCase identifier for bedrock api key use
linting

---------

Co-authored-by: timothycarambat <rambat1010@gmail.com>
2025-11-20 15:38:45 -08:00
Alex Barron
2eb5384e27 Add SerpApi web search (#4623)
Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2025-11-20 15:12:15 -08:00
Sean Hatfield
2e1c1ff891 Disable swagger docs endpoint with environment variable (#4665)
* add option to disable swagger docs via env

* update .example.env for docker and server

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2025-11-19 19:32:10 -08:00
Marcello Fitton
fd9256b361 Disable Prisma CLI Telemetry in Entrypoint Shell Script (#4609)
* propogate anythingllm telemetry settings to prisma

* Disable Prisma CLI telemetry in Docker entrypoint script

* Delete incorrect disable block

* test build

---------

Co-authored-by: shatfield4 <seanhatfield5@gmail.com>
Co-authored-by: timothycarambat <rambat1010@gmail.com>
2025-11-19 15:11:53 -08:00
timothycarambat
71cd46ce1b 1.9.0 tag 2025-10-09 15:11:59 -07:00
Sean Hatfield
599a3fd8b8 Microsoft Foundry Local LLM provider & agent provider (#4435)
* add microsoft foundry local llm and agent providers

* minor change to fix early stop token + overloading of context window
always use user defined window _unless_ it is larger than the models real contenxt window
cache the context windows when we can from the API (0.7.*)+
Unload model forcefully on model change to prevent resource hogging

* add back token preference since some models have very large windows and can crash a machine
normalize cases

---------

Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
2025-10-01 20:04:13 -07:00
Timothy Carambat
c8f13d5f27 Enable custom HTTP response timeout for ollama (#4448) 2025-09-29 12:32:55 -07:00
Chaser Huang
226802d35a API request delay for Generic OpenAI embedding engine (#4317)
* Add ENV to configure api request delay for generic open ai embedding engine

* yarn lint formatting

* refactor

---------

Co-authored-by: timothycarambat <rambat1010@gmail.com>
2025-09-17 20:53:41 -07:00
Timothy Carambat
95557ee16f Allow user to specify args for chromium process so they dont need SYS_ADMIN on container. (#4397)
* allow user to specify args for chromium process so they dont need SYS_ADMIN perms

* use arg flag content

* update console outputs
2025-09-17 16:31:08 -07:00