// the find
crmne/ruby_llm
One delightful Ruby framework for every major AI provider. Build AI agents, chatbots, RAG apps, and multimodal workflows in beautiful, expressive code.
RubyLLM is a multi-provider LLM client for Ruby that wraps OpenAI, Anthropic, Gemini, Bedrock, and a dozen others behind a single API. It's aimed at Rails developers who want to add AI features without wiring up each provider's SDK separately. The Rails integration (`acts_as_chat`, generators, chat UI scaffold) is the main differentiator over just using provider SDKs directly.
The provider abstraction is genuinely useful — switching from GPT to Claude is a one-line config change, not a rewrite. The Rails integration goes further than most: generators produce working migrations, models, and a Turbo-powered chat UI out of the box. Dependency footprint is honest (Faraday, Zeitwerk, Marcel — that's it), which matters for gem hygiene in a Rails app. The model registry with 800+ entries including pricing data means you can make cost-aware routing decisions without maintaining that data yourself.
The agent loop is a basic tool-call cycle with no memory, planning, or interruption model — calling it 'agents' oversells what it does. Error handling across 12+ providers is a maintenance trap; provider API changes will break edge cases in unpredictable ways, and the test matrix can't cover all of them. The structured output implementation depends on providers that support JSON schema natively (OpenAI, Anthropic) and will silently degrade or fail on others. No async/concurrent request support beyond Fiber basics means high-throughput batch processing (running the agent for many users in parallel) will bottleneck.