一、基础概念
1. 输入指示器(Typing Indicators)
即聊天界面 **「对方正在输入…」** 提示,作用:告知用户智能体正在处理请求,避免误以为程序卡死。
工作流程
- 用户发送消息 → 网关接收
- 向对应渠道推送「正在输入」信号(提示开始展示)
- 调用大模型生成回复,定时刷新输入状态(适配平台超时规则)
- 回复推送完成 → 自动关闭输入提示
平台超时规则(关键)
多数平台会自动清除长时间未刷新的输入状态,因此 OpenClaw 会循环发送信号保活:
- Telegram:约 5 秒超时
- Discord:约 10 秒超时
- WhatsApp:约 25 秒超时
2. 在线状态(Presence)
展示智能体当前在线 / 离线 / 忙碌等标识,部分渠道支持自定义状态文案,用于告知用户服务可用性。
状态标识对照:
online在线(绿色):正常提供服务idle空闲(黄色):程序运行,暂无会话dnd勿扰(红色):维护中,暂停服务offline离线(灰色):网关已停止
二、全局配置(统一生效)
编辑主配置文件 ~/.openclaw/openclaw.json
1. 启用 / 关闭 输入指示器
json
// 全局开启(推荐)
{
"typingIndicators": {
"enabled": true
}
}
json
// 全局关闭(静默模式/节省接口调用)
{
"typingIndicators": {
"enabled": false
}
}
2. 启用 / 关闭 在线状态
json
// 基础在线状态
{
"presence": {
"enabled": true,
"status": "online"
}
}
json
// 带自定义状态文案 + Emoji(主流渠道支持)
{
"presence": {
"enabled": true,
"status": "online",
"statusMessage": "AI 助手在线,随时待命 🤖"
}
}
json
// 维护模式:勿扰状态
{
"presence": {
"enabled": true,
"status": "dnd",
"statusMessage": "系统维护中,稍后再来~"
}
}
json
// 关闭所有在线状态
{
"presence": {
"enabled": false
}
}
三、按渠道独立配置(精细化管控)
部分渠道不支持状态功能,可单独开关,优先级 渠道配置 > 全局配置。
示例:多渠道差异化配置
json
{
"typingIndicators": {
"enabled": true
},
"presence": {
"enabled": true,
"status": "online"
},
"channels": {
"telegram": {
"typingIndicators": true
},
"discord": {
"typingIndicators": true,
"presence": {
"status": "online",
"statusMessage": "输入 /help 获取帮助"
}
},
"wechat": {
"typingIndicators": false,
"presence": {
"enabled": false
}
}
}
}
配置完成后重启网关生效:
bash
运行
openclaw gateway restart
四、各渠道功能兼容对照表
输入指示器支持情况
表格
| 渠道 | 支持 | 补充说明 |
|---|---|---|
| Telegram | ✅ 完整支持 | 5 秒超时,自动刷新 |
| Discord | ✅ 完整支持 | 显示「Bot 正在输入」 |
| ✅ 完整支持 | 25 秒超时 | |
| WebChat | ✅ 完整支持 | WebSocket 原生支持,无超时 |
| Slack | ✅ 完整支持 | 英文提示文案 |
| 飞书 | ⚠️ 有限支持 | 仅单聊生效,群聊无效 |
| 微信 / QQ | ❌ 不支持 | 平台官方 API 未提供接口,无法实现 |
在线状态支持情况
表格
| 渠道 | 支持 | 补充说明 |
|---|---|---|
| Discord | ✅ 完整支持 | 全状态 + 自定义文案 + Emoji |
| Slack | ✅ 完整支持 | 支持自定义状态文本 |
| WebChat | ✅ 完整支持 | 界面自定义展示 |
| Telegram | ⚠️ 有限支持 | 仅显示「最近在线」,无多状态区分 |
| ⚠️ 有限支持 | 仅区分在线 / 最后上线时间 | |
| 微信 / QQ | ❌ 不支持 | 平台无 Bot 在线状态设计 |
| 飞书 | ⚠️ 有限支持 | 仅基础在线标识,不支持自定义文案 |
五、常用场景完整配置模板
场景 1:全渠道标准体验(推荐日常使用)
开启全部可用功能,兼顾体验与稳定性
json
{
"typingIndicators": {
"enabled": true
},
"presence": {
"enabled": true,
"status": "online",
"statusMessage": "AI 智能助手"
}
}
场景 2:Discord 专属优化(功能最全)
利用 Discord 完整的状态能力做定制
json
{
"channels": {
"discord": {
"typingIndicators": true,
"presence": {
"status": "online",
"statusMessage": "📚 问答 | 代码 | 闲聊"
}
}
}
}
场景 3:静默后台模式(自动化 / 脚本场景)
关闭所有状态提示,减少接口请求与日志
json
{
"typingIndicators": {
"enabled": false
},
"presence": {
"enabled": false
}
}
场景 4:系统维护模式
全局设置为勿扰状态,提示用户维护
json
{
"typingIndicators": {
"enabled": false
},
"presence": {
"enabled": true,
"status": "dnd",
"statusMessage": "系统维护中,暂停服务"
}
}
六、常见问题排查
1. 「正在输入」一直显示、不会消失
- 模型 API 异常:接口超时 / 报错,流程中断 → 检查模型 Key、接口连通性
- 网关进程卡死 → 执行
openclaw gateway restart重启网关 - 渠道连接异常 → 查看渠道状态:
openclaw channels status
2. 微信 / QQ 看不到「正在输入」
正常现象:平台原生 API 未开放该能力,无法通过配置解决。
3. 状态提示频繁、担心消耗接口配额
输入指示器仅产生少量轻量请求,绝大多数平台不计费 / 不限流;
若配额紧张,直接全局关闭 typingIndicators.enabled: false 即可。
4. 网关停止后,在线状态不变化
正常逻辑:网关离线后,支持状态的渠道会自动刷新为「离线」;
若未变更,重启对应渠道连接或网关即可。
七、总结
- 输入指示器提升交互感知,主流聊天渠道建议开启,微信 / QQ 无需配置;
- 在线状态适合告知服务状态,Discord、Slack 可充分利用自定义文案;
- 配置分全局和单渠道两级,可灵活差异化管控;
- 自动化、后台托管场景建议关闭所有状态提示;
- 配置修改后必须重启网关才能生效。