
"Why does everyone in our group chat figure out the auto-reply bot in five minutes?"
Operators ask this all the time. The answer isn't model quality. It's missing agent design.
This post breaks down three reasons most reply bots feel like bots, then traces a single inbound message through Replyer's full routing pipeline.
3 reasons most reply bots feel like bots
Reason 1, single tone for every message. "Be a friendly reply assistant" hits market debate, banter, and news with the same voice. Obvious bot.
Reason 2, ignoring chat context. Morning markets, lunch banter, evening news. One persona can't fit them all.
Reason 3, no awareness of time, banned phrases, or keywords. Bot fires at 3 a.m., leaks "Of course!", answers politics the operator avoids.
How Replyer processes a single message
Message → agent routing → Queue / auto-send
flowchart TD
A([Telegram MTProto event]) --> B{chat mapped?}
B -- no --> X1([ignore])
B -- yes --> C{language gate
Korean / English}
C -- pass --> D{vacation /
active hours}
D -- inactive --> X2([ignore])
D -- active --> E{keyword·regex
match}
E -- none --> X3([ignore])
E -- matched --> F[multi-agent
match set]
F --> G{priority
compare}
G --> H{hourly cap}
H -- exceeded --> X4([skip])
H -- ok --> I{no-reply
probability}
I -- skip --> X5([skip])
I -- reply --> J[LLM generate
+ banned-phrase scrub]
J --> K{mode}
K -- manual --> Q[Queue
operator review]
K -- auto --> T[countdown
auto-send]
Q --> Z([sender.send_humanlike
typing / split])
T --> Z
classDef ok fill:#0f7b6c,stroke:#0f7b6c,color:#fff;
classDef warn fill:#d97706,stroke:#d97706,color:#fff;
classDef ko fill:#b91c1c,stroke:#b91c1c,color:#fff;
classDef endd fill:#3b59c5,stroke:#3b59c5,color:#fff;
class X1,X2,X3,X4,X5 ko
class J ok
class Z endd
class K warn
The key idea, only messages that pass multiple gates ever reach the LLM. A naive bot has zero gates and answers everything in one tone. Replyer's seven gates (chat mapping, language, hours, keywords, priority, hourly cap, no-reply probability) + banned-phrase scrub are what make replies feel like a person.
Agents are routing units
- System prompt tone and identity (analyst / panicker / cheerleader)
- Keywords / regex which messages this agent reacts to
- Priority tiebreaker when multiple agents match
- Active hours off at night, on at lunch
- Banned phrases "Of course!", phrases the operator never uses
11 agent templates
Agent combos by operator type
Markets-discussion room (operator = analytical)
- Default - Market analyst (high priority, data keywords)
- Bull run - Bull-run cheerleader (emoji + "to the moon")
- Panic spike - Panicker ("crash", "rip" patterns)
- Joke moments - One-liner comic (low priority)
→ The operator appears to fluidly shift between four tones, exactly what real people do.
Friend-group room (operator = light banter)
- Default - Casual friend
- Breaking silence - Cheerleader (short messages only)
- Joke flow - One-liner comic
- Late night - all agents off (active hours 09:00–01:00)
News / politics room (operator = facilitates debate)
- Default - News debater ("policy", "issue" keywords)
- Cynical-take moments - News one-liner
- Politics / religion keywords - all agents blocked (banned-phrase scrub)
Agent editor 6 tabs
Every save is auto-versioned. Tweak something at midnight, find it weird the next day, and roll back with one click.
Get started
Download Replyer, macOS Apple Silicon · Windows 10/11. Eleven agent templates ship in the box, so within five minutes of first launch your group chat has a agent drafting replies in your voice.
Not sure which combo fits your room? Ask anonymously in our info bot.