
CyberScot has worked with a number of teams building large language model (LLM) agents across industries. We observed the most successful implementations were not using complex frameworks or specialised libraries. Instead, they were building with simple, composable patterns.
This is what we have learned from working with our customers and building agents ourselves. We hope to share some practical advice for developers on building effective agents.
What are agents?
“Agent” can be defined in several ways. Some customers define agents as fully autonomous systems that operate independently over extended periods, using various tools to accomplish complex tasks. Others use the term to describe more prescriptive implementations that follow predefined workflows. At CyberScot, we categorise all these variations as agentic systems, but draw an important architectural distinction between workflows and agents:
Workflows are systems where LLMs and tools are orchestrated through predefined code paths.
Agents, on the other hand, are systems where LLMs dynamically direct their own processes and tool usage, maintaining control over how they accomplish tasks.