RubyLLM: Um Framework Ruby para Todos os Principais Provedores de IA

RubyLLM 1.16.0 é um framework Ruby que fornece uma interface unificada para todos os principais provedores de IA, incluindo OpenAI, xAI, Anthropic, Gemini, VertexAI, Bedrock, DeepSeek, Mistral, Ollama, OpenRouter, Perplexity, GPUStack e qualquer API compatível com OpenAI. Ele suporta chat, visão, áudio, documentos, geração de imagens, embeddings, moderação, ferramentas, agentes, saída estruturada, streaming e integração com Rails.
Início Rápido
Adicione ao Gemfile: gem 'ruby_llm', depois bundle install.
Configure as chaves de API:
RubyLLM.configure do |config|
config.openai_api_key = ENV['OPENAI_API_KEY']
end
Principais Funcionalidades
- Chat:
RubyLLM.chat.ask('pergunta') - Visão: Analise imagens e vídeos —
chat.ask('Descreva', with: 'foto.jpg') - Áudio: Transcreva e entenda fala —
RubyLLM.transcribe('reuniao.wav') - Documentos: Extraia de PDFs, CSVs, JSON, qualquer tipo de arquivo
- Geração de imagens:
RubyLLM.paint('prompt') - Embeddings:
RubyLLM.embed('texto') - Moderação:
RubyLLM.moderate('texto') - Ferramentas: Deixe a IA chamar seus métodos Ruby subclassificando
RubyLLM::Tool - Agentes: Assistentes reutilizáveis com
RubyLLM::Agent - Saída estruturada: Esquemas JSON com
RubyLLM::Schema - Streaming: Respostas em tempo real com blocos
- Rails: Integração com ActiveRecord via
acts_as_chate Chat UI opcional - Assíncrono: Concorrência baseada em Fibers
- Registro de modelos: 800+ modelos com detecção de capacidade e preços
Exemplos de Código
Chat com visão:
chat = RubyLLM.chat
chat.ask('O que há nesta imagem?', with: 'ruby_conf.jpg')
chat.ask('Resuma este documento', with: 'contrato.pdf')
Usando ferramentas:
class Clima < RubyLLM::Tool
desc 'Obter clima atual'
def execute(latitude:, longitude:)
JSON.parse(Faraday.get('https://api.open-meteo.com/...').body)
end
end
chat.with_tool(Clima).ask('Qual é o clima em Berlim?')
Saída estruturada:
class SchemaProduto < RubyLLM::Schema
string :nome
number :preco
array :caracteristicas do
string
end
end
resposta = chat.with_schema(SchemaProduto).ask('Analise', with: 'produto.txt')
Integração com Rails
bin/rails generate ruby_llm:install
bin/rails db:migrate
bin/rails generate ruby_llm:chat_ui
Em seguida, crie um modelo Chat com acts_as_chat e visite /chats para uma UI pronta para uso.
RubyLLM tem apenas três dependências: Faraday, Zeitwerk e Marcel.
📖 Leia a fonte completa: HN AI Agents
👀 See Also

O Token Enhancer reduz o uso de tokens em páginas da web para agentes de IA.
Um desenvolvedor descobriu que o HTML bruto de capturas da web consome tokens excessivos no contexto de agentes de IA, com páginas do Yahoo Finance usando 704 mil tokens. Usar o Token Enhancer como servidor MCP reduziu isso para 2,6 mil tokens.

Aplicativo de Desktop do Claude com Função de Colaboração Permite Comunicação IA-para-IA via Google Docs Compartilhados
Usuários implementaram com sucesso a comunicação Claude-para-Claude usando a nova função de colaboração no aplicativo de desktop, com dois agentes de IA lendo e escrevendo em um Google Doc compartilhado em um diálogo estruturado de cinco trocas.

Clawpage: Uma Ferramenta que Converte Conversas do OpenClaw em Sites Estáticos
Um desenvolvedor criou o Clawpage, uma habilidade que transforma o histórico de sessões do OpenClaw em páginas web estáticas para preservar conversas valiosas, incluindo o vai e vem, a pesquisa e o processo de depuração. A ferramenta está disponível no GitHub.

A ferramenta Snip permite a comunicação visual com agentes de IA de codificação.
Snip é uma ferramenta gratuita que permite aos desenvolvedores capturar telas, anotar e desenhar para mostrar aos agentes de IA o que eles querem dizer visualmente, enquanto os agentes podem gerar diagramas ou carregar imagens diretamente através de CLI ou MCP. Atualmente funciona em Macs com Apple Silicon, com suporte a diagramas Mermaid e suporte a HTML em desenvolvimento.