首页openclaw教程中心 › 输入指示器与在线状态教程

输入指示器与在线状态教程

什么是输入指示器

输入指示器(Typing Indicators)就是你在聊天软件中看到的"对方正在输入…"提示。当 OpenClaw 智能体收到你的消息并开始处理时,它会在聊天界面显示这个提示,让你知道它正在工作。 `` 你:帮我写一个 Docker Compose 配置 智能体:[正在输入...] ← 这就是输入指示器 ` 没有输入指示器的话,你发完消息后会看到一片空白,不知道智能体是在处理还是卡住了。

输入指示器的工作原理

OpenClaw 的输入指示器工作流程:
` 1. 用户发送消息 ↓ 2. Gateway 收到消息 ↓ 3. 向渠道发送"正在输入"信号 ← 开始显示 ↓ 4. 调用 AI 模型生成回复 ↓ 5. (如果处理时间长)定期刷新"正在输入"信号 ↓ 6. 回复发送完成 ↓ 7. "正在输入"信号自动消失 ← 停止显示 `

为什么需要定期刷新?

大多数聊天平台的输入指示器有超时机制——如果一段时间内没有新的"正在输入"信号,指示器会自动消失。例如: - WhatsApp:约 25 秒超时 - Telegram:约 5 秒超时 - Discord:约 10 秒超时 OpenClaw 会在处理过程中定期发送输入指示器信号,确保在整个处理期间都显示"正在输入"。

配置输入指示器

全局配置

openclaw.json 中配置: `json { "typingIndicators": { "enabled": true } } `

按渠道配置

不同渠道可以单独配置:
`json { "channels": { "telegram": { "typingIndicators": true }, "whatsapp": { "typingIndicators": true }, "discord": { "typingIndicators": true } } } `

禁用输入指示器

某些场景下你可能想禁用输入指示器:
`json { "typingIndicators": { "enabled": false } } ` 禁用的理由可能包括: - 减少 API 调用次数(某些渠道对输入指示器有频率限制) - 不想让用户知道智能体正在处理(静默模式) - 调试时减少日志噪音

什么是在线状态

在线状态(Presence)是指智能体在聊天平台上显示的状态信息,比如"在线"、"离线"、"忙碌"等。
` 智能体头像旁边的绿点 → 在线 智能体头像旁边的灰点 → 离线 `

在线状态的作用

- 让用户知道智能体是否可用 - 在群组中显示智能体的活跃状态 - 提供自定义状态消息(如"正在维护中")

在线状态配置

基本配置

`json { "presence": { "enabled": true, "status": "online" } } `

状态类型

| 状态值 | 显示效果 | 适用场景 | |--------|---------|---------| |
online | 在线(绿色) | 正常运行 | | idle | 空闲(黄色) | Gateway 运行但无活跃会话 | | dnd | 勿扰(红色) | 维护期间 | | offline | 离线(灰色) | Gateway 停止 |

自定义状态消息

部分渠道支持自定义状态文本:
`json { "presence": { "enabled": true, "status": "online", "statusMessage": "随时为你服务 🤖" } } `

各渠道支持差异

不同渠道对输入指示器和在线状态的支持程度不同:

输入指示器支持

| 渠道 | 支持 | 说明 | |------|------|------| | WhatsApp | ✅ 完整支持 | 显示"正在输入…",需定期刷新 | | Telegram | ✅ 完整支持 | 显示"正在输入…",约 5 秒超时需刷新 | | Discord | ✅ 完整支持 | 显示"Bot 正在输入…" | | WebChat | ✅ 完整支持 | 通过 WebSocket 实时显示 | | 微信 | ❌ 不支持 | 微信 API 不提供输入指示器接口 | | QQ | ❌ 不支持 | QQ Bot API 不提供此功能 | | 飞书 | ⚠️ 有限支持 | 仅在单聊中支持 | | Slack | ✅ 完整支持 | 显示"Bot is typing…" |

在线状态支持

| 渠道 | 支持 | 说明 | |------|------|------| | Discord | ✅ 完整支持 | 支持在线/空闲/勿扰/离线 + 自定义状态 | | Telegram | ⚠️ 有限 | 仅显示"最近在线"时间 | | WhatsApp | ⚠️ 有限 | 仅显示"在线"或"最后上线时间" | | Slack | ✅ 完整支持 | 支持自定义状态文本和 emoji | | WebChat | ✅ 完整支持 | 可自定义显示 | | 微信 | ❌ 不支持 | 微信不显示 Bot 在线状态 | | QQ | ❌ 不支持 | QQ Bot 无在线状态概念 |

实用配置示例

场景一:全渠道最佳体验

为所有支持的渠道启用输入指示器和在线状态:
`json { "typingIndicators": { "enabled": true }, "presence": { "enabled": true, "status": "online", "statusMessage": "AI 助手在线中" } } `

场景二:Discord 专属配置

Discord 对 Bot 状态支持最完整:
`json { "channels": { "discord": { "typingIndicators": true, "presence": { "status": "online", "statusMessage": "输入 /help 查看帮助" } } } } `

场景三:静默模式

不显示任何状态信息,适合后台自动化场景:
`json { "typingIndicators": { "enabled": false }, "presence": { "enabled": false } } `

常见问题

输入指示器一直显示怎么办?

如果"正在输入"一直不消失,可能是: 1. 模型响应超时:检查模型 API 是否正常 2. Gateway 卡住:重启 Gateway(
openclaw gateway restart) 3. 渠道 API 异常:检查渠道连接状态(openclaw channels status`)

为什么微信和 QQ 不支持输入指示器?

这是平台 API 的限制。微信和 QQ 的 Bot API 没有提供发送输入指示器的接口。这不是 OpenClaw 的问题,而是平台本身不支持。

输入指示器会消耗 API 配额吗?

发送输入指示器信号会消耗少量的渠道 API 调用次数,但通常可以忽略不计。如果你的渠道 API 配额非常紧张,可以考虑禁用。

在线状态和 Gateway 运行状态有关系吗?

是的。当 Gateway 停止运行时,智能体的在线状态会自动变为"离线"(在支持的渠道上)。Gateway 重新启动后,状态会恢复为配置的值。

小结

- 输入指示器让用户知道智能体正在处理,提升交互体验 - 在线状态显示智能体的可用性,支持自定义消息 - 各渠道支持程度不同,Discord 和 WebChat 支持最完整 - 微信和 QQ 由于平台限制不支持这些功能 - 建议在所有支持的渠道上启用输入指示器 #输入指示器 #在线状态 #Presence #用户体验 #龙虾技能库
#输入指示器#在线状态#渠道功能#用户体验#中级教程

📚 相关教程

API 成本与 Token 管理教程中级
了解 OpenClaw 的 API 使用成本构成、Token 计算方式、使用量追踪方法,以及通过模型选择、Prompt 缓存和上下文压缩等手段优化成本的实用建议。
模型故障转移与流式传输教程中级
了解 OpenClaw 的模型故障转移机制和流式传输配置,确保智能体在主模型不可用时自动切换备用模型,并通过分块回复提升用户体验。
会话管理教程中级
深入了解 OpenClaw 的会话机制,掌握会话存储、路由、压缩和修剪等核心概念,学会使用 CLI 命令管理和切换会话。
← 工具使用教程WebChat 与仪表板使用教程 →