the previous a number of months, I’ve had the chance to immerse myself within the process of adapting APIs and backend programs for consumption by LLMs, particularly brokers utilizing the MCP protocol. Initially, I anticipated the expertise to be no totally different than every other comparable improvement tasks I’ve accomplished previously. I used to be fascinated to find, nonetheless, that these autonomous purchasers are a brand new sort of creature. Consequently, evolving APIs to yield essentially the most worth from agent interplay required greater than merely making them accessible.
This put up is a results of my experimentations and area testing, hopefully it may be helpful to different practitioners.
The facility and curse of autonomy

We builders are used to Third-party instruments and automation processes interacting with the appliance APIs. Our interfaces have due to this fact advanced round greatest practices that greatest help these use circumstances. Transactional, versioned, contract-driven APIs, minded to implement ahead/backward compatibility and constructed for effectivity. These are all essential considerations which can be secondary in precedence and infrequently merely irrelevant when contemplating the autonomous person.
With brokers as purchasers, there isn’t any want to fret about backward/ahead compatibility as every session is stateless and distinctive. The mannequin will research methods to use instruments every time it discovers them, arriving on the proper mixture of API calls to realize its goal. As enthusiastic as this agent could also be, nonetheless, it can additionally hand over after just a few failed makes an attempt until given correct incentive and tips.
Extra importantly, with out such clues it might succeed within the API name however fail to satisfy its targets. In contrast to scripted automations or skilled builders, it solely has the API documentation and responses to go on in planning out methods to meet its targets. The dynamic nature of its response is each a blessing and a curse as these two sources are additionally the sum of data it may possibly draw upon to be efficient.
Dialog-Pushed APIs
I had first realized that the agent would require a special sort of design whereas troubleshooting some circumstances through which the agent was not capable of get to the specified outcomes. I supplied MCP instrument entry to an API that gives utilization data for any code operate based mostly on tracing knowledge. Generally it appeared the agent was merely not utilizing it appropriately. Trying extra intently on the interplay, it appeared that the mannequin was appropriately calling the instrument and for numerous causes obtained an empty array as a response. This conduct could be 100% right for any comparable operation in our API.
The agent, nonetheless, had bother comprehending why this was taking place. After attempting just a few easy variations, it gave up and determined to maneuver on to different avenues of exploration. To me, that interplay spelled out a missed alternative. Nobody was at fault; transactionally, the conduct was right. The entire related exams would move, however in measuring the effectiveness of utilizing this API, we came upon the ‘success fee’ was ridiculously low.
The answer turned out to be a easy one, as an alternative of returning an empty response, I made a decision to offer a extra detailed set of directions and concepts:
var emptyResult = new NoDataFoundResponse()
{
Message = @"There was no information discovered based mostly on the standards despatched.
This might imply that the code shouldn't be known as, or that it isn't manually instrumented
utilizing OTEL annotations.",
SuggestedNextSteps = @"Urged steps:
1. Seek for endpoints (http, shoppers, jobs and so forth.) that use this operate.
Endpoints are often routinely instrumented with OTEL spans by the
libraries utilizing them.
2. Attempt calling this instrument utilizing the tactic and sophistication of the endpoint
itself or use the GetTraceForEndpoint instrument with the endpoint route.
3. Counsel guide instrumentation for the particular technique relying on the language used within the venture
and the present fashion of instrumentation used (annotations, code and so forth.)"
};
As an alternative of simply returning the outcomes to the agent, I used to be attempting to do one thing brokers will usually try as nicely — hold the dialog going. My perceptions of API responses, due to this fact, modified. When being consumed by LLMs, past serving useful functions, they’re, in essence, a reverse immediate. An ended interplay is a lifeless finish, nonetheless, any knowledge we return again to the agent provides it an opportunity to tug on one other thread in its investigative course of.
HATEOAS, the ‘select your individual journey’ APIs

Fascinated about the philosophy of this method, I spotted that there was one thing vaguely acquainted about it. A very long time in the past, after I was taking my first steps crafting fashionable REST APIs, I used to be launched to the idea of hypermedia APIs and HATEOAS: Hypertext As Engine of the Software State. The idea was outlined by Fielding in his seminal 2008 weblog put up REST APIs have to be hypertext-driven. One sentence in that put up utterly blew my thoughts on the time:
“Software state transitions have to be pushed by shopper number of server-provided decisions which can be current within the obtained representations”
In different phrases, the server can educate the shopper what to do subsequent as an alternative of merely sending again the requested knowledge. The canonical instance is an easy GET request for a selected useful resource, whereby the response offers data on actions the shopper can take subsequent on that useful resource. A self-documenting API the place the shopper was not required to know something about it forward of time besides a single entry level from which a department of decisions emerges. Right here is an efficient instance from the Wikipedia web page:
HTTP/1.1 200 OK
{
"account": {
"account_number": 12345,
"steadiness": {
"forex": "usd",
"worth": 100.00
},
"hyperlinks": {
"deposits": "/accounts/12345/deposits",
"withdrawals": "/accounts/12345/withdrawals",
"transfers": "/accounts/12345/transfers",
"close-requests": "/accounts/12345/close-requests"
}
}
}
On the time, I used to be fascinated by this idea, which jogged my memory of what’s generally known as ‘select your individual journey’ books or ‘gamebooks’. This style of books, an inseparable a part of my childhood, didn’t merely relay a narrative (or present an API response by this metaphor), but additionally gave the reader a key as to what are the following set set of choices obtainable to it. Hypermedia REST APIs have been self-documenting and supplied customers a approach to perceive the state of the appliance and the operations obtainable for every entity or course of useful resource with out having to learn by means of in depth documentation.
Hypermedia on steroids
A technique to take a look at Hypermedia APIs is that they supply extra context to the person as part of the response. Context, to brokers, is all the things, and it actually doesn’t must cease with obtainable choices or operation. An API is an interplay level through which context will be relayed and supplied in a kind that might encourage additional interplay. Let’s check out one other instance!
One other instrument I used to be engaged on, permits the mannequin to retrieve runtime points discovered within the deployment atmosphere, once more based mostly on observability knowledge. The precise outcome I used to be testing immediate response for, was an anomaly discovered within the efficiency of a selected endpoint. It appears that evidently at instances responses have been EXTREMELY gradual, ~70X slower than the median. Offering that data piece to the LLM was useful, however in the end didn’t accomplish greater than easy repeats of the info supplied.
For reference, right here is the response supplied, in addition to the agent output:
{
"Identify": "Efficiency Anomaly",
"Class": "Efficiency",
"P50":
{
"Worth": 12.33,
"Unit": "ms",
"Uncooked": 12331700.0
},
"P95":
{
"Worth": 909.62,
"Unit": "ms",
"Uncooked": 909625000.0
},
"SlowerByPercentage": 7376.314701136097,
"SpanInfo":
{
....
},
#extra knowledge
....
}

There may be nothing functionally improper with the API response or the best way the data was mediated to the person by the agent. The one drawback is that there’s a lot of context and concepts lacking from it that would leverage the agent’s means to take that dialog ahead. In different phrases, this can be a conventional API request/response interplay, however brokers by means of reasoning are able to a lot extra. Let’s see what occurs if we modify our API to inject further state and strategies to attempt to carry the dialog ahead:
{
"_recommendation":
"This asset's P95 (slowest 5%) length is disproportionally gradual
in comparison with the median to an extreme diploma
Listed below are some steered investigative subsequent steps to get to the
root trigger or right the difficulty:
1. The problem contains instance traces for each the P95 and median
length, get each traces and evaluate them discover out which asset
or property are those which can be abnormally gradual typically
2. Test the efficiency graphs for this asset P95 and see if there
has been a change not too long ago, in that case examine for pull requests
merged round that point that could be relevan tot his space
3. Test for fruther clues within the gradual traces, for instance perhaps
ALL spans of the identical sort are gradual at the moment interval indicating
a scientific problem"
"Identify": "Efficiency Anomaly",
"Class": "Efficiency",
"P50":
{
...
},
#extra knowledge
All we’ve accomplished is give the AI mannequin just a little extra to go on. As an alternative of merely returning the outcome, we are able to feed the mannequin with concepts on methods to use the data supplied to it. Absolutely sufficient, these strategies are instantly put to make use of. This time, the agent continues to analyze the issue by calling different instruments to examine the conduct, evaluate the traces and perceive the issue lineage:

With the brand new data in place, the agent is joyful to proceed the exploration, study the timeline and synthesize the outcomes from the varied instruments till it comes up with new knowledge, that was on no account a part of the unique response scope:

Wait… Shouldn’t all APIs be designed like that?
Completely! I positively imagine that this method may gain advantage customers, automation builders, and everybody else — even when they use brains for reasoning fairly than LLM fashions. In essence, a conversation-driven API can broaden the context past the realm of information and into the realm of prospects. Opening up extra branches of exploration for brokers and customers alike and enhancing the effectiveness of APIs in fixing the underlying use case.
There may be positively extra room for evolution. For instance, the hints and concepts supplied to the shopper by the API in our instance have been static, what in the event that they have been AI-generated as nicely? There are a lot of totally different A2A fashions on the market, however sooner or later, it might simply be a backend system and a shopper brainstorming about what the info means and what may very well be accomplished to know it higher. As for the person? Neglect about him, discuss to his agent.