Every agency owner has the same fantasy at some point. You picture a system that writes the first draft, checks its own work, learns from what the client sent back, and quietly gets better every week without anyone having to sit in a two hour retro. Then you remember the last time a "smart" tool got a bit too clever, sent a half-baked proposal to a client, and you spent the Friday afternoon doing damage control.
That tension is the whole story of AI in agencies right now. We want systems that improve on their own. We also want to sleep at night. Bounded self-improvement loops are how you get both.
What we actually mean by a bounded loop
A self-improvement loop is any system that does a task, gets feedback on the result, and changes how it does the task next time. Nothing new there. Your junior copywriter runs on one.
The "bounded" part is where agencies usually go wrong, in one of two directions. Either they give the AI no room to adapt at all, so it is just an expensive template, or they give it too much and it starts drifting in ways nobody signed off on.
A bounded loop has four pieces that must all be present:
- A clearly defined task with an owner. Not "improve our client reporting" but "draft the monthly performance summary for retail clients in the Shoprite tier."
- A feedback signal that is actually measurable. Client edits, approval rate, time to sign-off, a rubric score from a senior. Something you can count.
- A permitted range of change. What the system is allowed to alter about itself, and what is locked.
- A human checkpoint at a fixed interval. Weekly, fortnightly, per sprint. Not "when we get around to it."
If any of these is missing, you do not have a bounded loop. You have either a static tool or an unsupervised one.
Why agencies specifically
Agencies are unusually well suited to this, and unusually exposed if it goes wrong.
Well suited because agency work is repetitive at the structural level even when it is creative at the surface. You produce briefs, decks, ad copy, reports, and status updates in patterns that repeat across dozens of clients. That repetition is exactly what a loop needs to learn from.
Exposed because your output goes to someone else's brand. A model that slowly learns your team's shorthand and starts putting "lekker" in a banking client's LinkedIn copy is a real risk, not a hypothetical. Drift in an agency setting shows up in front of clients before it shows up on your dashboard.
A practical implementation, step by step
Here is how we have seen this work for small and mid-sized agencies, without a data science team and without a six figure platform spend.
Step one: pick one loop, not five
Start with the task that has the highest volume and the lowest stakes. For most agencies that is something like first-draft social captions, internal meeting summaries, or the boilerplate sections of a proposal. Do not start with strategy decks. Do not start with anything a client sees before a human does.
Step two: write down the boundaries before you write a single prompt
This is the step everyone skips. Sit down with the account lead and the person who will review outputs, and answer these in writing:
- What is the AI allowed to change about its own approach? Tone, structure, length, which examples it references?
- What is locked? Brand terminology, legal disclaimers, POPIA-related wording, anything the client has approved verbatim.
- What is the feedback signal? Be specific. "The reviewer marks each output as accept, minor edit, or reject" is good. "We see how it goes" is not.
- Who can widen the boundaries, and what evidence do they need to see first?
Keep this to one page. If it needs more, the loop is too big.
Step three: separate the working prompt from the learning layer
Technically, the simplest way to implement this is to have two things. The first is a stable base instruction that encodes the locked elements, which nobody touches without sign-off. The second is a small, versioned set of "learnt preferences" that the loop is allowed to update, drawn from feedback.
In practice this often looks like a base prompt plus a short appended section: "Recent reviewer feedback indicates the following adjustments." The system can propose additions to that section. A human approves them at the checkpoint. That is the whole mechanism. It is not glamorous, and it works.
Step four: capture feedback where people already are
If your reviewers have to open a separate tool to log feedback, they will not do it, and your loop starves. Put the accept, edit, or reject signal in the same place the review happens, whether that is a Google Doc comment, a Slack reaction, or a column in the sheet you already use for approvals. Acalytica clients often wire this into the same workflow tools they already track time and deliverables in, which means the feedback costs the reviewer about two seconds.
Step five: hold the checkpoint like a real meeting
At the interval you set, someone looks at three things: what the system proposed changing about itself, whether the feedback signal actually improved, and whether anything drifted outside the boundaries. Approve or reject the proposed changes. Log the decision. Fifteen minutes, done.
The log matters more than people think. When a client asks why the tone of their content shifted in March, you want to be able to show that a human approved that shift, and why.
The failure modes to watch for
A few patterns come up again and again.
Optimising for the wrong signal. If your feedback is "did the reviewer accept it," the loop will learn to produce whatever is easiest to accept, which is often bland and safe. Pair acceptance with a quality rubric, even a rough one.
Silent boundary creep. Someone widens the permitted range "just for this client" and forgets to narrow it back. Treat boundary changes with the same discipline as a change to a client's brand guidelines.
Feedback from the wrong people. If the intern is the only one reviewing, the system learns the intern's taste. Rotate reviewers or have a senior spot-check a sample.
Loops that touch each other. Once you have three or four loops running, one system's output becomes another's input. A change in the brief-writing loop quietly reshapes the copy loop. Map these dependencies before you add loop number three.
What this looks like six months in
An agency that does this properly does not end up with a magic robot. It ends up with a handful of small, well-understood systems that each do one repetitive thing noticeably better than they did at the start, with a paper trail showing every change and who approved it.
The team spends less time on first drafts and more time on the parts of the job clients are actually paying for. Nobody has had a Friday afternoon fire because the AI got creative with a disclaimer. And when a client asks "how does your AI work," you can answer in plain language, which in the current market is a competitive advantage on its own.
The temptation will always be to loosen the bounds once things are going well. Resist it, or at least resist it until the checkpoint. The bounds are not what slows the system down. They are the reason you can trust it enough to use it at all.
If you want a practical template for the one-page boundary document, or want to see how other South African agencies have wired feedback capture into their existing tools, get in touch with the Acalytica team.