@dhh I do exactly the same, but I add "codex and grok". Apparently grok 4.7 finds more issues in the code than gpt does. Also important part of this is setting the model and thinking effort.
📦 New release: ruby-mcp-client gem!
A simple yet powerful MCP client for Ruby AI projects. Check it out and share your feedback! https://t.co/ZCDiKsnumP
#Ruby#OpenSource#MCP#AI
If you have API access and want to use OpenAI o1 models out-of-the-box in your projects or integrate them into IDEs as code assistants (e.g., with Continue plugin), this proxy is useful:
https://t.co/1sXz4kZ3m1
#OpenAIo1#OpenAI#AI
Just released ruby-openai 7 - maybe biggest ever. Adds Batches, Assistants v2 (+ docs for streaming), Ollama (so you can use Llama3 etc, pretty wild), StringIO file handling, and a load of fixes. Huge thanks to all contributors and users https://t.co/27CqbIf9YU #ruby#openai
Tool use, in which an LLM is given functions it can request to call for gathering information, taking action, or manipulating data, is a key design pattern of AI agentic workflows. You may be familiar with LLM-based systems that can perform a web search or execute code. Some of the large, consumer-facing LLMs already incorporate these features. But tool use goes well beyond these examples.
If you prompt an online LLM-based chat system, “What is the best coffee maker according to reviewers?”, it might decide to carry out a web search and download one or more web pages to gain context. Early on, LLM developers realized that relying only on a pre-trained transformer to generate output tokens is limiting, and that giving an LLM a tool for web search lets it do much more. With such a tool, an LLM is either fine-tuned or prompted (perhaps with few-shot prompting) to generate a special string like {tool: web-search, query: "coffee maker reviews"} to request calling a search engine. (The exact format of the string depends on the implementation.) A post-processing step then looks for strings like these, calls the web search function with the relevant parameters when it finds one, and passes the result back to the LLM as additional input context for further processing.
Similarly, if you ask, “If I invest $100 at compound 7% interest for 12 years, what do I have at the end?”, rather than trying to generate the answer directly using a transformer network — which is unlikely to result in the right answer — the LLM might use a code execution tool to run a Python command to compute 100 * (1+0.07)**12 to get the right answer. The LLM might generate a string like this: {tool: python-interpreter, code: "100 * (1+0.07)**12"}.
But tool use in agentic workflows now goes much further. Developers are using functions to search different sources (web, Wikipedia, arXiv, etc.), to interface with productivity tools (send email, read/write calendar entries, etc.), generate or interpret images, and much more. We can prompt an LLM using context that gives detailed descriptions of many functions. These descriptions might include a text description of what the function does plus details of what arguments the function expects. And we’d expect the LLM to automatically choose the right function to call to do a job.
Further, systems are being built in which the LLM has access to hundreds of tools. In such settings, there might be too many functions at your disposal to put all of them into the LLM context, so you might use heuristics to pick the most relevant subset to include in the LLM context at the current step of processing. This technique, which is described in the Gorilla paper cited below, is reminiscent of how, if there is too much text to include as context, retrieval augmented generation (RAG) systems offer heuristics for picking a subset of the text to include.
Early in the history of LLMs, before widespread availability of large multimodal models (LMMs) like LLaVa, GPT-4V, and Gemini, LLMs could not process images directly, so a lot of work on tool use was carried out by the computer vision community. At that time, the only way for an LLM-based system to manipulate an image was by calling a function to, say, carry out object recognition or some other function on it. Since then, practices for tool use have exploded. GPT-4’s function calling capability, released in the middle of last year, was a significant step toward general-purpose tool use. Since then, more and more LLMs are being developed to similarly be facile with tool use.
If you’re interested in learning more about tool use, I recommend:
- Gorilla: Large Language Model Connected with Massive APIs, Patil et al. (2023)
- MM-REACT: Prompting ChatGPT for Multimodal Reasoning and Action, Yang et al. (2023)
- Efficient Tool Use with Chain-of-Abstraction Reasoning, Gao et al. (2024)
Both Tool Use and Reflection, which I posted about last week, are design patterns that I can get to work fairly reliably on my applications — both are capabilities well worth learning about. In the future, I’ll describe the Planning and Multi-agent collaboration design patterns. They allow AI agents to do much more but are less mature, less predictable — albeit very exciting — technologies.
[Original text: https://t.co/gHCOYSsKQO ]
Big news for Central Europe: Netflix announced opening an engineering office in Poland.
I’m not surprised, given the success so many tech companies have, hiring in Poland. I’m more surprised few Big Tech have focused on this location (Meta hired remote but not via an office)
It’s a new day for Chargify.
As we step into the next phase of growth, we’re excited to announce we are merging with @saasoptics & becoming Maxio. 🚀
Visit https://t.co/jkmVEXHq0B for full details and follow @wearemaxio to learn more about our new brand in the coming days.
Chargify & Keen give you the tools you'll need to use data-driven pricing as your new competitive advantage! Are you ready to put your data to work and take your pricing model to the next level? https://t.co/GG2YxqwzGh
#Chargify#Keenio#DataDrivenPricing#B2B#SaaS
G2’s Best Software Awards for 2020 are in and Chargify has made the list! We are in the top 10 for best finance software. We are also recognized as a leader in subscription billing for small business and a momentum leader in subscription management!
https://t.co/4MHOGYiVNj