An AI agent decides its own next action. This site shows what that costs, risks and requires.
Definitions fixed by a glossary, an agent trace you can step through, per-conversation economics priced against Meta's Rest-of-Africa WhatsApp rates and Zimbabwean telephony, and the governance bar set by the Cyber and Data Protection Act. Sourced and dated. No vendor pitch until you ask for one.
- customer 0.00sHi, I need a dental check-up this week, afternoons only if possible. Tinashe.
- thought 0.41sNew inbound message opens a 24-hour service window (free non-template replies). Identify the sender before offering anything. Phone number is on the message metadata; look up the patient record.
- tool_call · lookup_patient 0.43s
{ "phone": "+263 77* *** 412" } - tool_result · lookup_patient → 1 record 0.69s
{ "patient_id": "P-01187", "name": "Tinashe M.", "last_visit": "2026-03-02", "service_history": ["dental_checkup"], "balance_usd": 0 } - thought 1.12sKnown patient, no outstanding balance. Service is dental_checkup (30 min). "This week, afternoons" → search Mon–Fri 12:00–17:00, clinic timezone Africa/Harare. Return at most three options to keep the reply short on a phone screen.
- tool_call · get_availability 1.14s
{ "service": "dental_checkup", "from": "2026-09-14", "to": "2026-09-18", "window": "12:00-17:00", "limit": 3 } - tool_result · get_availability → 3 slots 1.48s
[ { "slot_id": "S-4471", "start": "2026-09-15T14:30+02:00", "practitioner": "Dr N." }, { "slot_id": "S-4482", "start": "2026-09-17T13:00+02:00", "practitioner": "Dr N." }, { "slot_id": "S-4490", "start": "2026-09-18T15:30+02:00", "practitioner": "Dr K." } ] - customer 61.00s2 please
- guardrail 61.39sPolicy check before a write action: (1) booking requires an explicit slot choice — "2" maps unambiguously to S-4482; (2) re-verify the slot is still free at commit time (availability is 60 s old); (3) no payment is required for a check-up, so the payments tool stays disabled for this turn.
- tool_call · create_booking 61.41s
{ "patient_id": "P-01187", "slot_id": "S-4482", "service": "dental_checkup", "channel": "whatsapp", "idempotency_key": "wa-8f31-S-4482" } - tool_result · create_booking → confirmed 61.82s
{ "booking_id": "B-20931", "status": "confirmed", "start": "2026-09-17T13:00+02:00", "cancel_by": "2026-09-16T13:00+02:00" } - thought 62.20sBooking committed. Schedule the reminder as a utility template for 24 h before the appointment — it will fall outside this service window, so it is billed at the Rest-of-Africa utility rate (US$0.004). Then confirm to the patient in plain language.
- tool_call · schedule_template 62.22s
{ "template": "appointment_reminder_v3", "category": "utility", "to": "P-01187", "send_at": "2026-09-16T13:00+02:00", "params": ["Thu 17 Sep, 13:00", "Dr N."] } - tool_result · schedule_template → queued 62.48s
{ "job_id": "J-77120", "estimated_cost_usd": 0.004 } - customer 95.00sGreat. Can you also get me antibiotics before then? My tooth is aching.
- guardrail 95.42sRequest is for medication — outside the agent's scope (scope: scheduling, directions, prices, reminders). Policy: never give clinical advice or arrange prescriptions; acknowledge pain, route to a human, and offer an earlier slot if one exists. Escalation tool is permitted; no other write tools this turn.
- tool_call · create_handoff 95.48s
{ "patient_id": "P-01187", "reason": "clinical_request", "urgency": "same_day", "summary": "Pain reported; asked for antibiotics before Thu appointment. Offered earlier slot S-4471.", "channel": "phone" } - tool_result · create_handoff → ticket 95.72s
{ "ticket_id": "H-3302", "queue": "nurse_callback", "sla_minutes": 60 } - done 96.31sSession idle. Outcome: booking B-20931 confirmed; reminder queued; clinical request escalated to a human within scope. 8 model calls, 6 tool calls, 0 unsafe actions.
The test that separates an agent from a chatbot
A chatbot chooses its next sentence. An agent chooses its next action: it reads a request, decides which tool to call — a calendar, a CRM, Paynow, a handoff queue — reads the result, and continues until the job is done or a rule stops it. That single difference is why agents can book, quote and reconcile, and why they need permissions, confirmation steps and audit logs that a chatbot never did.
If your use case fits a menu, you do not need an agent. If it needs an action taken from free text, a voice note or a photo, you probably do — and the rest of this site is about doing that responsibly.
context = system_prompt + tools + history + new_message
action = model(context) # text reply OR tool_call
if action.is_tool_call:
check_guardrails(action) # scope, permission, confirm?
result = run_tool(action) # calendar, CRM, Paynow…
history.append(result) # untrusted data
goto action = model(context) # loop
else:
send(action.text) # WhatsApp / voice / webNine patterns, one comparison database
Each type below is a different tool set, autonomy level and risk class — not the same page with the noun swapped. The comparison database lines all twelve rows up by capability, cost band, risk and integrations.
- agent · 01
Support
Tier-1 resolution with handoff
- agent · 02
Booking
Offer, hold, confirm, remind
- agent · 03
WhatsApp
The channel most agents in Zimbabwe live on
- agent · 04
Voice
Where the phone line costs more than the model
- agent · 05
Sales
Qualify, quote, follow up
- agent · 06
Finance
Invoices, EcoCash reconciliation, FDMS
- agent · 07
Internal ops
Policy answers, reports, approvals
- agent · 08
Research
Monitor tenders, prices, regulations
- agent · 09
By industry
Mining, agriculture, hospitality, logistics
Priced against the channels Zimbabweans actually use
Four sourced numbers explain most agent budgets in Zimbabwe. The worked model on the costs page turns them into a per-conversation figure.
- ≈US$0.025
- model cost per booking conversation (illustrative, Sonnet 5 with caching)
- US$0.004
- one WhatsApp utility template to +263 (Rest-of-Africa rate card)
- US$0.86/min
- Twilio voice to a Zimbabwean mobile — the phone line, not the model
- 84.55%
- internet penetration, POTRAZ Q4 2025; WhatsApp is the largest app by data
Sources: platform.claude.com pricing; SleekFlow WhatsApp rate card effective 1 Jul 2026; twilio.com/voice/pricing/zw; POTRAZ Q4 2025 via TechnoMag. All accessed 2026-09-14; full list on each page.
Two questions decide which one you need
How varied are the inputs, and does the job require an action? Most Zimbabwean businesses asking for "an AI agent" need a workflow automation or a rule-based chatbot for half of the job — and an agent only for the part that reads free text and acts on it.
Three obligations before an agent touches customer data
- licence
Data controller licence from POTRAZ
SI 155 of 2024 required every data controller to be licensed by 12 March 2025; the licence runs 12 months and must be renewed three months before expiry. Deploying an agent does not move this duty to the vendor.
- timelines
Breach notification in 24 hours
Breaches go to POTRAZ within 24 hours of discovery and, if high-risk to individuals, to those affected within 72 hours. An agent's audit log is how you meet that clock.
- autonomy
Automated decisions need consent or law
Decisions with legal or similarly significant effect on a person require consent or legal authorisation — a hard ceiling on how much you let an agent decide alone.
Worked, dated, sourced
- 2026-09-14 · 9 min
Anatomy of a WhatsApp booking agent for a Harare clinic
What is actually inside the agent in our demo: five tools, one policy, a confirmation gate, and about two and a half US cents of model tokens per booked appointment.
- 2026-09-14 · 9 min
AI agents and Zimbabwe's Cyber and Data Protection Act
The Act does not mention agents, but it decides how much autonomy you can give one. Every obligation, mapped to a design decision in the orchestrator, the tools or the audit log.
- 2026-09-14 · 10 min
Evaluating agents before you trust them with customers
The evaluation we run before any agent talks to a customer: a 60-conversation golden set, five scores, and thresholds that decide launch. With a worked scorecard for a booking agent.
- 2026-09-14 · 8 min
When an agent is the wrong tool
Seven situations in which we tell prospective clients not to build an agent — and what to build instead. Includes the connectivity, affordability and law reasons specific to Zimbabwe.
Build an agent — with the routing disclosed
This site is published by AI Automated Solutions, an implementation company. If you want an agent built, the contact page explains exactly what we ask for, what a scoping call covers, and the two routes: a custom build with AI Automated Solutions, or early access to Zvino Agent, the Zimbabwe-native platform in development. No obligation and no sales sequence.