- RoboRuby
- Posts
- Ruby AI News - September 20th, 2025
Ruby AI News - September 20th, 2025
I spy powerful prompting with DSPy.rb

Welcome to the 15th edition of Ruby AI News! This edition features an avalanche of updates on DSPy.rb, all things AI at Rails World, the top 20 Ruby AI gems of all time, and much more.
Pro tip: Due to the size of the newsletter, many email clients truncate the content. It is recommended to read on the web for the best experience.
Contents
Top Stories
Don’t Sleep on DSPy.rb
Vincente Reig has been on a mission to bring the power of Python’s DSPy, a declarative framework for building modular AI software, to the Ruby AI ecosystem. DSPy.rb is a Ruby port of Stanford's DSPy framework, adapted to Ruby idioms and enhanced with production-ready features. DSPy.rb allows you to build LLM prompts programmatically, meaning that instead of prompt templates, you engineer the prompt context through composable Ruby classes and objects with type-safe guardrails. This allows you to catch errors before you send the prompt, write tests for your LLM logic, optimize prompts based on examples and analytics, and compose reuseable modules for complex workflows. Building your prompts as Ruby code allows you to keep every aspect under version control, and built-in observability, error handling, and performance monitoring means you can track token usage, response times, and accuracy.
Vicente regularly posts updates and guides on the development of DSPy.rb. In True Concurrency: How DSPy.rb's Async Retry System Makes Your Applications Faster, he explains how DSPy.rb provides async concurrency for LLM retries and operations, allowing for failed LLM calls to retry asynchronously in the background, preventing idle delays in your application without any additional configuration. Additionally, DSPy.rb can integrate with Sidekiq or another background job processor to enable Non-blocking LLM Processing in Production. In Observability in Action: Langfuse Tracing, Vincente shows how DSPy.rb’s telemetry system can provide you with real-time visibality into your LLM workflows. DSPy.rb’s observability system seamlessly integrates with Langfuse, an LLM engineering platform for evaluations, prompt management, and datasets, simply by adding your Langfuse API keys. DSPy.rb’s Concurrent Architecture: Deep Dive into 3.3x Performance Gains further extrapolates on DSPy.rb’s asynchronous architecture, diving in to the power of Ruby’s async and fiber capabilities for measurable performance gains, production-grade observability, and reliable background processing, resulting in highly scalable AI systems.
In a real world example, Vincente demonstrates how to use LLM “judges” to evaluate a sample AI sales development representative in LLM-as-a-Judge: Evaluating AI SDR Quality Beyond Simple Rules. The post dives into building an AI Sales Development Representative (SDR) that generates personalized cold emails, then uses another LLM judge to evaluate the quality of those emails across dimensions like personalization, authenticity, and call-to-action effectiveness. Best practices detailed in the article include judge calibration, prompt engineering for judges, and continuous improvement through feedback patterns. The excellent Prompt Optimization guide from the docs digs further into letting the machine improve your evaluation prompts automatically.
Since the last edition of the newsletter, DSPy.rb has released an astonishing 15 new version updates, going from version 0.20.0 to version 0.27.2! These updates include type alias support, an event-driven observability system, a GEPA (Genetic-Pareto) for genetic algorithm-based optimization, enhanced Langfuse integration, asychronous telemetry, bayesian optimization with MIPROv2 (Multiprompt Instruction PRoposal Optimizer Version 2), and unified Sorbet type support. Not only that, Vicente has created demonstrable examples of DSPy.rb’s use, including ones for customer interactions at a coffee shop, a Github analysis assistant, and a tweet sentiment evaluator.
Finally, Vicente explores why enhanced prompting beats JSON native APIs in cost and compatibility in JSON Native or Enhanced Prompting? Choosing the Right DSPy.rb Strategy. The post examines JSON Native mode (which uses structured outputs with JSON schema) versus Enhanced Prompting mode (DSPy style JSON Schema prompting with type signatures), concluding that Enhanced Prompting with a lower cost model can save money and response time without sacrificing accuracy. At the end, Vincente discuss the development of sorbet-baml, a next-generation approach to prompting that can reduce token usage by over 50% while improving accuracy. This is done by transforming verbose JSON schemas into TypeScript-like syntax with inline comments.
And all of these updates are just from the last two weeks!
Andrey Eremin recently covered DSPy.rb and sorbet-baml in Static Ruby Monthly | Issue 8, August 2025. As type safety becomes an important guardrail for helping LLM’s understand inputs and outputs and produce verifiable results, Andrey’s newsletter is a recommended resource for understanding and keeping up to date with Ruby’s static typing capabilities. I highly recommend you check out the newsletter and subscribe at Static Ruby Monthly.
AI at Rails World 2025
The Rails World conference on September 4th in the Netherlands featured a strong focus on AI, featuring four speakers and an interview of all four on the topic of All things AI. The interview, featuring Kinsey Durham-Grace, Paweł Strzałkowski, Andrew McNamara and Charlie Lee, discusses how AI is reshaping the Rails ecosystem.
Kinsey Durham Grace: The Rise of the Agent: Rails in the AI Era
Paweł Strzałkowski: Make Rails AI-Ready by Design with the Model Context Protocol
Andrew Mcnamara & Charlie Lee: LLM Evaluations & Reinforcement Learning for Shopify Sidekick on Rails
Also of note is Marco Roth’s talk Introducing ReActionView: An ActionView-Compatible ERB Engine, which should facilitate better understand and verification of Rails view templates by LLMs, and Donal McBreen’s presentation on Resumable Jobs with Active Job Continuations, which will benefit longer running AI workflows.
Top 20 Ruby AI Gems of All Time
This past week, I presented at the ArtificialRuby meetup in New York City on Ruby AI: Past, Present, and Future, discussing the state of the ecosystem. I will write a full post on the presentation, but the key takeaways are: Ruby is better than ever, Rails continues to innovate and is an economic powerhouse, and the Ruby AI ecosystem has the tools in place to fully utilize the current generation of LLM models and technologies. However, there are some major issues that the community needs to address, such as fostering the growth of junior developers, prioritizing human and machine readable documentation, and how better collaboration among library developers can foster a new wave of Ruby AI innovation. Stay tuned for more details!
In the mean time, I wanted to highlight two slides from the presentation, showing the top 20 Ruby AI gems of all time by number of stars. The full database of gems tracked for the newsletter is up on Github, and a searchable directory of the database is on the way.


Article: Vladimir Dementyev and Travis Turner from Evil Martians explored building AI features using Rails conventions in Exploring Active Agent, or can we build AI features the Rails way?. The authors examine Active Agent, a Ruby gem that applies Rails-like patterns to AI agent development, featuring familiar concepts like callbacks, controllers, view (prompt) templates, and background jobs. The authors “battle-test” Active Agent by implementing two AI use cases: on-demand translations and a conference proposal reviewer, discussing testing, tool cooling, and retrieval-augmented generation with code samples. Justin Bowen, the creator of Active Agent, recently released a roadmap to Active Agent version 1.0.
Update: Carmine Paolino released RubyLLM version 1.8.0, adding video understanding support and content moderation capabilities. The update follows recent versions 1.7.1 with improved generator handling for namespaced models and 1.7.0 which introduced a complete Rails integration overhaul. The RubyLLM gem now lets developers ship a working Rails AI chat application in minutes using rails g ruby_llm:chat_ui
, generating a complete interface with a pure Rails and Turbo Streams implementation.. The 1.7 Upgrade Guide provides a streamlined migration path with the new acts_as
API that feels native to Rails conventions.
Announcement: Christopher Petersen introduced two new libraries, ParseKit: Native Document Parsing and OCR for Ruby, and Topical: Topic Modeling Pipeline for Ruby. ParseKit provides native Ruby bindings for document parsing and OCR capabilities, with support for multiple document formats, text extraction, and metadata parsing. Topical brings topic modeling to Ruby with c-TF-IDF term extraction, providing a complete pipeline from embeddings to labeled topics in one gem. Combine with red-candle and you have LLM-powered topic summaries for your application.
Podcast: Joe Leo and Valentino Stoll from The Ruby AI Podcast interviewed Chad Fowler in Rails After the Robots: Chad Fowler on AI as the Next Abstraction. Throughout the show, they explore how AI represents another layer of abstraction in software development, similar to how Rails abstracted away complex web development patterns. Chad argues that we need systems made of trivial, replaceable pieces that AI agents can generate and maintain without human intervention. [Show notes]
Update: Matt Lindsey revived HostedGPT and updated it to version 0.7, bringing significant improvements to this Ruby on Rails application. HostedGPT provides a self-hosted alternative for ChatGPT-like AI conversations with support for multiple AI providers including OpenAI, Anthropic, and Gemini. The update brings new tool calling functionality, conversation search, token counts, UI enhancements, and bug fixes.
Launch: Github user hansende released FlowMetr, a self-hostable monitoring tool designed to track all types of automation workflows and AI pipelines. The tool works with popular automation platforms like n8n, Zapier, and Make.com. FlowMetr provides monitoring with metrics tracking, logging, alerting when workflows break, and shareable reports. The open-source project is available on GitHub.
Podcast: Nicolay Gerold from How AI is Built interviewed Kieran Klaassen in Episode #056 - Building Solo: How One Engineer Uses AI Agents to Ship Production Code. Kieran shares his experience as a solo engineer leveraging AI agents to build and deploy production applications at remarkable speed. The discussion covers his workflow for using AI to handle including code generation, Git worktrees, Claude Code, and compound engineering.
Announcement: Abdelkader Boudih published The Observability Trap: Why I Built Lapsoss to Break Vendor Chains. In the post he introduces Lapsoss, a Ruby gem designed to liberate developers from observability and error reporting vendor lock-in. The project aims to create universal error handling patterns that work across any provider, from localhost to self-hosted servers to cloud platforms, without being tied to specific SDKs or vendors. He hopes that this will enhance AI assistants ability to write error handling code using universal patterns. Additionally, Abdelkader released Minitest::Reporters::LLM, a token-optimized Minitest reporter for LLM consumption. Features include ultra-compact output, regression tracking, and smart time formatting to minimize token usage while maintaining parsability.
Tutorial: Andres Urdaneta explained How to Fix Random OpenAI 500 Errors in Rails Background Jobs Using retry_on. He demonstrates how to handle transient OpenAI API failures in Rails background jobs by implementing retry_on
with exponential backoff, using examples from a chatbot that processes user questions.
Article: Scott Werner explored The Tmux Menagerie: On Sessions, Dreams, and the Art of Parallel Agentic Programming, demonstrating the use of tmux for parallel agentic programming. Scott describes running AI coding assistants in parallel sessions, working on different contexts and applications while he orchestrates their efforts. Vicente Reig shared his thoughts on the article and his parallel workflow in this X/Twitter thread. Scott also wrote The Only Skill That Matters Now, arguing that if your company isn’t giving you time to experiment with AI coding “you’re not actually employed…you’re in hospice”, and emphasizes that it is important to find a company that understand AI-assisted development is here to stay and provides you with the tools to be successful.
Launch: Amanda Bizzinotto from FastRuby introduced the Automated Roadmap to Upgrade Rails, a tool that generates personalized upgrade plans for Rails applications. The roadmap analyzes your Rails app and provides a tailored path with estimated timelines, effort levels, and step-by-step guidance for upgrading to newer Rails versions. The uses an integrated AI Agent that analyzes your codebase to identify which deprecations are actually relevant.
Announcement: Kody Kendall updated Leonardo, an open-source AI coding agent that builds Ruby on Rails applications directly from the browser. Leonardo operates as a "deep agent" built with LangChain and running on LlamaBot. Once setup, you can navigate to localhost and chat with Leonardo from the browser to make code changes in real time. The tool is available for local deployment or as a free hosted instance at llamapress.ai, and a Starter Rails Project is available.
Tutorial: Sachin Gaveriya from Essence Solusoft demonstrated How to Use ChatGPT API with Ruby on Rails. The tutorial covers setting up a Rails application with the ruby-openai gem, obtaining an OpenAI API key, and implementing a basic chat interface. Sachin walks through creating a controller that handles API requests to OpenAI's GPT models, managing conversation context, and displaying responses in a Rails view.
Newsletter: Yatish Mehta's Token Ruby #5: Rails World 2025 and Local LLMs covered All things AI at Rails World 2025, Thoughtbot’s new Top Secret gem, Chad Fowler’s Ruby AI Podcast episode, and running LLMs locally on Mac OS, along with thoughts on the Rails 8.1 release.
Video: Prathamesh Sonpatki demonstrates Teaching AI to Debug your Rails Apps (MCP + Observability). The video examines integrating AI debugging capabilities into Rails applications using the Model Context Protocol with a focus on observability tools.
Podcast: Thoughtbot published two new Giant Robots Smashing Into Other Giant Robots podcast episodes on AI. In the first, Chad Pytel from Thoughtbot interviewed Louis Gutierrez about Making AI Work for Users. In the episode, Louis, the Director of AI at Constant Contact, shared insights on building AI systems that solve user problems, focusing on user-centered design principles and common pitfalls. In the second episode, Sami Birnbaum hosted Don Shin for Utopia or Dystopia: Why the Future of AI and XR Is Still Ours to Shape. Don, the CEO of CrossComm, discussed the current state and future potential of extended reality (XR) technologies. The conversation explored how AI and XR are converging, with Don arguing that despite dystopian concerns about these technologies, we still have agency in shaping their development and implementation. Dawn Delatte, Fatima Burke, and Kevin Kwon of Thoughtbot also published Lessons from using AI in Discovery.
Video: David Kimura from Drifting Ruby provided an overview of RubyMine, JetBrains Ruby IDE. The episode covers RubyMine's key features including intelligent code completion, advanced debugging capabilities, integrated version control, and built-in testing tools. David demonstrates how RubyMine's new AI features, refactoring tools, and code analysis can help Ruby developers write cleaner code.
Article: Robert (0x1eef) wrote about Performance Gains with Persistent Connections, documenting performance improvements when working with llm.rb. By providing a persistent connection pool via net-http-persistent, llm.rb is able to reduce connection overhead and improve throughput in threaded or high-volume environments.
Announcement: Paul Shippy released RubyLLM Community 1.2, which is compatible with RubyLLM 1.8 and includes additional enhancements. The release adds Red Candle support that enables running open source LLMs directly inside Ruby processes. New features include xAI support for Grok models, prompt caching support for Anthropic, image editing and generation capabilities, and access to OpenAI's Responses API features.
Article: Vaishnavi Ganeshkar explored the state of Rails in 2025: What Developers Are Really Talking About (AI, Legacy, and the Future), highlighting key trends shaping Ruby on Rails development. Vaishnavi argues that Ruby’s expressiveness makes it token-efficient for AI coding, Rails’ convention-over-configuration simplifies AI-assisted codebase generation, and that AI will make it easier to refactor legacy applications.
Update: Alex Larra announced that Internator now works with the latest OpenAI Codex (v0.30.0). Internator is a Ruby-based CLI tool that automates iterative pull request improvements using OpenAI's Codex.
Video: Kirt Henrie from AI on Rails compares three leading coding models in Kimi K2 vs Grok Code Fast 1 vs Sonnet 4 Model Shootout. He builds an asset rental SaaS application using each model in Cursor's agent mode, providing a practical comparison of Kimi K2 Instruct, Grok Code Fast 1, and Claude Sonnet 4 for real-world development tasks.
Article: Anna Ransbotham-Cole of Doximity explores how to strategically combine The Modern Data Toolbox: Combining LLMs, ML, and Statistics for Greater Impact. Anna argues that each tool serves different purposes: LLMs excel at pattern recognition and natural language tasks, traditional ML handles structured prediction problems, and statistics provides interpretability and causal inference, with the key being matching the right tool to the specific problem.
Discussion: A Reddit thread in r/rails explores how Rails developers are integrating AI tools like Claude and Copilot into their daily workflows. Users report on their experiences and productivity gains using the tools, ultimately enabling solo developers to do the work of an entire team.
Article: Lakhveer Singh Rajput wrote Rails + AI Integration: The Future of Smarter Web Apps (Medium link), talking about how to bring the power of AI into Ruby on Rails applications.
Events
Previous
PLRUG Ruby Warsaw Meetup: PLRUG Ruby Warsaw Meetup posted a video from their gathering on August 8th by Cezary Kłos on adding MCP to a legacy web application:
Ruby Argentina: Sinaptia wrote a recap of the September 10th Ruby Argentina meetup featuring a talk by Fernando Martinez on Something About Agents. Additionally, they posted a summary of the August AI4Devs presentations including talks on RAG applications on local infrastructure by Gustavo Archuby and Pablo Musa, It’s not magic, it’s engineering by Ulises Cornejo, and LLM workflows for classification and large-scale data coherence also by Fernando Martinez.
Upcoming
September 20th - Conference: XORuby on September 20th in New Orleans will feature two AI talks. The first is by Thomas Carr on The State of the Ruby AI Toolbox. The talk will offer an overview of the leading Ruby AI gems and explore their unique strengths and features. The second is from Robert Ross, examining the architectural decisions made building a Rails codebase that later enabled seamless AI integration.
September 23rd - Meetup: Toronto Ruby on September 23rd in Toronto will include a demonstration by Tom Heinan on how to take an existing Rails application and make it AI ready with MCP on Rails.
September 23rd - Meetup: The Krakow Ruby Users Group (KRUG) will meet on September 23rd in Kraków, Poland and host three Ruby AI speakers:
Szymon Kurcab: Rails meets MCP – building AI-powered features
Jacek Brożek: New Prompts and How To Test Them?
Dávid Halász: Please add AI to it
September 26th - Conference: Kaigi on Rails 2025 on September 26th and 27th in Tokyo, Japan features two Ruby AI presentations:
Yusuke Iwaki: Can your web service be automatically tested by AI?
Yasuko Ohba: An introduction to artificial "design" using Rails
October 6th - Conference: The Rocky Mountain Ruby Conference on October 6th and 7th in Boulder, Colorado will host three Ruby AI speakers:
Vlad Dyachenko: Prompt Driven Development (PDD) or the Art of Prompting
Scott Werner: We Were Voyagers. We Can Voyage Again!
Christine Seeman: Thoughtful AI for the Rubyist
October 15th - Meetup: ArtificialRuby is hosting a meetup at Betaworks in New York City on October 15th. If you are interested in presenting at an ArtificialRuby meetup, please fill out this form and let them know.
October 18th - Hackathon: Rails Fever will be hosting another Rails AI event on October 18th in Philadelphia. The event will focus on practical ways to delegate work to AI as dev teams. Stay tuned for details!
November 7th - Conference: RubyWorld Conference 2025 on November 6th and 7th in Matsue, Japan will include three Ruby AI and hardware talks:
Koichi Ito: Ruby x LLM Ecosystem
Hayao Kimura: Exploring the World of Electronic Engineering with PicoRuby
Hitoshi Hasumi: Why Now Is the Right Time for PicoRuby
Open Source Updates
New Gems
Links to the RubyGems page, newest releases are first:
soba-cli - Autonomous GitHub Issue-driven development CLI with Claude Code
llm_bench - Tool for benchmarking LLM performance across providers and models
sinatra-mcp - Create a Sinatra-based MCP web app backed by the Sequel ORM
bioruby-mcp-server - Model Context Protocol server for BioRuby KEGG module
llm_conductor - Orchestrate multiple LLM providers with unified interface
stealth-clu - Stealth CLU
alt_text - Generates alt text
a2a-ruby - Agent2Agent (A2A) Protocol implementation for Ruby
tencentcloud-sdk-tdai - Tencent Cloud SDK for Ruby - TDAI
minitest-reporters-llm - Token-optimized Minitest reporter for LLM consumption with regression tracking
simplecov-mcp - MCP server + CLI for SimpleCov coverage data
numo-narray-alt - Numo::NArray Alternative is an experimental project forked from Numo::NArray
elevenlabs_client - Ruby client for ElevenLabs API
hyperclient-mcp - Turn any Hypermedia api into an MCP server
ai_git_commit - AI Git Commit generates Git commit messages using OpenAI.
opentelemetry-instrumentation-anthropic - Anthropic instrumentation for the OpenTelemetry framework
carsxe - A Ruby gem for interacting with CarsXE APIs
rack-ai - AI-powered middleware for Rack applications
ai_root_shield - AI-powered mobile security library with advanced network security and enterprise policy management
deepfake_detector - Forensic-grade deepfake detection toolkit for law enforcement
legal_summariser - AI-powered legal document analysis with multilingual support and PDF annotations
dify_llm - One Ruby API for GPT, Claude, Gemini, and more.
raimei - Umbrella meta-gem for Raimei Ruby + AI tools
hypervibe - Ruby Framework for AI & Vibe-Coders
ai_redactor - AI-powered redaction tool for detecting and masking PII in text and images
qyro_sdk - Ruby SDK for Qyro AI
ruboty-ai_agent - A Ruboty plugin that uses AI to generate responses
raimei-zoo - ONNX model examples for Ruby
raimei-shared - Shared utilities & telemetry for Raimei
raimei-bench - Provider-agnostic AI benchmark harness
raimei-nim - OpenAI/NIM-compatible client for Ruby
kiribi-multilingual_e5-small - Easy to use onnx models
laneful-ruby - Ruby SDK for the Laneful email API
ragents - A Rails engine for managing prompts in ActiveAgents
easyai - Easy AI CLI tool wrapper
New Open Source
Links to the Github repository:
Sea Support - A Rails reference app for building an AI-powered support inbox on DigitalOcean App Platform
Agentic Rails - Risk-aware Rails framework with Progressive Commit Protocol, experiment-driven development, tmux integration, and DevOps automation
Career Companion - AI-Powered Career Enhancement Platform
Heimdall - Watch over your LLM systems, detecting and blocking malicious prompts before they can breach your AI defenses
JRuby MCP Shop - Modern e-commerce platform built with JRuby and powered by Model Context Protocol
Agent Forge Admin - Rails admin interface using Active Admin to manage data from the Agent Forge API system
MCP CLI - CLI to install, integrate, and manage MCP servers across Claude, Codex, and Goose with profiles and a curated registry
Agentic-Forecasting - Forecasting app that combines a Ruby with a lightweight Python ARIMA service and a simple LLM-driven agent
Claude Agents Collection - Agent management system that aggregates multiple Claude Code agent collections into a unified workspace
Worky - AI Workflow Agent
Planning Center MCP Server - Model Context Protocol server that provides secure access to Planning Center data through authenticated API endpoints
Scouty - Personal AI-powered job scout: crawls job boards, analyzes postings with a local LLM, and scores jobs
Hyperclient MCP - Turn any hypermedia api into an MCP server
Ruly - CLI tool for managing AI assistant rules and configurations
Search Evaluation Service - Runs evaluations for GOV.UK site search using the Google Vertex AI Search evaluations framework
ModBot - AI-powered Reddit moderation bot for Ruby
Jobs & Opportunities
The newsletter currently scans hundreds of jobs boards at Ruby engineering organizations, and there are too many open positions at a time to list out in the newsletter anymore. So I’m building a free job matching platform for Rubyists. After signing up and completely a short survey on career preferences including salary range, location, seniority, and technologies, the service will email you one open position a week if there is an available opportunity matching your preferences. If you would like to beta test the service, or are an organization searching for Ruby engineers, please reach out at [email protected].
It is important to highlight opportunities for Junior Developers, so going forward the newsletter will only highlight featured opportunities and beginner roles.
Featured
Remote - EasyLlama is a workplace compliance training platform: Director of Engineering
Remote - Rivo is a Shopify customer retention platform: AI-Focused Ruby on Rails Engineer
Remote - TimeZest makes it easy for end users to schedule appointments with IT service providers: Senior Software Engineer (Rails/LLMs)
Junior Positions
Remote - CardFlight provides mobile payment solutions for small businesses: Junior Backend Software Engineer
Barcelona - Yuma AI automates e-commerce customer support using AI: AI Solution Engineer - Fullstack - Junior Rails Engineer
Berlin - HeyJobs is a job marketplace for essential workers: Working Student Software Engineer - Ruby on Rails /Python, AI Accelerated
One Last Thing
GitHub introduced Spec-driven development with AI: Get started with a new open source toolkit, a new approach to AI-assisted development. The toolkit encourages developers to start with detailed specifications before generating code, improving output quality by providing AI models with clear context and requirements. Spec Kit, Github’s new open sourced toolkit for spec-driven development, provides a structured process to bring spec-driven development to your coding agent workflows with tools including GitHub Copilot, Claude Code, and Gemini CLI.
That’s all for this edition! Be sure to reach out if you have any stories, content, jobs, or events you want featured in the newsletter.