RubyLLM 2.0: The Agentic Loop, Exposed RubyLLM 2.0, the Ruby gem for AI chat, exposes the agentic loop as a set of composable verbs—ask_later, generate, run_tools, step, complete?, and complete—so developers can control each model call and tool execution, with cancelable generation via chat.cancel! and resumable runs across processes. The update removes the halt mechanism from version 1.x, moving loop control to the caller, and supports batch generation and Rails 8.1 ActiveJob Continuations for checkpointing. Strip any agent framework down and you find the same loop: call the model, run the tools it asked for, call the model again, stop when it answers without wanting a tool. In RubyLLM 1.x that loop lived inside ask , sealed. In RubyLLM 2.0, you can also make it yours. Run the agentic loop automatically chat = RubyLLM.chat model: "claude-sonnet-4-6" .with tools Weather .ask "What's the weather in Paris?" =