• 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.

Content

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

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.

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.