In a limited array of tools, there is one optimal tool to use.
For this example, let’s take the task of hammering a nail into a wall, and the only two tools available to us are a soggy piece of toast and a silver spoon. For the given task, the spoon will be slightly more useful than the moist piece of a baked good.
Let’s expand this to include a wider range of tools that are at our disposal. We now have a whole toolbox akin to one you’d find in the average US homeowner's garage. To fulfil the task of hammering a nail into a wall, you’d most likely grab a hammer. It will be more useful for this very task than a spare tire, another nail or a ‘78 edition of a defunct comic book.
Now let’s take this even a step further. Now you have an unlimited array of tools at your disposal. Even within this unlimited tool kit, there will be tools that will be better or worse for completing the task of hammering the nail into a wall.
You’d likely have multiple different hammers. Some might be made from a slightly stiffer material, while others will be made from a slightly softer material, making it marginally easier or harder to hit that nail into the wall. The handle might be more or less ergonomic or better suited to your hand anatomy. There will still be one optimal tool that would enable you to hammer the nail into the wall with little effort, without bending the nail or hitting it at a bad angle, etc. But realistically speaking, you’d likely not notice the difference between the most optimal tool and the second best or third best ( or probably even 12th for that matter).
You’ll have some sort of threshold (or let’s say grey area) of what the minimum requirement would be of a tool that sufficiently aids you in hammering that nail into the wall.
If we were to plot available tools on the x axis and their effectiveness on the y axis, where perfect utility is 0, we’d be able to plot something akin to a loss function with local and global minima. Our threshold would then just be a horizontal line that would separate the tools that are sufficient for our use ( hammers) from those that are less so ( soggy bread).
(Note: this plot is AI-generated.) We could even turn this into a multidimensional plot if we include utility on one axis and all possible properties (size, shape, hardness, etc.) on the remaining axis.
Quite obviously, this thought experiment is not here to solve your problem of hammering a nail into the wall.
It is meant to be applied to AI agents.
AI (and eventually AGI) needs to know which tools are the most optimal to use to solve a certain problem.
If we were to build an optimal agentic system, it would be able to
When thinking about this a bit more deeply, I see us running into some issues:
For one, we have pretty much infinite tools and tool combinations. For simple tasks such as asking whether to wear a short or long-sleeved top, it might be quite easy to have the operating AI deduce that it’ll need to pull up weather information and the user‘s location. However, the more complex our request is, the more potential combinations of tools there will be. Which tools would be needed to figure out whether investing in a specific startup makes sense or whether the founders might just run away with the money? Would you use a LinkedIn API to find out more about the founders to see whether their LinkedIn profiles match up with other publicly available information? Would you use a tool to analyse their pitch deck and writing style to see if there are any signs of overinflating numbers or making false claims? Frankly, I don’t really know how this problem should be approached, as there are too many possible solutions, whilst making a judgment on which of these solutions would actually yield the best results seems impossible.
Secondly, where do we even start with defining the problem scope? With simple questions, this might not be that big of an issue. If the user didn’t specify that they’re planning to go on a 10k run and tend to get too warm when wearing long sleeves in 15 degrees C weather, that’s probably on the user, but it also doesn’t have too much of an impact. However, if we think of questions that might have a bigger impact, such as personal finance, we’d need some additional context. An optimal solution for a 25-year-old student with 50k of debt and an annual salary of 35k might look different to that of a 35-year-old single mother of two paying off a mortgage and a 100k salary living in Iceland or to that of a 67-year-old retiree with no kids and a life expectancy of 5 years. The issue here lies in the user oftentimes not knowing enough about the topic to know which factors might be particularly relevant in decision-making.
Thirdly, the AI operator (the main AI in an agentic system) will likely not have all the tools at its disposal, even if some tools might be needed to complete a specific task.
But the main limitation remains – the way the problem/question is framed: What is the most optimal question phrasing to get the best solution? And which elements are relevant or irrelevant that we might include/exclude from the prompt? (Or at least teach the operator to ask the user for or to exclude from any further processing)
So what can we make of this? The graph I was going on about in the beginning might look very different depending on the phrasing of the question and the context the user adds to the query.
I’ll try to visualise this in a few examples:
Q1: “What would be the right activity for me?”
This is a very generic and open ended question likely resulting in a quite generic response, which given the user’s actual intent of getting an in-depth analysis of which type of activity might help them maintaining their fitness levels while being fun to them specifically, will most likely result in a suboptimal or even plain “wrong” answer.
The main issue here is that there is missing data (contextual data in this case) which would be needed to interpret the question correctly.
If we were to plot the possible solutions on the x-axis and create a function based on which type of activity is more or less suitable for the user (y-axis), the resulting function and the identified optimal states (local/ global minima of the function ) would be incorrect.
So, let’s try to refine our query a bit.
Q2: “What would be the right activity for me, given that I prefer the outdoors and can’t swim?”
Now we’re getting a bit closer to the truth. The graph now dips in the area of the x-axis where all the outdoor sports have been listed and rises again where indoor and water sports can be found. The resulting answer could suggest something along the lines of try tennis, hiking, running, etc.
While being a whole lot more optimal, this might still not align with the user’s intentions. While the user stated that they can’t swim, the user might still want to learn to swim. The question leaves leeway for interpretation, and the AI is left to make assumptions that the user doesn’t want to do watersports as a consequence.
This misunderstanding is definitely the user’s fault, but I think you could imagine how this could lead to suboptimal outcomes where the stakes are higher and the potential for misinterpretation might not be as obvious to the user.
Ok, so let’s try again…
Q3: “What would be the right activity for me, given that I prefer the outdoors and can’t swim, but would like to learn to swim in the process?”
By adding this additional critical context, we now again completely altered the appearance of the graph. The dips are now located where we can find various outdoor watersports, and the user is recommended to try out surfing, snorkelling, and swimming.
This is usually the endpoint of what is currently possible, and yet we have still not reached the optimal answer.
I might get a bit philosophical with you, but bear with me.
Q4: Unknown unknowns
The user might have specified that they prefer indoor sports, but why do they prefer them? Have they tried all of them and reached the conclusion that they don’t like any? Likely not
Have they heard a false claim that doing outdoor activities decreases the risk of getting cardiovascular diseases, and this is an influencing factor as to why they want to limit the scope to outdoor activities?
Potentially.
This is something the AI doesn’t know, and the user is likely not consciously aware of when posing the question or even framing the question to generate an even more specific answer.
What would even be the “right activity” in this context? Which variables would we need to know about? Maybe it would be good to factor in the user’s predominant muscle fibre type (Type I or II) as well, which would help decide on whether to pick an endurance or strength activity. We likely don’t have this info, and the user also likely doesn’t know. Maybe it would be good to factor in not only what the user’s intentions and goals are with excercising but also what might be beneficial from a medical standpoint (e.g. building muscle mass to improve insulin sensitivity, improving overall health, lowering blood sugar as the user is prone to developing Type 2 Diabetes, preventing the exposure to specific allergens, satisfying social needs to prevent depression/ mood disorders). The user likely isn’t aware of how these could factor into overall well-being and wouldn’t even be able to make any of these connections, assuming a lack of medical knowledge.
These “unknown unknowns” mean that the AI, even with a seemingly well-specified Q3, might still be optimising for a suboptimal branch in the solution space. The 'true' utility graph, accounting for these factors, might look entirely different, with peaks and valleys that the user (and thus the AI through the prompt) isn't even aware of.
Q5: Extending the x-axis
Even if we, for some miraculous reason, were able to specify the question to incorporate all the relevant details into the query, we are still only improving the question side of things. The AI only knows of the solutions that already exist within the dataset. It would only be able to plot the graph over the x-axis of existing solutions, not over the x-axis of possible solutions.
To make this a bit less abstract, there might be a sequence of bodily movements in a specific environment that would be the absolute best to satisfy the specifications and limitations set. We could expand the x-axis to include all the activity possibilities and also expand the plot to see which of these would be most suitable. We’d likely find activities that would be even more suitable than the activity the user would end up with when asking Q4. This is what a true global minimum would look like.
An optimally phrased question ( input) + the entirety of available solutions (tools) = the most optimal solution.
Yet, we know that this is highly impractical. It would be pretty nonsensical to build an AI that would go through all this effort to come up with a Q5-Level solution for a task like recommending which activity to do or which tool to use to hammer a nail into a wall. Most of the time, we don’t need the single best solution but a solution that is good enough.
There will be a threshold of where the solution is good enough to satisfy the user’s needs (in the graph, this might be represented by a horizontal line, where any solution under the line will be satisfactory). This is especially true for simple or low-stakes tasks, as in the examples.
There might be other domains where this edge in contextual knowledge would yield significantly better results, e.g. in a financial (an even more accurate predictive model) or medical context (life or death decision making, improving quality of life, hyper-specialised treatments for atypical conditions). If we go back to our plot, the threshold might be below the currently existing tools and in these instances, it would be great if we were to come up with novel solutions.
This begs one final question: How do we ensure that the systems we build and rely on for complex decision-making aren’t just efficiently finding the optimum on a (potentially incorrect) plot, but are actually helping us get to the solutions that meet our requirement threshold, even if we don’t know how to optimally frame the question to begin with?