Skip to content

Vol. II · Production Doctrine · II.8

Trigger from Anywhere

Factor 11: the loop does not live in one text box. Mail, chat, tickets, cron, webhooks, and IDE events are all legal starts. The agent is a reducer over events, not a chatbot with extra steps.

5 min read

Doctrine

  • Normalize every inbound channel into the same event type before the loop sees it.
  • A cron tick, a Stripe webhook, and a Slack mention should hit the same pause/resume API.
  • The UI is a viewer of the run, not the only door into it.

The gateway is Factor 11 in product form

DeerFlow's message gateway, n8n's triggers, Inngest's events, and Cloudflare Agents sitting on Durable Objects are the same move: meet the user where the event already is. Own the adapter. Do not clone the agent per channel.

Anti-patterns

  • A Slack-only agent that cannot be invoked from a ticket, then a second agent for tickets.
  • Channel-specific prompts that fork the policy.

Related