The idea
OpenClaw reads the Discord channel topic (the description text you set at the top of a channel) and injects it into the agent's context every message. That means you can run one agent across multiple channels, and each channel behaves differently based on what you wrote in the topic.
No separate agent instances. No config files. No code. You type a description in Discord's channel settings, and the agent follows it.
Why this matters
The obvious approach to "I want my agent to do different things in different channels" is to run multiple agents — one per channel, each with its own system prompt. That works, but it means multiple containers, multiple configs, multiple token costs, and multiple things to maintain.
Channel topics solve this for free. One agent, many channels, each with its own flavor:
- #business — "This channel is for business projects. Be direct, focus on revenue, track decisions."
- #research — "Deep research mode. Take your time, cite sources, be thorough."
- #home — "Home automation and personal tasks. Keep it casual."
- #coding — "Code review and development. Always show full diffs. Test before suggesting."
The agent reads the topic on every message. You can update it anytime — no restart, no redeploy. Just edit the channel description in Discord and the agent picks up the new direction within a few minutes.
How to set it up
Click the channel name at the top → Edit Channel → write your instructions in the Topic field. This is what the agent will see.
Be specific. The topic is injected as-is, so write it like you're briefing a person:
This channel is to start different projects and businesses to make money. This will be an independent bot that can ideate, execute, and evolve. Be direct. Track every decision. No fluff.
That's a real example from a working setup. The agent in that channel acts like a business partner — it tracks decisions, proposes experiments, and stays on task. Same agent in a different channel with a different topic acts completely differently.
Seriously. There's no step 2. If your agent is already connected to a Discord guild, it's already reading channel topics. You just need to write something useful in them.
What makes a good topic
The topic is context, not a system prompt. You're not overriding the agent's personality — you're giving it a situation. Think of it like walking into a room with a sign on the door.
Good topics are specific:
- "Track spending in this channel. Every purchase gets logged with date, amount, and category."
- "This is the coding channel. Always include full file paths. Run tests before suggesting changes."
- "Research only. No actions. Summarize findings, cite sources, flag contradictions."
Bad topics are vague:
- "Be helpful" — it already is
- "Programming stuff" — says nothing about how to behave
- "General chat" — no direction at all
Combining with workspace files
Channel topics work alongside AGENTS.md, SOUL.md, and other workspace files. The topic adds channel-specific context on top of the agent's base personality. So your agent can have a consistent voice (from SOUL.md) while adapting its focus per channel (from the topic).
For example: your agent might always be direct and concise (SOUL.md), but in #research it goes deep and cites sources (channel topic), while in #home it keeps things quick and casual (different channel topic).
The real win
This costs nothing. No extra compute, no extra tokens for system prompts, no infrastructure. You're using a Discord feature that's already there — a text field that most people leave blank — as a steering mechanism for your agent. One agent, as many specialized channels as you want.