DEV Community

Cover image for Agent First, Human Simple
Kasra Zunnaiyyer
Kasra Zunnaiyyer

Posted on • Originally published at zunnaiyyer.com

Agent First, Human Simple

The New Product Design Framework for the Age of AI Agents

Your product has a new user. And that user isn't human.

OpenClaw, an open-source autonomous agent originally launched as Clawdbot, went viral in early 2026. It's fairly technical to set up. Not the most polished product. But the idea electrified people.

Give an AI full access to your machine (browser, terminal, files) and let it act on your behalf through WhatsApp, Telegram, or Discord. We all saw what happened next: Mac Mini sales spiked because people wanted a dedicated machine for their personal agent to live on.

OpenClaw is the early signal, not the final form. Soon, polished and streamlined versions of this idea will arrive. Products that anyone, technical or not, can set up in minutes. Everyone will have a personal autonomous agent.

And once people get comfortable delegating simple tasks like booking tickets and scheduling appointments, they'll start delegating harder ones: expense management, insurance claims, even investment decisions.

The question for product builders is straightforward: almost every product today is designed for humans clicking through it step by step. That was a reasonable tradeoff when humans were the only operators. They're not anymore.

After spending a lot of time thinking about this shift, and building products in it, I landed on a framework that I believe every product will eventually need to adopt. I call it Agent First, Human Simple (AFHS), a design framework for building products where AI agents handle complexity and humans stay in control.


What Agent First, Human Simple means

The name is the framework.

Agent First means the product's primary interface is designed for AI agents. Not as an afterthought. Not as an API tacked onto a web dashboard. The agent interface is the first thing you build, and it's a first-class citizen.

In practice, Agent First means: expose your product through a structured CLI. Commands with typed parameters. JSON responses. Predictable behavior. Self-healing errors.

This is the native language of agents: structured, composable, token-efficient. When an agent uses a CLI, a single operation costs a handful of tokens. When it tries to use a browser interface, the same operation can cost thousands of tokens in screenshots, element parsing, and retries.

Human Simple means the human interface is a completely different layer, built for a completely different purpose. The human doesn't operate the system. The human oversees the system. Three interactions, and only three:

  1. Express intent. Tell the agent what you want.
  2. Set guard rails. Define what the agent can and can't do.
  3. Stay informed and approve. See what happened, intervene when needed.

If the human needs to learn a complex interface, navigate multi-step workflows, or spend more than three seconds understanding the current state, the design has failed.

Between the two sits the Guard Rails layer, the bridge that makes Agent First, Human Simple safe. More on that in a moment.


The Agent Interface

Think about what an AI agent needs to use a product effectively.

It needs to call functions with specific parameters. It needs structured, predictable responses. It needs to chain operations: do A, then based on the result, do B or C. It needs error messages that tell it what went wrong and how to recover. It does not need colors, layouts, hover states, toast notifications, or modal dialogs.

A CLI (Command Line Interface) is exactly this. Structured commands in, structured data out.

This isn't a new idea. The reason AWS, Stripe, Vercel, and GitHub all built powerful CLIs alongside their dashboards is because they understood that machines are a first-class audience.

Anything you can do in the AWS console, you can do through their CLI. That single decision enabled an entire ecosystem of automation, tooling, and infrastructure-as-code that GUI-only platforms simply can't match.

Agent First, Human Simple applies the same principle to every product category. If you're building a travel platform, a healthcare scheduler, an e-commerce store, or an HR tool, the first question should be: "Can an AI agent use this product through structured commands?"

Here's what an Agent First CLI looks like across different domains:

Travel:

search_flights --from KHI --to DXB --date 2026-02-19 --max-price 500
Enter fullscreen mode Exit fullscreen mode

Healthcare:

find_appointments --doctor "Dr. Amara" --specialty cardiology --week next --prefer morning
Enter fullscreen mode Exit fullscreen mode

E-commerce:

reorder_last --item "organic coffee beans" --quantity 2 --apply-coupon auto
Enter fullscreen mode Exit fullscreen mode

HR:

request_leave --type annual --from 2026-03-10 --to 2026-03-14 --reason "family vacation"
Enter fullscreen mode Exit fullscreen mode

Each command is explicit, typed, and predictable. The response comes back as structured JSON. The agent can parse it instantly, reason about it, and decide its next action, all in a handful of tokens.

Now compare this to what happens when an agent tries to accomplish the same tasks through a browser: take a screenshot, analyze the layout, identify clickable elements, figure out which one does what, click, wait for the page to load, check the result, repeat.

Each step burns tokens. Each step can fail. A pop-up, a cookie banner, a dynamic element loading late. Any of these can break the flow.

An Agent First CLI is an order of magnitude cheaper, faster, and more reliable. The same workflow that costs 50,000 tokens through a browser costs 500 through a CLI. That's the difference between agents that can afford to handle a hundred tasks a day and agents that can barely handle ten.

The self-healing error

One detail separates an Agent First CLI from a traditional API: the how_to_fix field.

{
  "success": false,
  "error": {
    "code": "SLOT_TAKEN",
    "message": "The 9:00am slot with Dr. Amara on March 12 is no longer available",
    "how_to_fix": "Run find_appointments --doctor 'Dr. Amara' --date 2026-03-12 --prefer morning to see current availability, or try --date 2026-03-13"
  }
}
Enter fullscreen mode Exit fullscreen mode

Traditional APIs return an error code and stop. The developer (or agent) has to figure out what to do next.

An Agent First CLI tells the agent exactly how to recover. The agent reads the how_to_fix instructions, adjusts its approach, and tries again. No escalation to the human. No getting stuck. No wasted tokens on guesswork.

This is the difference between an agent that handles exceptions gracefully and one that gives up at the first obstacle.


The Guard Rails

If Agent First is the engine, Guard Rails are the steering wheel.

The biggest objection to autonomous agents is always the same: "What if it does something wrong?" And the wrong answer is: make the human approve everything. That defeats the purpose.

If the human has to sign off on every search, every comparison, every minor action, you've just rebuilt the old multi-step interface with extra steps.

The right answer is Guard Rails, configurable boundaries that define what the agent can do freely, what requires human approval, and what's blocked entirely.

Agent First, Human Simple uses a traffic-light model because everyone already understands it:

  • Green. Pre-approved. The agent executes automatically. No human involvement.
  • Yellow. Approval required. The agent pauses, sends the human a request with full context, and waits for a decision.
  • Red. Blocked. The agent cannot perform this action under any circumstances.

Guard Rails are configured at two levels:

Product defaults are set by the builders. These are sensible, safe rules that protect every user from day one. A travel product might default to: all searches are Green, bookings under $200 are Green, bookings over $200 are Yellow, cancellations are Yellow, payment method changes are Red.

User overrides let the human adjust the thresholds. A frequent business traveler might raise their auto-approve limit to $1,000. A parent might make all international bookings Yellow. A company admin might set certain vendors as Red for compliance.

Here's what Guard Rails look like in practice across different products:

Travel Agent:

Action Default User Override
Search flights Green -
Book under $500 Green Raised to $1,000
Book over $500 Yellow -
Cancel booking Yellow -
Change payment method Red -

Healthcare Scheduler:

Action Default User Override
Search appointments Green -
Book routine checkup Green -
Book specialist Yellow -
Cancel appointment Yellow Changed to Green
Share medical records Red -

E-commerce Assistant:

Action Default User Override
Search products Green -
Reorder previous items Green -
New purchase under $50 Green Raised to $100
New purchase over $50 Yellow -
Change shipping address Yellow -
Delete account Red -

The pattern is consistent across every domain. Low-risk, reversible actions are Green. High-value or consequential actions are Yellow. Dangerous or irreversible actions are Red. The human configures once, adjusts when needed, and the agent operates accordingly.

When a Yellow action fires, the escalation should feel like answering a text message:

"Your travel agent wants to book a $620 flight to Dubai, above your $500 auto-approve limit. EK502, Thu Feb 19, Window 14A. Approve?"

[Approve]   [Decline]   [Adjust limit]

One tap. Full context. The agent already did the work of framing the decision with everything the human needs. The human doesn't research. They decide.


The Human Interface

Agent First, Human Simple fundamentally redefines the human's role in software.

Anyone who's done B2B sales knows this: upper management doesn't care about how easy the form is to fill out. They don't care about the data entry experience, the export flow, or how many clicks it takes to generate a report.

They just want the dashboard. They want to see the numbers, approve the decisions, and move on.

Here's the thing most product teams miss. Upper management isn't a special category of user. Everyone feels this way.

The only difference is that executives have the authority to delegate the grunt work. Operators don't have that choice, so they end up caring about the form, not because they want to, but because they have to. If they could choose, they'd also prefer to just monitor and approve.

Agent First, Human Simple gives everyone that choice.

In traditional products, the human is the operator. They navigate the interface, fill the forms, make every micro-decision, and execute every step. The product is a tool they wield.

In Agent First, Human Simple, the human is the manager. They set direction, define boundaries, review outcomes, and make high-level decisions. The agent is the operator.

Every user gets to be the executive, the one who sees the dashboard instead of the one who fills out the spreadsheet.

This is the employee mental model, and it's why the framework feels natural even though it's radically different.

Think about how you work with a great employee. You say: "Find me the best venue for the team offsite. 20 people, somewhere in the mountains, budget under $5,000." They go away, research options, check availability, compare pricing, and come back with three recommendations and a short summary. You review, ask one clarifying question, pick the one you like, and say "book it." Done.

You didn't tell them which websites to search. You didn't approve every Google query. You didn't review their spreadsheet of 40 options. You set intent, they did the work, you approved the result.

That's the Human Simple interface.

The human layer in an Agent First, Human Simple product answers exactly three questions at any moment:

  1. What's happening? A calm, glanceable status view. Not a dashboard with twelve tabs and forty charts. A single screen that shows the current state in plain language.

  2. Is everything okay? A clear signal. Green means everything's fine. If something needs attention, it's obvious and actionable.

  3. Do I need to do anything? Pending approvals, if any. Each one pre-framed with full context and a one-tap decision.

Here's what a Human Simple interface looks like in practice. A flight booking dashboard where the agent did all the work and the human just sees the result:

Agent First, Human Simple (AFHS) flight booking dashboard showing an approval card at the top with Approve and Decline buttons, past trips below, and a recent activity feed showing the agent's work trail

Approval at the top. Past trips for context. Activity feed showing what the agent did. No forms. No navigation. No settings buried behind three menu levels. The human glances, confirms everything's fine, and moves on. Fifteen seconds. That's the Human Simple standard.


The Intent Gap

There's a concept at the heart of Agent First, Human Simple that explains why it works. I call it the Intent Gap, the distance between what the human wants and what the system needs to execute.

The human thinks: "I need a dentist appointment next week." The system needs: provider lookup, specialty matching, insurance verification, availability query, time-slot selection, appointment creation, confirmation delivery, calendar sync. That's eight operations.

Traditional product design narrows the Intent Gap with good UX: smart defaults, auto-complete, inline validation. It's thoughtful work. But the human still walks through each step. The gap is narrower, but still there.

Agent First, Human Simple eliminates the gap.

The human states intent. The agent translates intent into CLI commands. Guard Rails filter those commands. The software executes them. The human sees the result. The eight operations still happen. They're just invisible.

This applies to every product category:

Domain Human Intent System Operations Agent First Flow
Travel "Book a flight to Dubai for Thursday" Search, filter, compare, select, hold, book, pay, confirm Agent handles all 8 steps. Human approves final booking.
Healthcare "Schedule a checkup with Dr. Amara" Find doctor, check specialty, verify insurance, query slots, book, confirm, sync calendar Agent handles all 7 steps. Human sees confirmed appointment.
E-commerce "Reorder my coffee beans" Find previous order, check availability, verify price, apply coupons, place order, confirm Agent handles all 6 steps. Human gets delivery notification.
HR "Request leave for next week" Check balance, verify blackout dates, calculate days, submit request, notify manager, update calendar Agent handles all 6 steps. Human sees approval status.

In every case, the human's effort is reduced to one sentence of intent and, at most, one tap of approval. The complexity hasn't disappeared. It's been moved to where it belongs: the agent and the software, communicating through a structured CLI, governed by guard rails.


The Five-Layer Architecture

Here's how the full Agent First, Human Simple architecture stacks up. Five layers, each with a distinct job, data flowing up, control flowing down:

The Five-Layer Architecture of Agent First, Human Simple, showing Database Layer, Software Layer, CLI Interface, Guard Rails with traffic light, Agent Layer, and Human Layer stacked bottom to top

The Database stores everything. The Software Layer exposes capabilities through a CLI. Guard Rails filter every agent action. The Agent translates human intent into structured commands. And the Human Layer, the simplest layer in the entire stack, is where people express intent, set boundaries, and approve.

Every principle that follows maps back to one of these layers.


The Design Principles

If you're building a product and want to adopt Agent First, Human Simple, here are the principles:

For the agent interface

  1. CLI before UI. Design your structured commands, parameters, and responses before you design a single screen. The CLI is the foundation. The UI is built on top.

  2. Typed and documented. Every command has explicit parameters with types and descriptions. The agent should never have to guess what a command expects.

  3. Structured responses, always. JSON or a predictable format. Never unstructured text. Never HTML. Every response follows the same shape: success with data, or failure with error details and recovery instructions.

  4. Self-healing errors. Every error includes a how_to_fix field. The agent should be able to recover from most failures without escalating to the human.

  5. Composable commands. Small, focused operations that chain together. searchcompareholdbookconfirm. Not one giant "do everything" endpoint.

For guard rails

  1. Sensible defaults. New users should be safe on day one without configuring anything. Ship smart defaults for every action category.

  2. Simple overrides. Users adjust thresholds, not code. The interface for configuring Guard Rails should be a single screen with clear categories and traffic-light colors.

  3. Escalation with context. When a Yellow action fires, the approval request should include everything the human needs to decide: what the agent wants to do, why, how much it costs, and what the alternatives are. One tap to approve or decline.

For the human interface

  1. Three-second rule. If the human can't understand the state of things within three seconds of looking at the screen, there's too much on it.

  2. Oversight, not operation. The human interface answers three questions: What's happening? Is it okay? Do I need to do anything? Everything else is noise.

  3. Trust through transparency. Provide a full activity log the human can browse at any time. They won't check it daily, but knowing they could is what builds trust. It's the bank statement you glance at once a month.

  4. Inverted onboarding. New users don't learn the interface. The agent does the work, and the user just approves. First interaction: the agent presents a recommendation, the user says yes or no. No forms. No tutorials. The product gets simpler over time as the user raises their Guard Rails thresholds.


The Shift Underway

The shift is already happening.

Products have always served one audience: humans. Now they serve two, humans and agents. And these two audiences need fundamentally different interfaces.

Building one interface and hoping both audiences can use it is like designing a single road for both pedestrians and race cars. Someone's going to have a bad time.

The products that adopt Agent First, Human Simple will capture both sides of the market:

  • Agents will prefer them because the CLI is fast, cheap, and reliable. No token-burning browser gymnastics.
  • Humans will trust them because the Guard Rails are clear and the oversight interface is dead simple.

The products that don't will find themselves in an uncomfortable middle: too complex for agents to use efficiently, and too complex for humans who no longer want to do the work themselves.

The best AI model won't decide the winner. Context engineering will, managing the agent's memory, preferences, task history, and decision patterns so it gets better with every interaction. The model is the engine. Context engineering is the driver. Agent First, Human Simple is the road.


The Framework in One Sentence

Design the engine for the agent. Design the dashboard for the human. Put guard rails between them.

That's Agent First, Human Simple. That's AFHS.

Build for the agent. Simplify for the human. Guard the space between.

- Kasra Zunnaiyyer, February 2026

Top comments (0)