# Configure the AI Transport channel rule
AI Transport streams tokens by appending to a single Ably channel message. That requires one channel rule on the namespace your conversations live on. This is a one-time configuration per Ably app.
The **Message annotations, updates, deletes, and appends** channel rule (`mutableMessages: true`) must be enabled on every channel you use with AI Transport. AI Transport streams each response by appending tokens to a single channel message, and appends only work on channels with this rule enabled.
Channel rules are enabled per [namespace](https://ably.com/docs/channels.md#namespaces), which is the part of a channel name up to the first colon. Enabling the rule on a namespace applies it to every channel in that namespace. Pick a namespace prefix that keeps your conversations separate from other channels in the same app, such as `conversations:` or `chat:`, and enable the rule on it.
Without the rule, AI Transport [fails on the first token append](https://ably.com/docs/ai-transport/troubleshooting.md#namespace-not-configured) after a stream starts, with error `93002` `Can only update/delete/append messages on channels with mutableMessages enabled`.
## Enable the rule
In your app [settings](https://ably.com/accounts/any/apps/any/settings):
1. Click **Add new rule**.
2. Enter the channel name or namespace on which to enable message updates and deletes.
3. Check **Message annotations, updates, deletes, and appends**.
4. Click **Create rule** to save.
Create a namespace with `mutableMessages` enabled via the [Control API](https://ably.com/docs/api/control-api.md):
### Shell
```
curl -X POST https://control.ably.net/v1/apps/{APP_ID}/namespaces \
-H "Authorization: Bearer {ACCESS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"id": "conversations",
"mutableMessages": true
}'
```
Use the [Ably CLI](https://ably.com/docs/platform/tools/cli.md):
### Shell
```
ably apps rules create "conversations" --mutable-messages
```
Run `ably apps rules create --help` for the full option list.
## Verify the rule applies to your channel names
The namespace matches by prefix. If your conversations live on channel names like `conversations:abc-123`, the namespace `conversations` covers them. A namespace called `conversation` (singular) does **not** match `conversations:*`. Names are matched literally up to the first colon.
The fastest way to check is to send one user message through AI Transport and look in the agent's logs for `93002`. If no `93002` appears and the first token streams through, the rule is applied correctly.
## Read next
- [Set up authentication](https://ably.com/docs/ai-transport/getting-started/authentication.md): the auth setup AI Transport needs alongside the channel rule.
- [Troubleshooting: namespace not configured](https://ably.com/docs/ai-transport/troubleshooting.md#namespace-not-configured): what it looks like at runtime when the rule is missing.
- [Core SDK getting started](https://ably.com/docs/ai-transport/getting-started/core-sdk.md): build a chat app once the namespace is configured.
## Related Topics
- [Set up authentication](https://ably.com/docs/ai-transport/getting-started/authentication.md): Wire AI Transport to your auth: a token-issuing endpoint that signs Ably JWTs, and an authenticated Ably client on the browser.
## Documentation Index
To discover additional Ably documentation:
1. Fetch [llms.txt](https://ably.com/llms.txt) for the canonical list of available pages.
2. Identify relevant URLs from that index.
3. Fetch target pages as needed.
Avoid using assumed or outdated documentation paths.