James sent "What is the weather today?" on WhatsApp. TutorClaw responded with a PRIMM lesson about weather variables.
"It is trying to tutor me on weather," he said.
Emma looked over. "Every message on your WhatsApp goes to TutorClaw because it is the only agent bound to that channel. Weather, reminders, grocery lists. It tries to teach all of them."
"I need to separate study from everything else."
"You do. But not with keywords." She pulled up the OpenClaw docs. "Routing is channel-based, not content-based. You do not teach the system which words mean 'study.' You create a dedicated space for studying. A WhatsApp group. Everything in that group goes to TutorClaw. Everything outside it goes to your main agent."
You are doing exactly what James is doing. Your TutorClaw handles every message because it is bound to the entire WhatsApp channel. The fix is not content analysis; it is physical separation: a dedicated group for studying.
Open WhatsApp on your phone. Create a new group:
You now have a group with just yourself in it. Messages you send in this group will be routed separately from your regular DMs.
OpenClaw identifies groups by their peer ID, not by name. Run:
Find your "TutorClaw Study" group in the output. The peer ID looks like a long number ending in @g.us (for example, 120363012345@g.us). Copy it.
One command creates the binding:
Replace YOUR_GROUP_ID@g.us with the actual peer ID from Step 2.
Verify the binding:
You should see tutorclaw bound to a peer match on your group ID.
Send two messages from WhatsApp:
In the TutorClaw Study group:
In a regular DM (not the group):
Open the dashboard. Check which agent handled each message:
Both messages are on the same WhatsApp number. The routing decision is based on WHERE the message came from, not WHAT it says.
Deterministic routing via groups is preferred over keyword matching for three reasons:
When multiple bindings exist, OpenClaw uses a "most-specific-wins" rule:
James sent a study message in the new group. TutorClaw responded with a PRIMM lesson. He sent "What is the weather?" as a regular DM. The main agent responded.
"Two agents, two spaces," he said. "The learner chooses where to type. The system does not guess."
Emma nodded. "That is the design. Deterministic routing. The learner picks the group. The binding picks the agent."
James looked at his dashboard. Two agent names, two message sources, clean separation. "Chapter 19 is hardening?"
"Input validation, error messages, structured logging. Your routing works. Now make sure the tools handle bad input gracefully."