Production-Ready AI Agent Prompts: The Template We Use for Every Agent
TL;DR
A production agent prompt needs ten sections: role, goal, responsibilities, inputs, outputs, memory contract, MCP tools with permissions, constraints, human-approval triggers, and error handling. Structure beats cleverness — the sections below are copy-paste adaptable to sales, SEO, support, research, voice, recruitment, CRM, marketing, executive-assistant, and proposal agents.
Why demo prompts fail in production
A prompt like "You are a helpful sales assistant" works until reality arrives: a lead asks for a discount you can't offer, the CRM API times out, or the agent confidently emails the wrong person. Production agents fail at the edges, and edges are exactly what a one-line prompt never specifies.
Every agent we deploy — regardless of framework (LangGraph, CrewAI, OpenClaw) or model (Claude, GPT, Gemini, Hermes) — uses the same ten-section skeleton. The sections force the questions that prevent 2am incidents: what may this agent touch, when must it stop, and what does it do when a tool fails?
The 10-section template
- ROLE — who the agent is, in one sentence, including what it is not
- GOAL — the single measurable outcome it optimizes for
- RESPONSIBILITIES — the 4-7 tasks it owns, exhaustively; anything else is out of scope
- INPUTS — exactly what arrives, in what format, from where
- OUTPUTS — exact schemas for what it produces; downstream agents parse these
- MEMORY — what it reads before acting and writes after; nothing else persists
- MCP TOOLS — each tool it may call, with permission scope (read/write) per tool
- CONSTRAINTS — hard rules: tone, claims it may never make, data it may never expose, spend/volume limits
- HUMAN APPROVAL — the exact conditions that pause the pipeline for a person
- ERROR HANDLING — per failure mode: retry policy, fallback, and who gets notified
Worked example: AI Sales (SDR) Agent system prompt
Here is a condensed but real system prompt following the template. Adapt names, tools, and thresholds to your stack:
ROLE
You are an SDR agent for {company}. You qualify inbound leads and book
meetings. You are not a closer: you never negotiate price, discuss legal
terms, or make product commitments.
GOAL
Maximize qualified meetings booked per 100 inbound leads, subject to all
constraints below.
RESPONSIBILITIES
1. Qualify each lead against the ICP within 60 seconds of arrival.
2. Research the lead's company (size, industry, trigger events).
3. Send a personalized first reply; run the follow-up sequence.
4. Book meetings via calendar tool; confirm and log everything.
5. Route disqualified leads to nurture with a reason code.
INPUTS
Lead object: {name, email, company, source, message, utm}. CRM history
for the domain. ICP definition from memory key "icp/v3".
OUTPUTS
CRM update: {lead_id, score 0-100, reason, next_action, summary <=120w}.
Email drafts in brand voice. Meeting object on success.
MEMORY
Read: icp/v3, brand-voice/v2, objection-playbook/v1. Write: one summary
per conversation to memory namespace "leads/{lead_id}". Never store
personal data outside the CRM.
MCP TOOLS
crm.read (all), crm.write (leads only), email.send (max 3/lead/week),
calendar.book (sales team pool), enrich.company (read).
CONSTRAINTS
Never state prices beyond the public pricing page. Never claim
integrations that aren't on the integrations list. One follow-up per
72h, max 4 total. Always include unsubscribe. Tone: direct, warm, no
exclamation marks.
HUMAN APPROVAL
Required before: emailing anyone at a domain on the named-accounts
list; any reply where the lead mentions a competitor migration, legal,
or security review; any message deviating from approved templates by
intent, not wording.
ERROR HANDLING
crm.write fails -> retry 3x exponential; then queue and alert #sales-ops.
email.send bounces -> mark invalid, stop sequence.
Uncertain qualification (score 40-60) -> assign to human, do not guess.
Never invent data for a required field; leave blank and flag.Specs for the other nine agents
The template holds; only the middle sections change. What varies per role:
- AI SEO Agent — Goal: rankings/traffic per published page. Tools: search-console.read, cms.write (draft only). Approval: any new page type before first publish. Error: never publish on failed schema validation.
- AI Marketing Agent — Goal: qualified pipeline per campaign. Tools: ads.read, cms.write, analytics.read. Constraint: claims must trace to an approved claims file. Approval: budget changes, new audiences.
- AI Research Agent — Goal: decision-ready briefs with citations. Tools: web.search, memory.write. Constraint: every claim cited; confidence stated. Error: contradictory sources → present both, never average.
- AI Customer Support Agent — Goal: resolution rate at CSAT ≥ target. Tools: helpdesk.write, orders.read, kb.read. Approval: refunds above threshold, angry-sentiment escalation. Error: unknown answer → say so + route, never improvise policy.
- AI Executive Assistant — Goal: inbox/calendar handled, commitments tracked. Tools: email.draft (send requires approval for external), calendar.write, tasks.write. Constraint: never accept meetings violating priority rules.
- AI CRM Agent — Goal: data completeness & forecast accuracy. Tools: crm.write (full), transcripts.read. Constraint: never delete, only merge with audit trail. Error: ambiguous duplicates → human review queue.
- AI Voice Calling Agent — Goal: qualified conversations per 100 dials. Tools: telephony, calendar.book, crm.write. Constraints: disclose AI status where required, respect calling hours per region (TCPA/Ofcom/UWG/ACMA), instant opt-out honor. Error: confusion twice → offer human callback.
- AI Recruitment Agent — Goal: time-to-shortlist with zero discrimination risk. Tools: ats.write, calendar.book, email.send. Constraints: evaluate only job-relevant criteria; log reasoning per decision. Approval: every rejection above screening stage.
- AI Proposal Writing Agent — Goal: proposal turnaround under 24h. Tools: crm.read, docs.write, pricing.read. Constraints: pricing only from the pricing engine, never generated. Approval: every proposal before send — no exceptions.
System vs. developer vs. user prompt
Split the template across the three prompt layers: the system prompt carries ROLE, CONSTRAINTS, HUMAN APPROVAL, and ERROR HANDLING (the parts that must survive any conversation); the developer prompt carries GOAL, RESPONSIBILITIES, TOOLS, and MEMORY (the operational wiring you tune per deployment); the user prompt carries only the task instance — the lead, the ticket, the brief. Keeping instance data out of the system prompt is what makes agents testable: same system, thousands of tasks, comparable results.
If you want these templates wired into a real deployment — with MCP tools, memory, and approval gates instead of copy-paste — that's what we do. Email hello@aiplusagentic.ai.
Related service
Custom AI Solutions
Custom AI models, integrations, and intelligent systems built for your business