Systemic Agent Design: How to Build AI Products That Solve Problems You Didn't Script

Systemic Agent Design: How to Build AI Products That Solve Problems You Didn't Script

My Discovery of Systemic Agent Design

I was testing a simple AI agent tool, but the AI surprised me with a safety intervention I never wrote code for. In my health app, my agent named Chef Kay has a tool that can add ingredients to the user's shopping list feature. My user profile was set up to be dairy-free. I asked Chef Kay to add eggs, milk, and bananas to my shopping list. Chef Kay responded that because I was dairy-free I needed to swap that for an alternative milk, like oat, coconut, or almond milk.

I chose almond milk, and it proceeded with the tool call, adding almond milk, eggs, and bananas to my shopping list. I was surprised how smooth this was, and how powerful it was to see my AI agent use my health data to make sure I was safe on my therapeutic diet.

Screenshot of an AI agent realizing the user is dairy-free and asked to have milk added to their shopping list. The AI agent asks which non-dairy milk substitute the user wants instead.
Chef Kay keeps users safe by checking their health profile and using tools with that information.

This, unplanned, emergent capability from Chef Kay happened because the tool interacted within a carefully constructed system of rules; one being that Chef Kay must respect the user's health data and not suggest any foods that could hurt their gut health.

Traditional software development is deterministic: if X, then Y. Handling every dietary restriction requires endless if/else statements that are brittle and hard to maintain. But AI agents allow for 'Systemic Design', which solves this complexity. This felt familiar because systemic design is exactly what I did as a video game designer during my 10+ year career at companies like LucasArts. I believe the future of agent design is what I call Systemic Agent Design.

What is Systemic Agent Design?

When I worked as a video game designer, I worked with gameplay systems to create emergent gameplay moments. When done right, designers unlocked new gameplay experiences they hadn't initially planned for and didn't explicitly program for. Players used these systems to solve problems where designers didn't script solutions.

BioShock Electrobolt weapon zapping an enemy standing in water.
BioShock Electrobolt weapon zapping an enemy standing in water.

BioShock is a series known for its systemic interactions in its gameplay design. Mechanics like Plasmids and environmental hazards (e.g., water conducting electricity) are designed to interact with each other systematically, allowing for emergent solutions to combat. An electricity Plasmid shot at a puddle of water will do significant damage to enemies standing in the water. This systemic design allows for scalable engineering and player agency in solving problems.

I was fortunate enough to have worked on Star Wars: The Force Unleashed as a game designer. For the Felucia level, I used LUA scripts and our gameplay systems to allow players to Force Push and Grip enemies into explosive Sarlaac pustules and alien explosive plants. The combination of the Force abilities, enemy AI behaviors, and explosive physics simulations gave players creative solutions in combat.

Star Wars: The Force Unleashed with text, "+ enemy AI (problem) + Force Grip (tool) + explosive plant (physics) = ???"
Systemic design in SW: TFU allowed players to use tools and game rules to solve problems.
Star Wars: The Force Unleashed, a player used Force Grip to throw an enemy into an explosive plant. Text overlaid reads, "= player agency in problem solving"
Systemic design in SW: TFU allowed players to use tools and game rules to solve problems.

In agent engineering, we can design for systemic interactions, where different systems of the app and agent tools interact with each other to unlock emergent behaviors, not for users, but for AI agents.

Why Build for Systemic Agent Design?

In games, this creates fun and player agency. In AI Agent Engineering, this creates agent agency and scalability. Instead of scripting 1,000 if/then statements for every users scenario and edge cases, we build a Systemic Agent system that adapts to 1,000+ scenarios automatically. AI Agents can solve problems for users we hadn't thought to solve deterministically with explicit code.

How to Build for Systemic Agents?

Dynamic Data + AI Reasoning + Systemic Tools = Magical Experience

Ground your app in dynamic data from users like health or skill proficiency, databases, Vector Stores for RAG, etc. The more high quality, relevant contextual data you can embed into your AI's context window the better. Ensure it is dynamic because the people and organizations are not static. Agents need constant refreshing of the data to keep up with our fast changing world.

Use an AI reasoning model that can competently decide when and how to use the tool capabilities you provide. Give them tools primarily through system prompts and Skill definitions that define when and how to use them.

Define the actual tool capabilities in code, but make them systemic where the outputs are based on the dynamic data in your app and the AI agent. Contrast this with "Deterministic Tools." A deterministic tool is "Send Email." A systemic tool is "Communicate Status," where the agent decides how (email, SMS, in-app) based on the urgency required of the outgoing data.

Practical Example from Meadow Mentor

A chat conversation between user and AI agent "Chef Kay". Chef Kay asked the user how they were feeling. User said low energy and stressed. Chef Kay responded they'll customize recipes for the user state.
Chef Kay dynamically updates and responds to user states.

Meadow Mentor is a health app for people with GI conditions who use complex therapeutic diets. Chef Kay is the AI agent persona I've created to help users on their gut health journey. I implemented a feature where the user can set their energy and stress levels either manually, or Chef Kay will do it for them via a tool call. The stress level is a Mongo database field that expires after 4 hours. If not set, Chef Kay will ask the user how they are feeling and use a tool to update the user's stress level in the database.

Now that it's set consistently, when the user asks for a recipe, Chef Kay will use the stress level to search for or create recipes that are safer to eat because stress levels are high. The dynamic user data is an input into how Chef Kay decides to use other tools such as Search Recipes, Create Recipes and Edit Recipes. They are not hardcoded to search and create recipes the same way each time. The dynamic results are fed back to Chef Kay and she tailors the response given the stressed state of the user.

Without this systemic design I would have to hard code something like:

pseudo code
If user.stress >=5 AND requested a saved recipe, then
search for recipes that are low-fiber

With Systemic Agent Design, delivering value to the user is not hard coded into the app. It's a capability that emerged from all of the interacting systems; dynamic data + AI reasoning + systemic tools.

The Business Value of Systemic Agent Design

What would have been days or a couple week sprint to map out every stress-diet combination took an hour to implement using my Systemic Agent Design approach. It was implemented using Claude Opus 4.5 in plan mode after giving it context for the Systemic Agent Design system. During testing, it felt completely natural to have Chef Kay ask how I'm doing and then updated my state variables. That data then flowed seamlessly into future requests for the AI to search for recipes and create new ones, all aligned to my needs.

Next Steps

The future of AI Agent Engineering and Product Management isn't only writing requirements; it's designing systems. If you're building agents, don't build a theme park ride, and instead build the playground.

Are you building Systemic Agents? Feel free to reach out, would love to share notes and help each other grow in this new discipline.