I collect agent definitions. I think the two most important at the moment are Anthropic's and OpenAI's.
The Anthropic one boils down to this: "Agents are models using tools in a loop". It's a good technical definition which makes sense to software developers. https://simonwillison.net/2025/May/22/tools-in-a-loop/
The OpenAI one is a lot more vague: "AI agents are AI systems that can do work for you independently. You give them a task and they go off and do it." https://simonwillison.net/2025/Jan/23/introducing-operator/
I've collected a bunch more here: https://simonwillison.net/tags/agent-definitions/ but I think the above two are the most widely used, at least in the LLM space right now.
The "agency" in this example is on the coder that came up with the workflow. It's murky because we used to call these "agents" in the previous gen frameworks.
An agent is a collection of steps defined by the LLM itself, where the steps can be performed by LLM calls (i.e. research topic x for me -> first I need to search (this is the LLM deciding the steps) -> then I need to xxx -> here's the report)
The difference is that sometimes you'll get a report resulting from search, or sometimes the LLM can hallucinate the whole thing without a single "tool call". It's more open ended, but also more chaotic from a programming perspective.
The gist is that the "agency" is now with the LLM driving the "main thread". It decides (based on training data, etc) what tools to use, what steps to take in order to "solve" the prompt it receives.
I think for the average consumer, AI will be "agentic" once it can appreciably minimize the amount of interaction needed to negotiate with the real world in areas where the provider of the desired services intentionally require negotiation - getting a refund, cancelling your newspaper subscription, scheduling the cable guy visit, fighting your parking ticket, securing a job interview. That's what an agent does.