FastClaw / Ability level
channel
Channels bind the same Agent to web chat and team messaging portals, and isolate context by channel session.

Channel Manager
Channel Manager uses channel:accountID as key and uses Leaser to prevent multiple processes from occupying the same account at the same time. WebChannel is always present for SSE subscriptions and push fallbacks.
- Telegram: long polling, registering bot commands, processing photos.
- Discord: gateway and slash command.
- Slack:Socket Mode。
- Feishu: webhook or long connection, supports verification token/encrypt key.
- LINE:webhook HMAC,reply/push API。
Binding and Isolation
Each channel account can be bound to a specific Agent. Inbound messages will pass through the task queue and be routed to the Agent; the session key is usually determined by a combination of channel, account, and chatID.
| Field | function |
|---|---|
| channel | web, telegram, discord, slack, wechat, feishu, line, etc. |
| accountID | Specific accounts or bots under the same channel |
| chatID | User, group, channel or thread identifier |
| agentID | The Agent that ultimately handles the message |
Webhook security
The setup server provides unauth webhook endpoint for Feishu and LINE, but the signature/verification is verified at the adapter layer. Do not treat all webhooks as trusted internal requests in the anti-generation layer.
production suggestions
Public webhook should enable platform signature verification, current limiting, logs and error alarms; different channel accounts should be bound to tokens and agents separately as much as possible.