Skip to content
SocialMate

SocialMate Local API

Agent system prompt

A production system prompt that makes an AI agent behave like a human on WhatsApp — the reply cadence, every tool, the anti-ban error contract, and what it must never claim.

An AI agent with WhatsApp tools will, by default, behave like software: it answers instantly, in perfect paragraphs, and never acknowledges that it saw your message. People notice. The prompt below teaches an agent the cadence of a person — see the message, recall the relationship, show that you're thinking, then react or reply — and it teaches the agent exactly what it can and cannot do, so it never invents a capability.

It works with the n8n node and with the MCP server. The MCP server ships it as a native MCP prompt (socialmate_human_agent), so a client like Claude Desktop can load it without any copy-paste.

Being human is free

Three of the tools that make an agent feel human — marking a chat read, showing a typing indicator, and reacting with an emoji — are available on every tier, and they consume no message send budget and never raise the anti-ban risk score. They produce no chat bubble, and they can only target a conversation the account is already in, so they are structurally incapable of the cold outreach the risk model exists to catch.

An agent can therefore acknowledge, think visibly and react all day on Free, and spend its message allowance only on messages that actually say something.

The cadence

  1. Mark read. Blue ticks, before it thinks. The person knows it landed.
  2. Recall the thread. Get AI Context — the agent's memory. (Pro.)
  3. Show typing. While the model generates, or a lookup runs.
  4. React instead of replying when a message would be noise. A 👍 on "thanks, got it" is warmer than another notification.
  5. Reply, quoting the specific message when the thread has moved on.

SocialMate already types for you. While a message is being sent, the anti-ban pipeline holds a realistic, length-scaled typing indicator and marks the chat read first if the send is a reply. The Send Typing tool exists to cover the agent's own thinking time — before it calls send.

What the agent must never claim

An agent that believes in a tool it doesn't have will hallucinate the action and report success. The prompt states these plainly:

  • No edit, delete-for-everyone, or forward. Not implemented.
  • It cannot see the contact typing. Inbound presence isn't surfaced.
  • No interactive buttons or list menus. Deprecated on the WhatsApp Web protocol — SocialMate deliberately doesn't ship them. Send a poll instead; it renders tappable options and actually works.
  • MCP has no inbound push. An MCP agent must poll whatsapp_fetch_new_messages, or be driven by the n8n Trigger / a webhook. It must never promise to "watch for a reply" if nothing is polling.
  • On Free there is no memory. Get AI Context is Pro. The agent must not pretend to remember.

The error contract

The prompt teaches the agent to read the pipeline's answers instead of retrying blindly:

ResponseWhat the agent does
202 queuedPro auto-queued a blocked text/URL-media send. It will go out — tell the user it's on its way, never resend.
429 + reasonBlocked. Honour retryAfterMs. Never retry in a tight loop.
429 + queueable: falseA poll, location or contact card was blocked — these are never auto-queued. Wait, or fall back to text.
429 + signal_rate_limitReacted / typed / marked read too fast. The message budget is untouched — slow the signals, keep sending.
402Free tier, Pro feature. Adapt or escalate. Don't lecture the customer about licensing.
409The WhatsApp account is disconnected. Nothing will send. Escalate.

Never fan out with repeated sends. The prompt forbids looping a send over a list — that is precisely the pattern that gets numbers banned. Use the queue and let the pipeline pace it.

Consent and honesty are in the prompt, not an afterthought

The agent is instructed to never claim to be a human when sincerely asked, never message a number that hasn't opted in, and to honour "stop" / "unsubscribe" / "remove me" — in any language — immediately and permanently. It is also instructed never to promise that WhatsApp automation is undetectable, ban-proof, or risk-free. It isn't.

Get the prompt

  • MCP: it's already there. List prompts and load socialmate_human_agent, passing your business_name, tone, business_hours and the rest.
  • n8n: import examples/ai-agent-tool.json — it ships with the prompt pre-loaded and the tools wired (Mark Read · Show Typing · React · Send Poll · Get Conversation Memory · Check My Limits). Then replace every {{PLACEHOLDER}} in AI Agent → Options → System Message.
  • Anything else: the full text lives in docs/AI-AGENT-SYSTEM-PROMPT.md.

Set N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true on your n8n instance so the community node's operations are callable as AI-Agent tools.

SocialMate does not generate the replies. It is the WhatsApp tool and the memory your own model uses. AI generation by SocialMate itself is coming soon, and is not shipped today.

Free forever · no card Download free