Skip to main content

16 posts tagged with "Agent Engineering"

Building, running, and hardening AI agents for production.

View All Tags

The Model Is a Component: Designing for the Swap

· 9 min read
CatalEx Engineering
The team building CatalEx
CatalEx Engineering · Published July 13, 2026 · 09:00 UTC

Every AI platform says it is model-agnostic. Almost none of them are. Not because the teams are lying — because agnosticism isn't a property you declare in a README. It's a seam in the code, and a seam that nothing routinely crosses is a seam that has already rusted shut. You just don't find out until the day you try to move it.

Deny by Default: Permissions for Agents That Act

· 9 min read
CatalEx Engineering
The team building CatalEx
CatalEx Engineering · Published July 12, 2026 · 09:00 UTC

A chatbot that says something wrong is embarrassing. An agent that sends something wrong is a fact about the world. The moment an agent can send, post, create, or delete, it stops being a text generator and becomes a principal in your system — with credentials and reach, taking actions other people receive.

The instinct at that point is to write a better system prompt. Tell the model to be careful. Tell it to confirm before sending. This doesn't work, and it doesn't fail in an exotic way — it fails because a system prompt is a suggestion addressed to the thing you're trying to constrain.

Spend Credits Like They're Yours: Building Token-Efficient Agents

· 9 min read
CatalEx Engineering
The team building CatalEx
CatalEx Engineering · Published July 10, 2026 · 09:00 UTC

Most advice about token efficiency is prompt golf. Trim the system prompt. Cut the pleasantries. Replace the paragraph with a bullet. Shave two hundred tokens off the instructions and feel briefly virtuous about it.

It's the wrong game. Two hundred tokens is a rounding error next to a single tool result you didn't need to look at, dragged forward through every turn of a thirty-turn run. The wins that matter are structural: they come from deciding what never enters the context window in the first place. Not what gets said more tersely — what never gets said at all.

This is a practical guide to making that decision well. Four moves, each one a place where a real agent either touches something or doesn't, and then a section on what to do about it when you sit down to build your own.

Knowing When to Stop: The Hardest Part of an Agent Loop

· 8 min read
CatalEx Engineering
The team building CatalEx
CatalEx Engineering · Published July 9, 2026 · 09:00 UTC

Everyone who designs an agent loop spends their time on two steps. They tune the generate step, because that's where the intelligence appears to live. They harden the verify step, because that's where the discipline lives. Almost nobody budgets serious design effort for the third step, which is the one that actually determines whether the loop is trustworthy: the stop.

Here is the uncomfortable mechanical fact underneath every loop you have ever built. A turn that produces text with no tool call is the only place a run can stop. That's it. That's the entire exit condition — the absence of a function call. And that single signal conflates three completely different situations, which is why agents routinely "finish" tasks they never did.

This post assumes you already have a loop — generate, verify, correct — and that it has burned you at least once. We're going one level down, into the exit.

The Four Walls: Budgets That Stop a Runaway Agent

· 9 min read
CatalEx Engineering
The team building CatalEx
CatalEx Engineering · Published July 8, 2026 · 09:00 UTC

Ask an engineer how to stop an agent that won't stop, and you'll get the same answer every time: add a limit. It's the right instinct and the wrong plan. There is no single limit that catches every shape of runaway, because runaways don't have one shape — and each shape slips past a different guard for a different structural reason.

Writing a Skill an Agent Will Actually Read

· 8 min read
CatalEx Engineering
The team building CatalEx
CatalEx Engineering · Published July 7, 2026 · 09:00 UTC

A skill is a self-contained Markdown directive with a little YAML frontmatter on top, sitting in its own directory. That description makes it sound like documentation, which is exactly the trap. The interesting part is not what a skill contains. It's when the agent pays for it.

Here is the sentence we keep in our own skill registry, and it is the whole design: a skill is a directive the agent reads on demand via a read_skill tool, rather than something injected into every prompt — so the agent pays the token cost only when the skill is actually relevant to the turn.

Cron Is Not a Scheduler: Running Agents on Time at Scale

· 9 min read
CatalEx Engineering
The team building CatalEx
CatalEx Engineering · Published July 6, 2026 · 09:00 UTC

"Run this agent every morning at 9" sounds like a one-line feature. There's a cron expression, there's a job table, there's a thing that reads the table. Ship it Friday.

Cron is the easy 5%. The other 95% is not firing twice, not losing a fire, not holding a database transaction open across a task that runs for minutes, and deciding whose 9am you actually mean. A cron expression is a trigger. A scheduler is everything you build around it.

What an Agent Can Actually Do (And When It Does It)

· 7 min read
CatalEx Engineering
The team building CatalEx
CatalEx Engineering · Published July 5, 2026 · 09:00 UTC

"What can your agent do?" is two questions wearing one coat. The first is about the action space: once the agent is awake and thinking, what can it reach, call, read, and change? The second is about the trigger space: what makes it wake up in the first place? Teams conflate them constantly, and the conflation is expensive, because the two want opposite answers.