It is kind of surprising that there is still no standard definition for an AI agent in the industry. You will often find people debating what an agent actually is.
If you step back and think about when this idea of agentic AI came into the picture, it was only recently with the introduction of the large language model or LLM.
But an LLM on its own is just a read-only engine. It generates text, and that is it.
This is what we call a Chatbot: a chat UI connected to an LLM. That is what the most popular AI tools such as ChatGPT, Gemini, and Claude are. Even though these chatbots have access to a few tools now and can do slightly more than generate text, at their core, they just generate text.
An agent can also generate text from its training memory, but its primary function is to do something, or multiple things.
So the most accurate definition of an AI agent is that it can accomplish a task.
An agent can technically do anything you want: check deals on a website, check prices on a flight, query databases, etc. Anything that can be programmed, an agent can do.
The important thing to understand about agents is that about 80% of the code of an agent is regular code, maybe Python, TypeScript, or whatever programming language you prefer, and only 20% is the LLM.
For example, if you build an agent to scrape content from a website, you will use a script to do the scraping, and the LLM will just clean up the data for you and make it look nice.
If you want to get real-time data from the stock market, you will write a script to get that data from whatever website you want, and then use an LLM to present that data in a nice way.
Many AI workflows being created nowadays are just code that do not need an LLM at all.
Historically, the biggest problem has been finding a standard way of sharing information across applications securely and reliably. We have had APIs (Application Programming Interfaces) for a while, but only a few applications provide that access and building custom integrations is expensive.
Now, with the birth of LLMs, the industry is standardizing on the MCP protocol. MCP stands for Model Context Protocol, and many applications provide one now. SAFi also adopted the MCP protocol for its agents and added a governance layer to it.
In SAFi, every MCP tool that is enabled goes through an approval process set up by the organization.
You can manually set who the approvers are, or the admins can be the approvers. The rule is that if there are two or more admins in the organization, both need to approve the changes. If there is only one admin, they can self-approve, but it is recorded in the compliance log as such.
For developers who want to expand beyond the MCP ecosystem, they can build their custom agents in the SAFi backend using Python or whatever language they prefer.
Alternatively, they can use an existing framework like LangChain to build the agent, and simply wire SAFi to act as the strict governance layer over it.
