大模型
github.com ·
@maximhq
Bifrost 发布 ent-v2.4.0-base:新增 MiniMax 与 BytePlus ModelArk 多模态 provider
Bifrost 发布 ent-v2.4.0-base 版本更新,新增 MiniMax provider(对话、图像、视频生成及 TTS/STT)和 BytePlus ModelArk provider(对话、responses、embeddings,以及 Seedream 图像与 Seedance 视频生成),并补充配置 schema、UI、文档与 e2e 测试。修复项包括 Anthropic provider 在 chat completions 中保持 web search 服务端执行、ListAllModels 按页限制而非整体遍历、Bedrock 单文本块工具结果渲染,以及 CI 对外部贡献者 PR 工作流的审批限制。
AI推荐理由 Bifrost 官方发布说明,信息密度较高且可核验:新增 MiniMax(对话/图像/视频/TTS/STT)与 BytePlus ModelArk(对话、responses、embeddings、Seedream 图像、Seedance 视频)provider,并修复 Anthropic 服务端 web search、ListAllModels 分页边界、Bedrock 工具结果渲染等。属于多模型网关的常规迭代,对使用该网关的开发者有集成价值,但无性能或基准数据,非行业级突破。
62
正文
Official release notes (https://github.com/maximhq/bifrost/releases/tag/ent-v2.4.0-base)
## What's Changed
* [fix]: Anthropic provider - keep web search server-side on chat completions by @brianhadley2026 in https://github.com/maximhq/bifrost/pull/7656
* main backmerge by @akshaydeo in https://github.com/maximhq/bifrost/pull/8771
* fix(core): bound each list-models page, not the whole walk, in ListAllModels by @akshaydeo in https://github.com/maximhq/bifrost/pull/8767
* docs: add Azure Key Vault and Kubernetes auth to secret management guides by @BearTS in https://github.com/maximhq/bifrost/pull/8562
* dependabot fixes by @akshaydeo in https://github.com/maximhq/bifrost/pull/8777
* feat(ui): shared decision-model picker for prompt guardrails by @kohlivrinda in https://github.com/maximhq/bifrost/pull/8487
* [StepSecurity] Apply security best practices by @stepsecurity-app[bot] in https://github.com/maximhq/bifrost/pull/7045
* fix(bedrock): render a one-text-block tool result like its string form by @akshaydeo in https://github.com/maximhq/bifrost/pull/8803
* ci: hold outside-contributor pull request workflows for bifrost-admin approval by @akshaydeo in https://github.com/maximhq/bifrost/pull/8868
* ci: hold outside-contributor pull request workflows for bifrost-admin approval (main) by @akshaydeo in https://github.com/maximhq/bifrost/pull/8869
* feat(core): add MiniMax provider for chat, image and video generation by @impoiler in https://github.com/maximhq/bifrost/pull/8622
* feat(ui): expose MiniMax in the config schema and provider UI by @impoiler in https://github.com/maximhq/bifrost/pull/8623
* docs: document the MiniMax provider by @impoiler in https://github.com/maximhq/bifrost/pull/8624
* test(e2e): add MiniMax to CI and the provider harness by @impoiler in https://github.com/maximhq/bifrost/pull/8625
* feat(core): add MiniMax text-to-speech and speech-to-text by @impoiler in https://github.com/maximhq/bifrost/pull/8636
* fix(minimax): close provider onboarding gaps by @impoiler in https://github.com/maximhq/bifrost/pull/8651
* feat(core): add BytePlus ModelArk provider for chat, responses and embeddings by @impoiler in https://github.com/maximhq/bifrost/pull/8652
* feat(core): add BytePlus Seedream image and Seedance video generation by @impoiler in https://github.com/maximhq/bifrost/pull/8653
* feat(ui): expose BytePlus in the config schema and provider UI by @impoiler in https://github.com/maximhq/bifrost/pull/8654
* docs: document the BytePlus provider by @impoiler in https://github.com/maximhq/bifrost/pull/8655
* test(e2e): add BytePlus to CI and the provider harness by @impoiler in https://github.com/maximhq/bifrost/pull/8656
* feat(core): stream BytePlus Seedream images and pass Seedance task options through by @impoiler in https://github.com/maximhq/bifrost/pull/8739
* fix(ui): apply active timezone to date range picker calendar by @impoiler in https://github.com/maximhq/bifrost/pull/8872
* fix(ui): redesign MCP registry OAuth callback page and update cluster settings icon by @impoiler in https://github.com/maximhq/bifrost/pull/8874
* fix(ui): allow clearing default cache key and vector store namespace by @impoiler in https://github.com/maximhq/bifrost/pull/8871
* feat(logstore): add user agent mappings to ClickHouse log store by @impoiler in https://github.com/maximhq/bifrost/pull/8876
* refactor: replace github copilot app auth with pat and oauth token support by @sammaji in https://github.com/maximhq/bifrost/pull/8661
* feat: route github copilot claude models to /v1/messages and add native responses and embeddings by @sammaji in https://github.com/maximhq/bifrost/pull/8677
* feat: add github copilot device-flow sign-in endpoints by @sammaji in https://github.com/maximhq/bifrost/pull/8678
* feat: replace ui github app credentials with sign in with github for copilot keys by @sammaji in https://github.com/maximhq/bifrost/pull/8662
* test: add github-copilot e2e coverage for sign-in flow and provider filtering by @sammaji in https://github.com/maximhq/bifrost/pull/8663
* docs: update github copilot docs and openapi schema by @sammaji in https://github.com/maximhq/bifrost/pull/8664
* fix: adjust provider icon spacing and alignment by @sammaji in https://github.com/maximhq/bifrost/pull/8870
* [fix]: show a load error on the providers page by @hmdsefi in https://github.com/maximhq/bifrost/pull/8280
* fix(governance): govern known users without a presented credential in PreA2AHook by @Pratham-Mishra04 in https://github.com/maximhq/bifrost/pull/8856
* feat(mcp/oauth): exchange the user's stored sign-in for token exchange when a request carries no identity token by @Pratham-Mishra04 in https://github.com/maximhq/bifrost/pull/8857
* feat(mcp/oauth2): verify token-exchange clients using the admin's stored sign-in when the request carries no token by @Pratham-Mishra04 in https://github.com/maximhq/bifrost/pull/8858
* fix(mcp): refresh rejected credentials in the background when an auth retry is skipped by @Pratham-Mishra04 in https://github.com/maximhq/bifrost/pull/8859
* docs(mcp): document token exchange using the caller's Bifrost sign-in by @Pratham-Mishra04 in https://github.com/maximhq/bifrost/pull/8894
* feat: add disable_onboarding flag to hide setup checklist on stateless deployments by @impoiler in https://github.com/maximhq/bifrost/pull/8885
* fix: adds signature fallback to websockets flow by @akshaydeo in https://github.com/maximhq/bifrost/pull/8863
* adds websockted encrypted content retry by @akshaydeo in https://github.com/maximhq/bifrost/pull/8893
* [feat]: Export filtered logs to CSV from the Logs page by @Shashank2985 in https://github.com/maximhq/bifrost/pull/8611
* feat: propagate opted-in metadata to realtime and Live units by @danpiths in https://github.com/maximhq/bifrost/pull/8903
* fix(databricks): send reasoning_effort as output_config.effort on adaptive-only Claude by @impoiler in https://github.com/maximhq/bifrost/pull/8908
* fix: correct turn lifecycles, logs, and upstream errors by @danpiths in https://github.com/maximhq/bifrost/pull/8904
* fix(databricks): send the output ceiling as max_tokens by @impoiler in https://github.com/maximhq/bifrost/pull/8910
* fix: logstore builds without cgo again by @jeremym-tanium in https://github.com/maximhq/bifrost/pull/8825
* ci: label pull requests by area from changed paths by @akshaydeo in https://github.com/maximhq/bifrost/pull/8781
* [fix]: OpenAI provider - forward stream chunks whose delta carries only extra_content by @Javtor in https://github.com/maximhq/bifrost/pull/8935
* Stop compat from stripping sampling params on datasheet rows without model_parameters by @ege-arhan in https://github.com/maximhq/bifrost/pull/8782
* feat(tracing): add HoldTraceFlush to delay trace export until background writers finish by @Madhuvod in https://github.com/maximhq/bifrost/pull/8764
* fix(routing): skip complexity classification when other rule conditions already decide the outcome by @Madhuvod in https://github.com/maximhq/bifrost/pull/8875
* fix(decisions): leave unprefixed models for routing instead of pinning to OpenAI or Typesafe by @Madhuvod in https://github.com/maximhq/bifrost/pull/8913
* feat(ui): add assigned user email column to virtual keys CSV export by @impoiler in https://github.com/maximhq/bifrost/pull/8945
* feat(helm): add configurable PodDisruptionBudget for cluster mode by @CarlosLanderas in https://github.com/maximhq/bifrost/pull/8911
* perf(logstore): add one-pass usage reads for per-entity rollups by @impoiler in https://github.com/maximhq/bifrost/pull/8747
* feat(warp topics):topic labelling by @kohlivrinda in https://github.com/maximhq/bifrost/pull/7695
* fix(ui): correct STDIO Docker notice to say the official image lacks runtimes by @Pratham-Mishra04 in https://github.com/maximhq/bifrost/pull/8930
* feat(warp topics): topics e2e tests by @kohlivrinda in https://github.com/maximhq/bifrost/pull/7700
* feat(governance): add per-project content logging override that takes precedence over the virtual key by @Pratham-Mishra04 in https://github.com/maximhq/bifrost/pull/8931
* docs(governance): document per-project content logging override by @Pratham-Mishra04 in https://github.com/maximhq/bifrost/pull/8932
* fix: normalize github copilot provider name in datasheet pricing by @sammaji in https://github.com/maximhq/bifrost/pull/8946
* feat: provider level passthrough routes allow list by @TejasGhatte in https://github.com/maximhq/bifrost/pull/8798
* feat: support openai format custom deployments on vertex by @TejasGhatte in https://github.com/maximhq/bifrost/pull/8736
* feat(ui): let owner-governed virtual keys stay editable and confirm assigning owned keys to Virtual MCPs by @BearTS in https://github.com/maximhq/bifrost/pull/8805
* feat(audit): record entity changes from management handlers by @impoiler in https://github.com/maximhq/bifrost/pull/8532
* docs(audit): document event names, diffs, system events and signing keys by @impoiler in https://github.com/maximhq/bifrost/pull/8534
* feat(warp topics):add clustering tables by @kohlivrinda in https://github.com/maximhq/bifrost/pull/8096
* feat(warp topics): write topics to the log store by @kohlivrinda in https://github.com/maximhq/bifrost/pull/8390
* feat(warp topics): file requests under topics as they are indexed by @kohlivrinda in https://github.com/maximhq/bifrost/pull/8391
* feat(warp topics): discover topics from the pool and keep them in shape by @kohlivrinda in https://github.com/maximhq/bifrost/pull/8392
* feat(warp topics): count topics over a window with trends, metrics and scoped reads by @kohlivrinda in https://github.com/maximhq/bifrost/pull/8393
* feat(warp topics): filter logs by topic and link topics to their requests by @kohlivrinda in https://github.com/maximhq/bifrost/pull/8394
* feat(warp topics): group topics into themes by @kohlivrinda in https://github.com/maximhq/bifrost/pull/8395
* feat(warp topics): embed what the person asked, not the agent's reminders by @kohlivrinda in https://github.com/maximhq/bifrost/pull/8396
* feat(warp): prunde dead topic rows and forget deleted logs by @kohlivrinda in https://github.com/maximhq/bifrost/pull/8457
* feat(warp topics): updated ux by @kohlivrinda in https://github.com/maximhq/bifrost/pull/8591
* feat(warp): add config.json support by @kohlivrinda in https://github.com/maximhq/bifrost/pull/8790
* feat(warp):move to responses streaming by @kohlivrinda in https://github.com/maximhq/bifrost/pull/8791
* feat(decisions): add native gpt-6-luna decision support to the Azure provider by @Madhuvod in https://github.com/maximhq/bifrost/pull/8973
* fix: openai ws response.interrupt event by @TejasGhatte in https://github.com/maximhq/bifrost/pull/8743
* fix: gemini continuation token by @TejasGhatte in https://github.com/maximhq/bifrost/pull/8779
* docs(enterprise): document audit log storage move to log store and legacy view by @impoiler in https://github.com/maximhq/bifrost/pull/8965
* fix: openrouter image gen response by @TejasGhatte in https://github.com/maximhq/bifrost/pull/8851
* fix: mid conv tools by @TejasGhatte in https://github.com/maximhq/bifrost/pull/8852
* fix: update display type thinking by @TejasGhatte in https://github.com/maximhq/bifrost/pull/8942
* feat: client settings to skip access-profile user virtual key creation and deletion by @BearTS in https://github.com/maximhq/bifrost/pull/8719
* fix(ui): skip RBAC-dependent queries the signed-in user cannot read by @BearTS in https://github.com/maximhq/bifrost/pull/8862
* feat(helm): add access profile virtual key skip options and Okta syncAllUsers (v2.1.46) by @BearTS in https://github.com/maximhq/bifrost/pull/8720
* fix(deps): resolve open dependabot alerts by @akshaydeo in https://github.com/maximhq/bifrost/pull/8986
* [fix]: Bedrock provider - report a failed connection as a 502 from upstream by @dinhxuanvu in https://github.com/maximhq/bifrost/pull/8971
* [fix]: Bedrock provider - report a mid-stream connection drop as a 502 from upstream by @dinhxuanvu in https://github.com/maximhq/bifrost/pull/8964
* [fix]: Bedrock provider - report tool_use stop_reason on invoke-with-response-stream by @pcbeingused333 in https://github.com/maximhq/bifrost/pull/8633
* fix(anthropic): omit synthetic signature on bridged reasoning blocks by @rxchitrx in https://github.com/maximhq/bifrost/pull/8701
* fixes bedrock response convertor for automatic cache control (#8573) by @akshaydeo in https://github.com/maximhq/bifrost/pull/8597
* fix(bedrock): forward tool strict to Converse toolSpec.strict for Claude by @akshaydeo in https://github.com/maximhq/bifrost/pull/8977
* fix: commit held streams as soon as the upstream produces output by @akshaydeo in https://github.com/maximhq/bifrost/pull/8933
* [fix]: Gemini - send the provider the tool-call id it issued, not the signature-joined one by @Vivek1898 in https://github.com/maximhq/bifrost/pull/8565
* config: keep the runtime classifier on reload and serialize SQLite client-config writes by @akshaydeo in https://github.com/maximhq/bifrost/pull/7940
* fix orphan matview refreshes by @akshaydeo in https://github.com/maximhq/bifrost/pull/8826
* feat(decisions): add native System One (OpenJev) decision support to the Databricks provider by @Madhuvod in https://github.com/maximhq/bifrost/pull/8979
* feat(warp): topics fixes by @kohlivrinda in https://github.com/maximhq/bifrost/pull/8992
* feat(warp topics): add pending-deletes table by @kohlivrinda in https://github.com/maximhq/bifrost/pull/8998
* feat(ui): add view-as user mode to topbar with CORS support for X-Bifrost-View-As header by @impoiler in https://github.com/maximhq/bifrost/pull/8918
* fix(mcp): propagate header credential cache evictions to other processes after writes by @Pratham-Mishra04 in https://github.com/maximhq/bifrost/pull/8996
* fix(mcp/oauth2): propagate token cache evictions to other processes after provider token writes by @Pratham-Mishra04 in https://github.com/maximhq/bifrost/pull/8997
* feat(ui): show fallback chain banner and timeline in log details by @impoiler in https://github.com/maximhq/bifrost/pull/8941
* fix(databricks): keep key aliases unprefixed when a virtual key load balances them by @impoiler in https://github.com/maximhq/bifrost/pull/9039
* fix(models): backfill aliases allowed only by regex entries in list models by @Pratham-Mishra04 in https://github.com/maximhq/bifrost/pull/8987
* fix(vertex): list Model Garden catalog for OAuth keys with deployments or allowlists by @Pratham-Mishra04 in https://github.com/maximhq/bifrost/pull/8988
* feat(oauth2): add extension hooks for custom grant types, discovery metadata, and token validation by @BearTS in https://github.com/maximhq/bifrost/pull/8953
* feat(mcp): Cross App Access (id_jag) profile for token exchange by @BearTS in https://github.com/maximhq/bifrost/pull/8959
* feat(ui): configure the Cross App Access token-exchange profile by @BearTS in https://github.com/maximhq/bifrost/pull/8960
* feat(ui): edit the OAuth issuer URL under Settings > Security by @BearTS in https://github.com/maximhq/bifrost/pull/8993
* improved github workflows by @akshaydeo in https://github.com/maximhq/bifrost/pull/9015
* release approver by @akshaydeo in https://github.com/maximhq/bifrost/pull/9016
* [feat]: add optional browser login to CLI auth print-token by @CallumWayve in https://github.com/maximhq/bifrost/pull/8671
* dependabot fixes by @akshaydeo in https://github.com/maximhq/bifrost/pull/9073
* feat: add terraform module for vLLM, SGLang and Ollama on runpod by @sammaji in https://github.com/maximhq/bifrost/pull/7175
* feat: add native decision support for vllm and sgl providers by @sammaji in https://github.com/maximhq/bifrost/pull/8974
* docs: document native decisions support for vllm and sglang providers by @sammaji in https://github.com/maximhq/bifrost/pull/8975
* fix: closes realtime client socket when upstream ends by @sammaji in https://github.com/maximhq/bifrost/pull/8629
* feat: adds realtime connector for non-websocket providers by @sammaji in https://github.com/maximhq/bifrost/pull/8630
* feat: adds openai realtime translator for bedrock nova sonic by @sammaji in https://github.com/maximhq/bifrost/pull/8631
* fix: send developer messages as system and fold mid conversation system messages by @sammaji in https://github.com/maximhq/bifrost/pull/8884
* feat: add nova sonic realtime support to bedrock provider by @sammaji in https://github.com/maximhq/bifrost/pull/8588
* feat: support disable_store for fireworks responses requests by @sammaji in https://github.com/maximhq/bifrost/pull/8883
* test: add realtime api e2e suite for openai, azure, and bedrock nova sonic by @sammaji in https://github.com/maximhq/bifrost/pull/8632
* chore: add bedrock nova sonic realtime documentation by @sammaji in https://github.com/maximhq/bifrost/pull/8589
* chore: add harness cases for developer role and mid-conversation system message handling by @sammaji in https://github.com/maximhq/bifrost/pull/9028
* [feat]: Add Azure Blob Storage support by @CallumWayve in https://github.com/maximhq/bifrost/pull/9053
* fix(oauth2): match protected resource metadata to the server url by @akshaydeo in https://github.com/maximhq/bifrost/pull/9007
* fix(governance): check models named in server tools by @akshaydeo in https://github.com/maximhq/bifrost/pull/9008
* fix(anthropic): bill advisor iterations by @akshaydeo in https://github.com/maximhq/bifrost/pull/9009
* fix(npx): verify downloaded gateway binary checksum by @akshaydeo in https://github.com/maximhq/bifrost/pull/9010
* fix(warp topics): labels and merges by @kohlivrinda in https://github.com/maximhq/bifrost/pull/9077
* refactor(warp topics): run upkeep as a job in the topics partition by @kohlivrinda in https://github.com/maximhq/bifrost/pull/9137
* test(warp): skip internal filter fields and stub vector-delete retry in upkeep test by @kohlivrinda in https://github.com/maximhq/bifrost/pull/9138
* feat: azure native stt and tts by @TejasGhatte in https://github.com/maximhq/bifrost/pull/8916
* fix: whisper models cost in json forma by @TejasGhatte in https://github.com/maximhq/bifrost/pull/8917
* feat(decisions): support conversation items, JSON parts, and prompt caching in OpenAI decisions by @Madhuvod in https://github.com/maximhq/bifrost/pull/9155
* fix: use speech endpoints field in azure key by @TejasGhatte in https://github.com/maximhq/bifrost/pull/9032
* feat: azure voice live api by @TejasGhatte in https://github.com/maximhq/bifrost/pull/9033
* feat: azure integration routes by @TejasGhatte in https://github.com/maximhq/bifrost/pull/9034
* feat: gpt live api for azure by @TejasGhatte in https://github.com/maximhq/bifrost/pull/9054
* fix: align bedrock nova sonic realtime handling with live api behavior by @sammaji in https://github.com/maximhq/bifrost/pull/9175
* feat(chatgpt-passthrough): support Codex ChatGPT sign-in model list and skip stored OpenAI key by @impoiler in https://github.com/maximhq/bifrost/pull/9074
* docs(codex): document enterprise gateway OAuth sign-in through the identity provider by @impoiler in https://github.com/maximhq/bifrost/pull/9136
* fix(passthrough): record served service tier in logs by @impoiler in https://github.com/maximhq/bifrost/pull/9187
* feat: add terraform module for SageMaker on AWS by @sammaji in https://github.com/maximhq/bifrost/pull/8952
* feat: add aws sagemaker provider by @sammaji in https://github.com/maximhq/bifrost/pull/9002
* feat: add sagemaker passthrough for InvokeEndpoint and response streaming by @sammaji in https://github.com/maximhq/bifrost/pull/9037
* chore: add sagemaker provider config to helm chart and config schemas by @sammaji in https://github.com/maximhq/bifrost/pull/9003
* docs: add sagemaker provider key config to openapi schema and e2e tests by @sammaji in https://github.com/maximhq/bifrost/pull/9004
* feat(helm): expose PostgreSQL tuning and PVC attributes by @CarlosLanderas in https://github.com/maximhq/bifrost/pull/9186
* fix(ui): tidy logs header menu and hidden-content error text by @impoiler in https://github.com/maximhq/bifrost/pull/9195
* feat(warp): helm updates by @kohlivrinda in https://github.com/maximhq/bifrost/pull/9179
* fix: sweep abandoned oauth_configs rows from never-completed MCP OAuth installs by @impoiler in https://github.com/maximhq/bifrost/pull/8887
* test(warp): fix unit test by @kohlivrinda in https://github.com/maximhq/bifrost/pull/9191
* fix: delta in responses stream event by @TejasGhatte in https://github.com/maximhq/bifrost/pull/9161
* fix: regex pattern model capability drop by @TejasGhatte in https://github.com/maximhq/bifrost/pull/9193
* chore: update mcp-go to v1.3.0 to support newer protocols by @roroghost17 in https://github.com/maximhq/bifrost/pull/9058
* adds created at field in model catalog by @akshaydeo in https://github.com/maximhq/bifrost/pull/9190
* fix: remove endpoint checks for deployments by @TejasGhatte in https://github.com/maximhq/bifrost/pull/9199
* refactor: move MCP initialization handling to mcp-go by @roroghost17 in https://github.com/maximhq/bifrost/pull/9059
* perf: reuse HTTP connections and pin legacy protocol version for per-call MCP clients by @roroghost17 in https://github.com/maximhq/bifrost/pull/9060
* fix: only treat a 404 as a dead MCP session on protocol revisions that have sessions by @roroghost17 in https://github.com/maximhq/bifrost/pull/9061
* feat: add upstream notifications support in MCP servers by @roroghost17 in https://github.com/maximhq/bifrost/pull/9062
* fix: clear error when an upstream MCP server returns input_required by @roroghost17 in https://github.com/maximhq/bifrost/pull/9063
* feat: support CIMD client registration for upstream MCP OAuth by @roroghost17 in https://github.com/maximhq/bifrost/pull/9064
* feat: support CIMD clients in the MCP OAuth server by @roroghost17 in https://github.com/maximhq/bifrost/pull/9065
* feat(chatgpt-passthrough): Codex ChatGPT sign-in and Responses stream end on main by @impoiler in https://github.com/maximhq/bifrost/pull/9196
* feat: add a global and per-server MCP max protocol version setting by @roroghost17 in https://github.com/maximhq/bifrost/pull/9066
* feat: discover MCP server resources and prompts by @roroghost17 in https://github.com/maximhq/bifrost/pull/9067
* feat: serve upstream MCP prompts and resources through MCP gateway by @roroghost17 in https://github.com/maximhq/bifrost/pull/9068
* feat: validate the authorization server issuer for upstream MCP OAuth by @roroghost17 in https://github.com/maximhq/bifrost/pull/9069
* feat: support MCP tool output schemas, titles, icons and multimodal results by @roroghost17 in https://github.com/maximhq/bifrost/pull/9070
* feat: log MCP prompt and resource reads by @roroghost17 in https://github.com/maximhq/bifrost/pull/9071
* feat(core): relays to non-LLM APIs and the relay plugin hooks by @BearTS in https://github.com/maximhq/bifrost/pull/9168
* feat(framework): add relay config store, virtual key grants, relay logs, and async job settlement by @BearTS in https://github.com/maximhq/bifrost/pull/9169
* feat(governance): relay access grants, budgets, and logging for relay calls by @BearTS in https://github.com/maximhq/bifrost/pull/9170
* feat: add Relays for proxying non-LLM APIs with usage billing and virtual key grants by @BearTS in https://github.com/maximhq/bifrost/pull/9171
* feat(ui): dashboard relays page, access changes and docs by @BearTS in https://github.com/maximhq/bifrost/pull/9174
* feat(relay): log metadata and route-matched headers on relay logs instead of all headers by @BearTS in https://github.com/maximhq/bifrost/pull/9200
* [fix]: anthropic - render the required message_delta frame and report only the usage the upstream sent by @valentinyanakiev in https://github.com/maximhq/bifrost/pull/7896
* [fix]: OpenAI provider - keep id and s
Repository README (current repository documentation, not release changes)
# Bifrost AI Gateway
[](https://discord.gg/exN5KAydbU)
[](https://codecov.io/gh/maximhq/bifrost)

[](https://app.getpostman.com/run-collection/31642484-2ba0e658-4dcd-49f4-845a-0c7ed745b916?action=collection%2Ffork&source=rip_markdown&collection-url=entityId%3D31642484-2ba0e658-4dcd-49f4-845a-0c7ed745b916%26entityType%3Dcollection%26workspaceId%3D63e853c8-9aec-477f-909c-7f02f543150e)
[](https://artifacthub.io/packages/search?repo=bifrost)
[](https://app.codspeed.io/maximhq/bifrost?utm_source=badge)
[](LICENSE)
## The fastest way to build AI applications that never go down
Bifrost is a high-performance AI gateway that unifies access to 23+ providers (OpenAI, Anthropic, AWS Bedrock, Google Vertex, and more) through a single OpenAI-compatible API. Deploy in seconds with zero configuration and get automatic failover, load balancing, semantic caching, and enterprise-grade features.
## Quick Start

**Go from zero to production-ready AI gateway in under a minute.**
**Step 1:** Start Bifrost Gateway
```bash
# Install and run locally
npx -y @maximhq/bifrost
# Or use Docker
docker run -p 8080:8080 maximhq/bifrost
```
**Step 2:** Configure via Web UI
```bash
# Open the built-in web interface
open http://localhost:8080
```
**Step 3:** Make your first API call
```bash
curl -X POST http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-4o-mini",
"messages": [{"role": "user", "content": "Hello, Bifrost!"}]
}'
```
**That's it!** Your AI gateway is running with a web interface for visual configuration, real-time monitoring, and analytics.
**Complete Setup Guides:**
- [Gateway Setup](https://docs.getbifrost.ai/quickstart/gateway/setting-up) - HTTP API deployment
- [Go SDK Setup](https://docs.getbifrost.ai/quickstart/go-sdk/setting-up) - Direct integration
---
## Enterprise Deployments
Bifrost supports enterprise-grade, private deployments for teams running production AI systems at scale.
In addition to private networking, custom security controls, and governance, enterprise deployments unlock advanced capabilities including adaptive load balancing, clustering, guardrails, MCP gateway, and other features designed for enterprise-grade scale and reliability.
Explore enterprise capabilities
---
## Key Features
### Core Infrastructure
- **[Unified Interface](https://docs.getbifrost.ai/providers/supported-providers/overview)** - Single OpenAI-compatible API for all providers
- **[Multi-Provider Support](https://docs.getbifrost.ai/quickstart/gateway/provider-configuration)** - OpenAI, Anthropic, AWS Bedrock, Google Vertex, Azure, Cerebras, Cohere, Mistral, Ollama, Groq, and more
- **[Automatic Fallbacks](https://docs.getbifrost.ai/features/retries-and-fallbacks)** - Seamless failover between providers and models with zero downtime
- **[Load Balancing](https://docs.getbifrost.ai/features/retries-and-fallbacks)** - Intelligent request distribution across multiple API keys and providers
### Advanced Features
- **[Model Context Protocol (MCP)](https://docs.getbifrost.ai/mcp/overview)** - Enable AI models to use external tools (filesystem, web search, databases)
- **[Semantic Caching](https://docs.getbifrost.ai/features/semantic-caching)** - Intelligent response caching based on semantic similarity to reduce costs and latency
- **[Multimodal Support](https://docs.getbifrost.ai/quickstart/gateway/streaming)** - Support for text, images, audio, and streaming, all behind a common interface.
- **[Custom Plugins](https://docs.getbifrost.ai/enterprise/custom-plugins)** - Extensible middleware architecture for analytics, monitoring, and custom logic
- **[Governance](https://docs.getbifrost.ai/features/governance/virtual-keys)** - Usage tracking, rate limiting, and fine-grained access control
### Enterprise & Security
- **[Budget Management](https://docs.getbifrost.ai/features/governance/budget-and-limits)** - Hierarchical cost control with virtual keys, teams, and customer budgets
- **[User Provisioning (OIDC)](https://docs.getbifrost.ai/enterprise/user-provisioning)** - OAuth 2.0 / OIDC login with background directory sync for teams, roles, and business units
- **[Observability](https://docs.getbifrost.ai/features/observability/default)** - Native Prometheus metrics, distributed tracing, and comprehensive logging
- **[Secrets Management](https://docs.getbifrost.ai/deployment-guides/config-json#environment-variable-references)** - Secure API key management with environment variables and deployment secrets
### Developer Experience
- **[Zero-Config Startup](https://docs.getbifrost.ai/quickstart/gateway/setting-up)** - Start immediately with dynamic provider configuration
- **[Drop-in Replacement](https://docs.getbifrost.ai/features/drop-in-replacement)** - Replace OpenAI/Anthropic/GenAI APIs with one line of code
- **[SDK Integrations](https://docs.getbifrost.ai/integrations/what-is-an-integration)** - Native support for popular AI SDKs with zero code changes
- **[Configuration Flexibility](https://docs.getbifrost.ai/quickstart/gateway/provider-configuration)** - Web UI, API-driven, or file-based configuration options
---
## Repository Structure
Bifrost uses a modular architecture for maximum flexibility:
```text
bifrost/
├── npx/ # NPX script for easy installation
├── core/ # Core functionality and shared components
│ ├── providers/ # Provider-specific implementations (OpenAI, Anthropic, etc.)
│ ├── schemas/ # Interfaces and structs used throughout Bifrost
│ └── bifrost.go # Main Bifrost implementation
├── framework/ # Framework components for data persistence
│ ├── configstore/ # Configuration storage backends
│ ├── logstore/ # Request logging storage backends
│ └── vectorstore/ # Vector storages
├── transports/ # HTTP gateway and other interface layers
│ └── bifrost-http/ # HTTP transport implementation
├── ui/ # Web interface for HTTP gateway
├── plugins/ # Extensible plugin system
│ ├── governance/ # Budget management and access control
│ ├── jsonparser/ # JSON parsing and manipulation utilities
│ ├── logging/ # Request logging and analytics
│ ├── maxim/ # Maxim's observability integration
│ ├── mocker/ # Mock responses for testing and development
│ ├── semanticcache/ # Intelligent response caching
│ └── telemetry/ # Monitoring and observability
├── docs/ # Documentation and guides
└── tests/ # Comprehensive test suites
```
---
## Getting Started Options
Choose the deployment method that fits your needs:
### 1. Gateway (HTTP API)
**Best for:** Language-agnostic integration, microservices, and production deployments
```bash
# NPX - Get started in 30 seconds
npx -y @maximhq/bifrost
# Docker - Production ready
docker run -p 8080:8080 -v $(pwd)/data:/app/data maximhq/bifrost
```
**Features:** Web UI, real-time monitoring, multi-provider management, zero-config startup
**Learn More:** [Gateway Setup Guide](https://docs.getbifrost.ai/quickstart/gateway/setting-up)
### 2. Go SDK
**Best for:** Direct Go integration with maximum performance and control
```bash
go get github.com/maximhq/bifrost/core
```
**Features:** Native Go APIs, embedded deployment, custom middleware integration
**Learn More:** [Go SDK Guide](https://docs.getbifrost.ai/quickstart/go-sdk/setting-up)
### 3. Drop-in Replacement
**Best for:** Migrating existing applications with zero code changes
```diff
# OpenAI SDK
- base_url = "https://api.openai.com"
+ base_url = "http://localhost:8080/openai"
# Anthropic SDK
- base_url = "https://api.anthropic.com"
+ base_url = "http://localhost:8080/anthropic"
# Google GenAI SDK
- api_endpoint = "https://generativelanguage.googleapis.com"
+ api_endpoint = "http://localhost:8080/genai"
```
**Learn More:** [Integration Guides](https://docs.getbifrost.ai/integrations/what-is-an-integration)
---
## Performance
Bifrost adds virtually zero overhead to your AI requests. In sustained 5,000 RPS benchmarks, the gateway added only **11 µs** of overhead per request.
| Metric | t3.medium | t3.xlarge | Improvement |
|--------|-----------|-----------|-------------|
| Added latency (Bifrost overhead) | 59 µs | **11 µs** | **-81%** |
| Success rate @ 5k RPS | 100% | 100% | No failed requests |
| Avg. queue wait time | 47 µs | **1.67 µs** | **-96%** |
| Avg. request latency (incl. provider) | 2.12 s | **1.61 s** | **-24%** |
**Key Performance Highlights:**
- **Perfect Success Rate** - 100% request success rate even at 5k RPS
- **Minimal Overhead** - Less than 15 µs additional latency per request
- **Efficient Queuing** - Sub-microsecond average wait times
- **Fast Key Selection** - ~10 ns to pick weighted API keys
**Complete Benchmarks:** [Performance Analysis](https://docs.getbifrost.ai/benchmarking/getting-started)
---
## Documentation
**Complete Documentation:** [https://docs.getbifrost.ai](https://docs.getbifrost.ai)
### Quick Start
- [Gateway Setup](https://docs.getbifrost.ai/quickstart/gateway/setting-up) - HTTP API deployment in 30 seconds
- [Go SDK Setup](https://docs.getbifrost.ai/quickstart/go-sdk/setting-up) - Direct Go integration
- [Provider Configuration](https://docs.getbifrost.ai/quickstart/gateway/provider-configuration) - Multi-provider setup
### Features
- [Multi-Provider Support](https://docs.getbifrost.ai/providers/supported-providers/overview) - Single API for all providers
- [MCP Integration](https://docs.getbifrost.ai/mcp/overview) - External tool calling
- [Semantic Caching](https://docs.getbifrost.ai/features/semantic-caching) - Intelligent response caching
- [Fallbacks & Load Balancing](https://docs.getbifrost.ai/features/retries-and-fallbacks) - Reliability features
- [Budget Management](https://docs.getbifrost.ai/features/governance/budget-and-limits) - Cost control and governance
### Integrations
- [OpenAI SDK](https://docs.getbifrost.ai/integrations/openai-sdk/overview) - Drop-in OpenAI replacement
- [Anthropic SDK](https://docs.getbifrost.ai/integrations/anthropic-sdk/overview) - Drop-in Anthropic replacement
- [AWS Bedrock SDK](https://docs.getbifrost.ai/integrations/bedrock-sdk/overview) - AWS Bedrock integration
- [Google GenAI SDK](https://docs.getbifrost.ai/integrations/genai-sdk/overview) - Drop-in GenAI replacement
- [LiteLLM SDK](https://docs.getbifrost.ai/integrations/litellm-sdk) - LiteLLM integration
- [LangChain SDK](https://docs.getbifrost.ai/integrations/langchain-sdk) - LangChain integration
### Enterprise
- [Custom Plugins](https://docs.getbifrost.ai/enterprise/custom-plugins) - Extend functionality
- [Clustering](https://docs.getbifrost.ai/enterprise/clustering) - Multi-node deployment
- [Secrets Management](https://docs.getbifrost.ai/deployment-guides/config-json#environment-variable-references) - Secure key management
- [Production Deployment](https://docs.getbifrost.ai/deployment-guides/k8s) - Scaling and monitoring
---
## Need Help?
**[Join our Discord](https://discord.gg/exN5KAydbU)** for community support and discussions.
Get help with:
- Quick setup assistance and troubleshooting
- Best practices and configuration tips
- Community discussions and support
- Real-time help with integrations
---
## Contributing
We welcome contributions of all kinds! See our [Contributing Guide](https://docs.getbifrost.ai/contributing/setting-up-repo) for:
- Setting up the development environment
- Code conventions and best practices
- How to submit pull requests
- Building and testing locally
For development requirements and build instructions, see our [Development Setup Guide](https://docs.getbifrost.ai/contributing/setting-up-repo#development-environment-setup).
---
## License
This project is licensed under the Apache 2.0 License - see the [LICENSE](LICENSE) file for details.
Built with ❤️ by [Maxim](https://github.com/maximhq)