Skip to content

Bump ruby_llm from 1.16.0 to 2.0.0 - #255

Open
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/bundler/ruby_llm-2.0.0
Open

dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/bundler/ruby_llm-2.0.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Sep 23, 2026

Copy link
Copy Markdown
Contributor

Bumps ruby_llm from 1.16.0 to 2.0.0.

Release notes

Sourced from ruby_llm's releases.

RubyLLM 2.0.0

RubyLLM 2.0 brings more of each provider's API to Ruby and Rails, with new AI operations, explicit conversation controls, and agents that can resume across requests and jobs.

Highlights

  • Seventeen built-in providers, one Ruby API. New integrations include Cohere, Deepgram, ElevenLabs, and Ollama Cloud. Providers and protocols are separate, so integrations can reuse existing wire formats.
  • Agents that wait for you. Human tool approvals, cancellation, and step-by-step loop control work in plain Ruby and persist across Rails jobs.
  • Video, speech, documents, and search. Generate video and speech, extract text with OCR, rerank search results, and work with multimodal embeddings, files, batches, and hosted research.
  • More capable conversations. Typed citations, provider-hosted tools and remote MCP, thinking controls, prompt caching, model fallbacks, and context compaction.
  • Usage you can account for. Track each provider attempt, including retries and fallbacks, with normalized tokens and costs and a historical Rails usage ledger.
  • A consistent Rails integration. Your app owns chats and messages; RubyLLM maintains its supporting tables. Persisted agents use the same public API and work with Active Storage, Action Text, Active Job, and Hotwire.
bundle add ruby_llm --version 2.0.0

Upgrading from 1.x? Read the upgrade guide for API changes and phased Rails migrations. Start with What's New in 2.0 for working examples, or continue below for the detailed changes and credits.

New

Providers and protocols

  • Seventeen providers are built in. Cohere, Deepgram, ElevenLabs, and Ollama Cloud join OpenAI, Anthropic, Gemini, Vertex AI, Bedrock, Azure, xAI, DeepSeek, Mistral, OpenRouter, Perplexity, Ollama, and GPUStack. By @​crmne. ([a5dbcda9], [71a69a07])
  • Providers can reuse protocols, and one provider can offer several. Providers own authentication, endpoints, catalogs, and service settings. Protocols own requests, parsing, streaming, and error normalization. Model and operation selection pick the right protocol; protocol: provides an explicit override. By @​crmne. ([d398354d], [3400654b])
  • The provider coverage comparison is much larger. The interactive coverage matrix compares selected shared features with 1.16 and links each cell to sources, implementation, validation, and restrictions. By @​crmne. ([4683f905], [6051a544])
  • OpenAI uses Responses by default. Chat Completions remains selectable. Responses adds hosted tools, native reasoning replay, citations, file references, and compaction; speech, file transcription, Files, chat batches, and embedding batches use their own operations. Exact request counting uses the Responses input-token endpoint. By @​crmne; thanks @​mastraus, @​andrew-woblavobla, @​tpaulshippy, @​khasinski, @​afurm and @​nbelzer. ([0875ce2d], [18d3622e], #213, #785, #770, #786)
  • Anthropic gets document citations, hosted tools, files, batches, and context compaction. Web search, web fetch, code execution, and remote MCP use named provider tools, preserve their native results, and continue paused provider turns. Caching and token counting have Ruby APIs. By @​crmne. ([f6c0e660], [18d3622e])
  • Gemini gains managed caches, multimodal embeddings, media generation, and batches. There are shared aliases for Search, URL context, code execution, Maps grounding, and prepared file-search stores. The optional Interactions protocol adds stateless model conversations and remote MCP; dedicated and streamed file transcription return typed results. Veo generation and extension use the video API. By @​crmne. ([fe1f0c5b], [18d3622e])
  • Vertex AI routes hosted models through their native protocols. Gemini, Anthropic, Mistral, and compatible partner models share one provider configuration. The expanded operations include Imagen and Gemini images, Veo video, speech, transcription, multimodal embeddings, managed caches, GCS files, chat and embedding batches, Discovery Engine reranking, prepared Search datastores, and hosted Deep Research. Some routes require additional APIs, deployments, or storage configuration. By @​crmne; thanks @​crhbjk2zn2. ([239dbef5], [18d3622e], #659)
  • Bedrock serves Converse and Mantle models through the appropriate protocols. It adds real inference-profile discovery, credential providers, multimodal input and embeddings, citations, caching, hosted tools, Stability image generation and editing, Luma video jobs, Voxtral transcription, reranking, configured guardrail moderation, S3 files, and chat and embedding batches. Support follows the specific endpoint and model; batch and video jobs need your storage resources. By @​crmne; thanks @​martinemde, @​jscheid and @​dlackty. ([44f3cc09], [18d3622e], #754, #454, #861)
  • Azure covers more of both OpenAI and Foundry. Responses, image generation and edits, speech, transcription, Sora video, files, and chat batches have Azure routing. Hosted partner protocols include Cohere embeddings and reranking, while supported Responses deployments expose hosted tools and compaction. Custom deployment names, resource URLs, API versions, and model availability remain part of Azure setup. By @​crmne. ([8fcd3802], [18d3622e])
  • xAI uses its Responses dialect and adds media, files, and batches. Shared APIs cover web and X search, code execution, file search, MCP, images and image edits, video generation/editing/extension, speech, transcription, tokenization, and manual compaction. Provider-reported request costs are retained. By @​crmne. ([28a8ff2b], [18d3622e])
  • DeepSeek adds an optional Responses protocol. Chat Completions remains the default. The integration handles its thinking controls, structured output, supported image inputs and image-file uploads with expiry. The built-in :web_search alias raises UnsupportedServerToolError because the current endpoint silently ignores it. Its Files API does not provide downloads. By @​crmne. ([4993bd47], [18d3622e])
  • Cohere has a native v2 integration. Chat and streaming include tools, schemas, thinking, and citations. Standalone operations cover text and image embeddings, reranking, transcription, image OCR through Parse, datasets, chat batches, and embedding batches. Parse accepts images; PDF parsing is not claimed. By @​crmne. ([a5dbcda9], [18d3622e])
  • Mistral expands beyond compatible chat. OCR, speech, diarized and streamed transcription, Files, chat and embedding batches, and stateless Conversations hosted tools have dedicated handling. Hosted image generation also backs paint; generated files are downloadable. By @​crmne. ([b6575414], [18d3622e])
  • OpenRouter gains an optional Responses route and broader media and retrieval support. That includes video input and generation, speech, transcription, multimodal embeddings, reranking, files, cache boundaries, compression, hosted shell execution, and exact provider-reported costs. MCP preserves the records OpenRouter actually returns and requires approvals to be disabled. Its batch integration remains subject to the provider's beta rollout. By @​crmne. ([390a9a42], [18d3622e])
  • Perplexity citations and embeddings use the provider's actual response and endpoint formats. An explicitly selected Router Chat Completions protocol adds function tools, tool controls, and cache boundaries for accounts with preview access. Generated-file downloads work from an existing file identifier. Sonar remains the default. By @​crmne. ([09546082], [18d3622e])
  • Deepgram and ElevenLabs provide speech and transcription, including streamed results. Existing recordings can be transcribed over their WebSocket APIs into typed chunks and a final transcript. ElevenLabs also has image/video generation, reference-media handling, and media-asset storage for accounts with the required access. By @​crmne. ([757129c6], [18d3622e])
  • Ollama Cloud has its own credentials and provider identity. It reuses the Ollama chat dialect for the cloud models' supported vision, thinking, and tools. Local Ollama gains audio attachment rendering for audio-capable models and a sufficiently recent server. By @​crmne; thanks @​dalton-cole. ([16b08a15], [18d3622e], #740)
  • GPUStack uses its current compatible APIs and model catalog. Depending on the deployed backend, it supports audio/video input, multimodal embeddings, reranking, speech, streamed transcription, Responses, and proxy-based tokenization and video jobs. Model-proxy setup and backend capabilities determine availability; deployment-managed MCP has explicit restrictions. By @​crmne. ([b0aa9a9b], [18d3622e])

Conversations, agents, and tools

  • Tools can wait for a human decision. Declare requires_approval, inspect awaiting_approval? and pending_approvals, then approve or deny before continuing. Denials become tool results the model can respond to. The same decisions persist across Rails requests and jobs. By @​crmne; thanks @​jondavidschober. ([c460d77b], #503)
  • Your application can drive the conversation one step at a time. ask_later stages input, generate requests one response, run_tools executes pending calls, and step advances one generation or tool round. complete keeps the automatic loop. Partially completed tool rounds can resume without rerunning results already in the transcript. By @​crmne; thanks @​jbourassa, @​ramontayag and @​mtoneil. ([bfbb2d52], [ac87f5ab], #635, #690, #681)
  • A conversation can be cancelled from another request or process. cancel and cancelled? work on plain chats, agents, and persisted records. Rails jobs poll outside the query cache, so they see a cancellation written elsewhere. By @​crmne; thanks @​sh1nj1. ([503d5284], [99a30606], #607)
  • Provider-hosted tools have one registration API. with_provider_tools and the Agent provider_tools macro enable named web search, web fetch, code execution, file search, image generation, and MCP integrations where available. ServerToolCall preserves native calls and results, including streamed output and follow-up history. Prepared search indexes remain provider resources you configure separately. By @​crmne. ([47a9dfb6], [18d3622e])
  • Remote MCP approvals share the normal approval flow where the provider supports them. remote? distinguishes a provider-executed request from a local Ruby tool, and the call ID identifies the pending decision. A remote call never dispatches a same-named Ruby tool. Providers without an approval lifecycle reject unsupported approval settings. By @​crmne. ([18d3622e])
  • Citations are typed values across documents, tool search results, and the web. Read source URLs, titles, cited passages, page/character positions, file identifiers, and filenames when supplied. Citations survive streaming and Rails persistence. SearchResults lets your own retrieval tools return citable documents. By @​crmne; thanks @​db0sch. ([f6c0e660], [18d3622e], #52)
  • Thinking can use the model's defaults or explicit controls. with_thinking enables it, with_thinking(false) disables it where allowed, and effort:, budget:, and display: express supported preferences. Defaults follow model switches and fallbacks; summaries are available through response.thinking. By @​crmne; thanks @​AlexanderMamrenko. ([b6dd4ca8], [c4f9c05b], #714)

... (truncated)

Changelog

Sourced from ruby_llm's changelog.

RubyLLM 2.0 brings more of each provider's API to Ruby and Rails, with new AI operations, explicit conversation controls, and agents that can resume across requests and jobs.

Highlights

  • Seventeen built-in providers, one Ruby API. New integrations include Cohere, Deepgram, ElevenLabs, and Ollama Cloud. Providers and protocols are separate, so integrations can reuse existing wire formats.
  • Agents that wait for you. Human tool approvals, cancellation, and step-by-step loop control work in plain Ruby and persist across Rails jobs.
  • Video, speech, documents, and search. Generate video and speech, extract text with OCR, rerank search results, and work with multimodal embeddings, files, batches, and hosted research.
  • More capable conversations. Typed citations, provider-hosted tools and remote MCP, thinking controls, prompt caching, model fallbacks, and context compaction.
  • Usage you can account for. Track each provider attempt, including retries and fallbacks, with normalized tokens and costs and a historical Rails usage ledger.
  • A consistent Rails integration. Your app owns chats and messages; RubyLLM maintains its supporting tables. Persisted agents use the same public API and work with Active Storage, Action Text, Active Job, and Hotwire.
bundle add ruby_llm --version 2.0.0

Upgrading from 1.x? Read the upgrade guide for API changes and phased Rails migrations. Start with What's New in 2.0 for working examples, or continue below for the detailed changes and credits.

New

Providers and protocols

  • Seventeen providers are built in. Cohere, Deepgram, ElevenLabs, and Ollama Cloud join OpenAI, Anthropic, Gemini, Vertex AI, Bedrock, Azure, xAI, DeepSeek, Mistral, OpenRouter, Perplexity, Ollama, and GPUStack. By @​crmne. ([a5dbcda9], [71a69a07])
  • Providers can reuse protocols, and one provider can offer several. Providers own authentication, endpoints, catalogs, and service settings. Protocols own requests, parsing, streaming, and error normalization. Model and operation selection pick the right protocol; protocol: provides an explicit override. By @​crmne. ([d398354d], [3400654b])
  • The provider coverage comparison is much larger. The interactive coverage matrix compares selected shared features with 1.16 and links each cell to sources, implementation, validation, and restrictions. By @​crmne. ([4683f905], [6051a544])
  • OpenAI uses Responses by default. Chat Completions remains selectable. Responses adds hosted tools, native reasoning replay, citations, file references, and compaction; speech, file transcription, Files, chat batches, and embedding batches use their own operations. Exact request counting uses the Responses input-token endpoint. By @​crmne; thanks @​mastraus, @​andrew-woblavobla, @​tpaulshippy, @​khasinski, @​afurm and @​nbelzer. ([0875ce2d], [18d3622e], #213, #785, #770, #786)
  • Anthropic gets document citations, hosted tools, files, batches, and context compaction. Web search, web fetch, code execution, and remote MCP use named provider tools, preserve their native results, and continue paused provider turns. Caching and token counting have Ruby APIs. By @​crmne. ([f6c0e660], [18d3622e])
  • Gemini gains managed caches, multimodal embeddings, media generation, and batches. There are shared aliases for Search, URL context, code execution, Maps grounding, and prepared file-search stores. The optional Interactions protocol adds stateless model conversations and remote MCP; dedicated and streamed file transcription return typed results. Veo generation and extension use the video API. By @​crmne. ([fe1f0c5b], [18d3622e])
  • Vertex AI routes hosted models through their native protocols. Gemini, Anthropic, Mistral, and compatible partner models share one provider configuration. The expanded operations include Imagen and Gemini images, Veo video, speech, transcription, multimodal embeddings, managed caches, GCS files, chat and embedding batches, Discovery Engine reranking, prepared Search datastores, and hosted Deep Research. Some routes require additional APIs, deployments, or storage configuration. By @​crmne; thanks @​crhbjk2zn2. ([239dbef5], [18d3622e], #659)
  • Bedrock serves Converse and Mantle models through the appropriate protocols. It adds real inference-profile discovery, credential providers, multimodal input and embeddings, citations, caching, hosted tools, Stability image generation and editing, Luma video jobs, Voxtral transcription, reranking, configured guardrail moderation, S3 files, and chat and embedding batches. Support follows the specific endpoint and model; batch and video jobs need your storage resources. By @​crmne; thanks @​martinemde, @​jscheid and @​dlackty. ([44f3cc09], [18d3622e], #754, #454, #861)
  • Azure covers more of both OpenAI and Foundry. Responses, image generation and edits, speech, transcription, Sora video, files, and chat batches have Azure routing. Hosted partner protocols include Cohere embeddings and reranking, while supported Responses deployments expose hosted tools and compaction. Custom deployment names, resource URLs, API versions, and model availability remain part of Azure setup. By @​crmne. ([8fcd3802], [18d3622e])
  • xAI uses its Responses dialect and adds media, files, and batches. Shared APIs cover web and X search, code execution, file search, MCP, images and image edits, video generation/editing/extension, speech, transcription, tokenization, and manual compaction. Provider-reported request costs are retained. By @​crmne. ([28a8ff2b], [18d3622e])
  • DeepSeek adds an optional Responses protocol. Chat Completions remains the default. The integration handles its thinking controls, structured output, supported image inputs and image-file uploads with expiry. The built-in :web_search alias raises UnsupportedServerToolError because the current endpoint silently ignores it. Its Files API does not provide downloads. By @​crmne. ([4993bd47], [18d3622e])
  • Cohere has a native v2 integration. Chat and streaming include tools, schemas, thinking, and citations. Standalone operations cover text and image embeddings, reranking, transcription, image OCR through Parse, datasets, chat batches, and embedding batches. Parse accepts images; PDF parsing is not claimed. By @​crmne. ([a5dbcda9], [18d3622e])
  • Mistral expands beyond compatible chat. OCR, speech, diarized and streamed transcription, Files, chat and embedding batches, and stateless Conversations hosted tools have dedicated handling. Hosted image generation also backs paint; generated files are downloadable. By @​crmne. ([b6575414], [18d3622e])
  • OpenRouter gains an optional Responses route and broader media and retrieval support. That includes video input and generation, speech, transcription, multimodal embeddings, reranking, files, cache boundaries, compression, hosted shell execution, and exact provider-reported costs. MCP preserves the records OpenRouter actually returns and requires approvals to be disabled. Its batch integration remains subject to the provider's beta rollout. By @​crmne. ([390a9a42], [18d3622e])
  • Perplexity citations and embeddings use the provider's actual response and endpoint formats. An explicitly selected Router Chat Completions protocol adds function tools, tool controls, and cache boundaries for accounts with preview access. Generated-file downloads work from an existing file identifier. Sonar remains the default. By @​crmne. ([09546082], [18d3622e])
  • Deepgram and ElevenLabs provide speech and transcription, including streamed results. Existing recordings can be transcribed over their WebSocket APIs into typed chunks and a final transcript. ElevenLabs also has image/video generation, reference-media handling, and media-asset storage for accounts with the required access. By @​crmne. ([757129c6], [18d3622e])
  • Ollama Cloud has its own credentials and provider identity. It reuses the Ollama chat dialect for the cloud models' supported vision, thinking, and tools. Local Ollama gains audio attachment rendering for audio-capable models and a sufficiently recent server. By @​crmne; thanks @​dalton-cole. ([16b08a15], [18d3622e], #740)
  • GPUStack uses its current compatible APIs and model catalog. Depending on the deployed backend, it supports audio/video input, multimodal embeddings, reranking, speech, streamed transcription, Responses, and proxy-based tokenization and video jobs. Model-proxy setup and backend capabilities determine availability; deployment-managed MCP has explicit restrictions. By @​crmne. ([b0aa9a9b], [18d3622e])

Conversations, agents, and tools

  • Tools can wait for a human decision. Declare requires_approval, inspect awaiting_approval? and pending_approvals, then approve or deny before continuing. Denials become tool results the model can respond to. The same decisions persist across Rails requests and jobs. By @​crmne; thanks @​jondavidschober. ([c460d77b], #503)
  • Your application can drive the conversation one step at a time. ask_later stages input, generate requests one response, run_tools executes pending calls, and step advances one generation or tool round. complete keeps the automatic loop. Partially completed tool rounds can resume without rerunning results already in the transcript. By @​crmne; thanks @​jbourassa, @​ramontayag and @​mtoneil. ([bfbb2d52], [ac87f5ab], #635, #690, #681)
  • A conversation can be cancelled from another request or process. cancel and cancelled? work on plain chats, agents, and persisted records. Rails jobs poll outside the query cache, so they see a cancellation written elsewhere. By @​crmne; thanks @​sh1nj1. ([503d5284], [99a30606], #607)
  • Provider-hosted tools have one registration API. with_provider_tools and the Agent provider_tools macro enable named web search, web fetch, code execution, file search, image generation, and MCP integrations where available. ServerToolCall preserves native calls and results, including streamed output and follow-up history. Prepared search indexes remain provider resources you configure separately. By @​crmne. ([47a9dfb6], [18d3622e])
  • Remote MCP approvals share the normal approval flow where the provider supports them. remote? distinguishes a provider-executed request from a local Ruby tool, and the call ID identifies the pending decision. A remote call never dispatches a same-named Ruby tool. Providers without an approval lifecycle reject unsupported approval settings. By @​crmne. ([18d3622e])
  • Citations are typed values across documents, tool search results, and the web. Read source URLs, titles, cited passages, page/character positions, file identifiers, and filenames when supplied. Citations survive streaming and Rails persistence. SearchResults lets your own retrieval tools return citable documents. By @​crmne; thanks @​db0sch. ([f6c0e660], [18d3622e], #52)
  • Thinking can use the model's defaults or explicit controls. with_thinking enables it, with_thinking(false) disables it where allowed, and effort:, budget:, and display: express supported preferences. Defaults follow model switches and fallbacks; summaries are available through response.thinking. By @​crmne; thanks @​AlexanderMamrenko. ([b6dd4ca8], [c4f9c05b], #714)
  • Fallback models can recover from transient provider or network failures. with_fallbacks preserves the conversation's tools, schema, and settings, with before_fallback and after_fallback hooks. Usage includes every attempt. Fallbacks need credentials and models that support the requested features. By @​crmne; thanks @​kieranklaassen. ([ea16d66c], [ac87f5ab], #621, #674)

... (truncated)

Commits
  • 3066297 Rename server tool configuration to provider tools
  • 883e366 Refresh release cassettes and fix disabled tools
  • e7bd2c9 Prepare RubyLLM 2.0.0
  • e58eee2 Preload embedded Action Text blobs (#939)
  • c4484a4 Add detached open-report triage backlog
  • 4f66239 Follow tested Copilot Triage releases automatically
  • 647b6cb Update Copilot Triage to v0.6.0
  • 0506795 Preload Action Text content for persisted chats (#932)
  • fb9e158 Honor inflections in generated migration class names
  • 2286200 Drop another provider's thinking on replay (#935)
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [ruby_llm](https://github.com/crmne/ruby_llm) from 1.16.0 to 2.0.0.
- [Release notes](https://github.com/crmne/ruby_llm/releases)
- [Changelog](https://github.com/crmne/ruby_llm/blob/main/release-notes.md)
- [Commits](crmne/ruby_llm@1.16.0...v2.0.0)

---
updated-dependencies:
- dependency-name: ruby_llm
  dependency-version: 2.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file ruby Pull requests that update ruby code labels Sep 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file ruby Pull requests that update ruby code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants