Agentic Engineering

Ahmad Vegah

Software development is changing and we find ourselves at a convergence. Agentic Engineering means integrating AI into your existing development workflows, allowing AI to handle repetitive tasks, generate boilerplate code, and even suggest improvements to your codebase. This not only speeds up development but also allows developers to focus on more complex and creative aspects of software design.

Agentic Engineering represents the integration of two seemingly opposing approaches: Deterministic vs. probabilistic.

Traditional software is deterministic. Given some input, if you run the program again, you will get the same output. A developer has explicitly written code to handle the paved path. AI models are not this way. They are probabilistic. This means there are many different paths the model might take given the same input.

Deterministic

The same input will always produce the same output. This happens when temperature = 0.

Probabilistic

The same input can lead to different outputs each time. This happens when temperature > 0, allowing randomness.

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. We can categorise all these variations as agentic systems.

An Agent is a self-contained execution unit designed to act autonomously to achieve specific goals. Agents can perform tasks, interact with users, utilize external tools, and coordinate with other agents.

An illustration of an AI Agent

An illustration of an AI Agent. An agent is a system that can perceive its environment, reason about it, and take actions to achieve specific goals. Agents can be simple or complex, and they can operate in a variety of environments, from virtual worlds to the physical world.

Tools in a loop to achieve a goal

Agents are models using tools in a loop to achieve a goal. Let’s break that down.

This is the pattern baked into many LLM APIs as tools or function calls—the LLM is given the ability to request actions to be executed by its harness, and the outcome of those tools is fed back into the model so it can continue to reason through and solve the given problem.

“To achieve a goal” reflects that these are not infinite loops—there is a stopping condition.