chapter one

1 The agent paradigm shift

 

This chapter covers

  • Output, behavioral, and environmental uncertainties of agent systems
  • How classical design patterns evolved into agent design patterns
  • Why every agent pattern has an engineering ancestor
  • What qualifies a software system as an agent and the vocabulary used to describe its design
  • Building Argus, a code review agent
"The transition from a paradigm in crisis to a new one is far from a cumulative process. It is rather a reconstruction of the field from new fundamentals."

— Thomas Kuhn, The Structure of Scientific Revolutions (1962)

I was impressed by what coding agents can do, until an engineer working on a mature business system showed me what they did not know. He told me about a coding agent that was asked to add a controlled rollout to an existing service, exposing a new behavior to a small share of users. The repository already had the team's rollout utility, but the agent built another one. The implementation looked reasonable in isolation; inside the system, it created a second mechanism that could drift from the first.

1.1 What exactly is an agent?

1.2 From fixed control flow to model-directed control

1.2.1 What breaks and why

1.2.2 Uncertainties of agent systems

1.3 What makes agent patterns fundamentally different

1.3.1 What this changes for developers

1.4 Designing agents through cognitive functions

1.4.1 Argus reviews a pull request

1.4.2 How this book turns design choices into evidence

1.5 Summary

1.6 References