> ## Documentation Index
> Fetch the complete documentation index at: https://aiplaybooklac.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Design

# Designing AI Agents for LAC Small Business

> **Created by Adrian Dunkley** | [maestrosai.com](https://maestrosai.com) | [ceo@maestrosai.com](mailto:ceo@maestrosai.com) | Fair Use

***

Most agent failures are design failures. The model is fine. The tools exist. But the agent was pointed at a task that was too open, or given a tool set that was too wide, or asked to remember things it had no way to remember. This page gives you the mental model to avoid that.

Read this before you open any builder or SDK.

***

## The five design decisions

Every agent reduces to five choices. Make them deliberately.

| Decision          | Question                               | Default for SMBs                                          |
| ----------------- | -------------------------------------- | --------------------------------------------------------- |
| **Goal**          | What exactly is "done"?                | One measurable outcome per run                            |
| **Decomposition** | How do I break the job into sub-tasks? | 3 to 7 steps, named clearly                               |
| **Tools**         | What can the agent touch?              | The smallest set that covers the happy path               |
| **Memory**        | What does it need to remember?         | The current task only, unless you have a reason otherwise |
| **Evaluation**    | How do I know it worked?               | A before/after check the agent runs on itself             |

If you can answer all five in a paragraph, your agent will probably work. If you can't, neither will the agent.

***

## 1. The goal: write it before anything else

Write one sentence. Example: *"Given a guest inquiry on WhatsApp, respond with availability and a booking link, or hand off to a human if the inquiry is complex."*

A good goal has:

* **A trigger** (what starts the agent).
* **A success condition** (what "done" looks like).
* **An escape hatch** (what happens when the agent can't finish).

Vague goals produce vague agents. "Help with customer service" is not a goal. "Answer booking inquiries on WhatsApp within 5 minutes during business hours, escalate anything else to Maria" is a goal.

***

## 2. Decomposition: the 3 to 7 rule

Break the goal into 3 to 7 named steps. Fewer, and the agent is doing too much in one reasoning pass. More, and you've written a script, not an agent.

**Example, a Colombian coffee-export quote agent:**

1. Parse the buyer email for origin, grade, volume, Incoterm.
2. Look up today's C-price and add the cooperative's differential.
3. Check shipping availability from Cartagena or Buenaventura.
4. Draft the quote in Spanish or English to match the buyer's language.
5. Send the draft to the owner for review.
6. On approval, reply to the buyer and log the quote in the tracker.

Each step is a unit the agent can reason about and retry on its own.

***

## 3. Tools: the minimum viable set

An agent with too many tools hesitates, picks wrong, or loops. An agent with too few can't finish. The rule of thumb: give it the tools the happy path needs and one escape hatch.

**A Mexican nearshoring RFQ agent might have:**

| Tool                               | Purpose                    |
| ---------------------------------- | -------------------------- |
| `search_suppliers(sector, region)` | Find candidates            |
| `request_quote(supplier_id, spec)` | Send RFQ email             |
| `read_inbox(since)`                | Read replies               |
| `log_to_sheet(row)`                | Record progress            |
| `ask_human(question)`              | Escape hatch for ambiguity |

Five tools, clear verbs, one escape hatch. A sixth tool would need to earn its seat.

***

## 4. Memory: the three tiers

Agents handle memory badly by default. Be explicit.

| Tier                 | What it holds                                                 | Where it lives                         |
| -------------------- | ------------------------------------------------------------- | -------------------------------------- |
| **Working memory**   | The current task, visible to the agent every step             | The system prompt + running scratchpad |
| **Session memory**   | Recent turns within this job                                  | The conversation history               |
| **Long-term memory** | Facts that survive across jobs (customer names, product list) | A database, Sheets, or a vector store  |

For a first agent, stay in working and session memory. Add long-term memory only when the agent visibly forgets something that matters. Premature long-term memory is a classic time sink.

***

## 5. Evaluation: run the check, don't hope

Every agent should end with a self-check. "Did I produce the thing I was asked for? Does it look right? If not, try once more or escalate."

**A simple evaluation prompt**:

> *"Review the draft reply. Does it answer the customer's question? Is the price correct? Is the language appropriate for a Mexican customer? Reply READY, REVISE, or ESCALATE."*

This single step catches more than half of the errors a cloud agent makes in testing.

***

## Failure modes and how to handle them

Agents fail in patterned ways. Design for them up front.

| Failure mode             | What it looks like                       | Design response                                    |
| ------------------------ | ---------------------------------------- | -------------------------------------------------- |
| **Loops**                | Agent calls the same tool over and over  | Max-steps cap (15 to 25 is usually right)          |
| **Tool misuse**          | Agent passes bad arguments               | Validate inputs at the tool boundary               |
| **Context loss**         | Forgets something from step 1 by step 6  | Move it to system prompt, not chat history         |
| **Wrong language**       | Replies in English to a Spanish customer | Detect language in step 1, fix in system prompt    |
| **Hallucinated data**    | Invents a product price or address       | Force tool lookup for all facts the business owns  |
| **Silent success**       | Claims done without doing                | Require a tool-call log as proof                   |
| **Escalation avoidance** | Tries to answer when it should ask       | Give it an explicit "when in doubt, escalate" rule |

***

## Three worked LAC examples

### A Jamaican tour-operator booking agent

* **Goal**: Respond to Instagram and WhatsApp inquiries, quote a tour, collect a deposit, confirm.
* **Decomposition**: Parse inquiry → check availability → quote in USD or JMD → send payment link → confirm on receipt → add to calendar.
* **Tools**: `check_calendar`, `quote_tour`, `send_payment_link`, `confirm_booking`, `notify_operator`.
* **Memory**: Session only. Long-term memory for returning guests added later.
* **Evaluation**: Verify the price matches the tour type and guest count; verify the payment link is correct.
* **Escape**: Any inquiry that mentions "group of 10+", "private charter", or a language other than English triggers a human handoff.

### A Colombian coffee-export quote agent

* **Goal**: Turn buyer RFQs into quotes within 4 business hours.
* **Decomposition**: Parse RFQ → compute price from C-market + differential + logistics → draft quote → owner reviews → send.
* **Tools**: `c_market_price`, `logistics_cost(origin, destination)`, `lookup_differential(buyer)`, `draft_quote`, `send_email`.
* **Memory**: Long-term for buyer history and past differentials.
* **Evaluation**: Compare the draft against the last three quotes to the same buyer. Flag outliers.
* **Escape**: Volumes above the cooperative's monthly ceiling trigger an owner review.

### A Mexican nearshoring RFQ agent

* **Goal**: For a given bill-of-materials, identify 5 qualified Mexican suppliers, request quotes, compile a comparison.
* **Decomposition**: Read BoM → classify parts → search suppliers by capability and region → email RFQs → read replies → compile table → hand to procurement.
* **Tools**: `search_suppliers`, `request_quote`, `read_inbox`, `compile_comparison`, `ask_human`.
* **Memory**: Long-term on suppliers (capabilities, past quality, response time).
* **Evaluation**: Verify every part in the BoM has at least 3 quotes before closing.
* **Escape**: Parts with fewer than 3 responses after 72 hours trigger a human search.

***

## A one-page design template

Copy this and fill it in before you build.

```
AGENT NAME:
GOAL (one sentence):
TRIGGER:
SUCCESS CONDITION:
ESCAPE HATCH:

STEPS (3 to 7):
1.
2.
3.
4.
5.

TOOLS (name and purpose):
-
-
-

MEMORY:
Working:
Session:
Long-term:

EVALUATION (what the agent checks before claiming done):

GUARDRAILS (what the agent must never do):
-
-
```

Once the template is full, move on to [build.md](build.md) and pick the build path that matches your skills and budget.

***

*Created by Adrian Dunkley | MaestrosAI | maestrosai.com | [ceo@maestrosai.com](mailto:ceo@maestrosai.com)*
*Fair Use, Educational Resource | April 2026*
*SEO: agent design | diseño de agentes IA | padrões de agentes IA | how to design AI agent | agent tools memory evaluation | LAC agent design*
