Build a custom AI Reply Agent
Build a customize an AI Reply Agent (or many) to handle every campaign use case.
Written By Kevin Lawrie
Last updated About 1 month ago
Reed uses two separate editors that look similar but do very different jobs. Confusing them is the single most common mistake when customizing a Reply Agent. This article explains the difference clearly, and lists exactly which tags belong where.

Two editors, two jobs
Both editors work from the same lead and thread data. The difference is entirely in what they're asked to produce.
How they connect
The Prompt runs first, and its output becomes the classification token, available as
{{output}}or{{llm_response}}.Your conditional actions compare that token against a value, for example, does
{{llm_response}}equalmeeting_request.Whichever row matches runs its campaign_reply action, using that row's own reply template.
In Suggest mode, the draft waits in the Unified Inbox for review. In Full Autopilot, it can send automatically.
⚠️ Don't confuse the two. The Prompt is a classifier. Its output is a short token, not customer-facing text. The reply template, usually wrapped in an [[AI:...]] block, is what the prospect may actually receive.
{{output}} and {{llm_response}} belong in your conditions, comparing against a token value. They're deliberately hidden from the reply template's Personalize menu, so you don't accidentally paste a classification token into an email.
{{firmographics}} is always your own product and ICP, in both editors, never a stand-in for the prospect's company.
Tags available in the Prompt (classifier)
Insert these via the Prompt builder's variable menu when the agent's data target is campaign replies.

Tags available in reply actions (the AI blocks that write the message)
Each intent's row is a Reply to Campaign Message action with its own reply template, usually one [[AI:...]] block written specifically for that intent.

Not available here: {{output}} and {{llm_response}}. Classification tokens stay in your conditions, not in customer-facing copy.
Editing tip
If you want to change how Reed, or a custom agent, responds to a specific intent, change the instructions inside that intent's [[AI:...]] block directly. Keep the identity rules intact (prospect facts vs. your own firmographics), keep replies short, and skip em dashes in generated copy, Reed's stock prompts already ask for this.
Example shape, for meeting_request: one [[AI:...]] block that states who you're writing to, includes {{firmographics}} labeled clearly as sender product, pulls in {{outbound_history}} and {{reply_body}} for context, then asks for a short thank-you and a scheduling question.