What exactly are “Agents” in the context of Agentic AI?

Mangesh Pise
8 min readAug 3, 2024

--

Image by Peggy und Marco Lachmann-Anke from Pixabay

Ever needed a specialist to do a certain job? An electrician to install a fusebox(?) or a travel agent to help plan your international trip(?) or a real-estate agent to show or sell houses(?) or an ENT specialist for a special health requirement(?) — these are just a few obvious examples of specialist from every day lives. But why are they qualified specialists? The intent of this blog is to dive deeper into the role and responsibilities of such specialists, typically referred to as “agents” in the context of modern software systems backed by Artificial Intelligence (AI).

Agents in systems’ context

Agents are autonomous systems that possess specific skills. They emulate a digital twin of a specialist, with well-defined boundaries of what they can and can not do. An agent in the systems’ context can either be designed to have well-defined knowledge of their skills, or it could be designed to learn through data, environment, or feedback from it’s human handler. Thus, an agent can be almost considered to be a microservice or an AI/ML system that can continously provide assured results, when engaged.

So, agents are autonomous systems that possess specific skills. But what does it do with those skills? or how to go about invoking those skills? That’s where agentic tasks (or agentic actions) come into play. Agentic actions serve as an interface to utilize an agent’s skills and provide results.

Figure representing autonomous Agents with specific Skills

Agentic actions, in a digital system, utilize various digital assets, such as, code with desired logic, API endpoints to either acquaint data or offload actions to an external system, or utilize an AI system to derive intelligent results, such as, predictions, classifications, generations, etc.

Such an agent must be capable to perform the expected actions and produce results on it’s own without any knowledge of or reliance on other agents. For example, an agent designed to be skilled at providing weather forecast, must be able to provide results by downloading historical weather data and performing regression, or simply by utilizing an API from an external system. During the entire weather prediction process, the agent must be autonomous.

Thus, Agents are autonomous systems that possess specific skills and execute actions to perform the expected service.

Working of an Agentic AI system

There is no one way to build an agentic system, albeit, adding intelligence to agents elevates the complexity in building such systems (constantly validating reliability, trust, and fairness). To best understand agent-oriented software development paradigm, it is best to understand object-oriented software development paradigm.

Object-Oriented Paradigm (OOP) is aimed at bringing some kind of organization to software development by representing real-world entities / “objects” and the behaviour / “methods” they can emulate in relation to the data presented (e.g. getValues / setValues). OOP is a development “tool” to support code-reusability, for example, through inheritence. For example, an Animal class with behaviors like walk, talk, etc. can be easily inherited by a Dog class such that the walk function / method can be used as-is, and the talk function could be used partially as-is and enhanced further via techniques like method-overloading. Later, multiple Dog objects can be created with individuality (e.g. their own name and color). Thus, OOP is mainly an approach where the desired logic is embedded in representaional objects and the main program flow uilizes each object to drive a certain behavior without any specific cognitive sense. Also, the developer must be fully aware of all the classes and it’s functions through well-written documentation as the objects cannot publish itself to the main program flow and let the flow decide which object and which of it’s method can be invoked.

Agent-Oriented Paradigm (AOP), on the other hand, is aimed at defining personalities with skills that can produce the expected results (not necessarily just manipulate the data). For example, a Translator agent would be designed with it’s translate skill to perform gramatically and cognitively accurate translations of any given text. Here, the “text” is not an object and “translate” is not it’s method, unlike in OOP. In many ways, an AOP represents an environment that constantly sets new goals and accomplishes those goals by engaging appropriate agents. Thus, unlike an OOP where objects cannot publish their methods, agents are able to publish themselves and dynamically engage with their specific skills.

To provide a good example of how AOP can be best leveraged, let’s consider a customer service function built in a software system. “Customer service”, in this case, is an environment where customers would arrive into to get some sort of support interacting with a given business. Such an environment would ideally have agents with specific skills, for example, an agent that can work with customer orders (placing and order, cancelling, etc.). Or an agent that can work with billing aspects (processing payments, issue refunds, etc.). Or an agent that can sell (show products, describe them in an exciting manner, figure out best deal / price, etc.). Imagining that you are able to visualize this picture of different agents in a room (environment), let’s bring in a customer who has ordered a widget that he wants to gift his wife for their anniversary. He is worried that it won’t reach there in time before their anniversary and therefore calls customer-service. A frontline agent starts interacting with the customer and now has a couple of options to help him. One option is to change the shipping speed, send a notification to the warehouse agent to prioritize shipping, and send a notification to the billing agent to process the additional shipping charge. Another option is to first check if the product is on backorder via the inventory management agent; and assuming it is so, an order management agent must cancel the order and handover the customer to the selling agent to help him find another product that is in the inventory and can reach the customer before their anniversary. Point-in-case being that the environment is working with the customer and other agents, unlike a strictly designed business process flow with only limited options that the developer or a business process owner might have thought through when designing the system.

Role of GenerativeAI in Agentic AI systems

There is a perfect combination of dynamism and cognition is required when utilizing agentic systems, or else a systems design might turn into a borderline monilth. This is where the Generative Artificial Intelligence (GenAI) practice of computer science comes into play since it can provide both, the cognition to understand the problem statement at hand, and dynamism to develop a plan to achieve the goal based on information available at that point in time.

However, please note that we are talking about “Agentic AI Systems” here and not “agents” themselves. Agents, per se, don’t have to be built as intelligent entities. They could utilize standard software development techniques, such as calling APIs for taking actions, retrieving and updating database records, reading or writing to a file, etc. Now, they can be intelligent, but they could use non-generative artificial intelligence techniques like deep-learning and utilizing algorithms for predictions, classifications, etc. And finally, yes, they can also utilize Generative AI if it comes to “generating” results. So, bottomline, Agents in an Agentic AI system have a wide spectrum of capabilities to represent a digital-twin of a real-world, agent-like figure. When developing agents, its best to focus on aspects of replicating the real-world agent rather than thinking of how they will be utilized (we will come to “the how” as well in a bit!). Keyword is modular design. So, again, when developing agents, don’t keep the end in mind; keep the possible behaviors in mind.

It is the Generative AI that will utilize these agents and one or more of it’s skills when it comes to the right problem statement. The true power of Generative AI will be to “think” and “plan” the best approach to solve a given problem. And when it knows it is ready to “act”, it would engage an Agent that demonstrates the required skill to perform that action succinctly. In the previous example with the customer service environment, the frontline agent takes appropriate decisions to engage its fellow agents, specialized in various aspects of business from sales, finance, shipping, etc. The frontline agent, thus, in that example, is the most viable consumer of Generative AI while the fellow agents would rely on backend system operations using microserices or traditional monolith applications.

How to build Agentic AI systems?

One approach is called “Multi-Agent System” (a.k.a. MAS) that, as the name suggests, utilizes multiple agents to provide desired outcomes.

Figure representing Multi-Agent System (MAS) interacting with Agents in an Agentic AI System

The multi-agent system (MAS) functions as the command center with full knowledge of all the skills available at it’s disposal. The MAS, is also inherrently capable to take up complex tasks and come up with a step-by-step approach to solve them by using those skills.

An implementation using this form of MAS with Agentic AI workflow is BroadAI (https://broad-ai.github.io/). BroadAI implements an AOP approach such that developers using this framework are shielded from all the heavy-lifting of advanced Prompt Engineering, LLM grounding, AI explainability, etc. Check-out the teaser video on YouTube.

Conclusion

There is a great sense of hightened expectations from Agentic AI workflow patterns; and rightfully so, because who doesn’t enjoy modular architecture patterns? However, many ideas of agents are currently focused on over-skilling them (adds cost, complexity) and unnecessary exploitation of GenAI with function calling (hinders maintainability). Another challenge is around how we design agents (digital twins) and cross-agent interaction (agent-to-agent vs hierarchial). If we have learnt anything from point-to-point and many-to-many integration architecture patterns, it’s that it only adds complexity to not only build a system, but also operationalize after deploying them in Production. We need to give better thought at architecting AI solutions for speed, efficiency, and cost. So, I guess more work is required in developing applications with Agentic AI patterns, and if nothing else, the one key takeaway I’d like to highlight, is that a perfect combination of dynamism and cognition is required when utilizing agentic systems, or else a systems design might turn into a borderline monilth, which will put us a couple of years behind in the software development progress!

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

Mangesh Pise
Mangesh Pise

Written by Mangesh Pise

With over 24 years of experience in IT, I specialize in driving business outcomes. Committed to thought leadership, I actively share insights through blogging.

No responses yet

Write a response