一、基础概念

1. 输入指示器(Typing Indicators)

即聊天界面 **「对方正在输入…」** 提示,作用:告知用户智能体正在处理请求,避免误以为程序卡死。

工作流程

  1. 用户发送消息 → 网关接收
  2. 向对应渠道推送「正在输入」信号(提示开始展示)
  3. 调用大模型生成回复,定时刷新输入状态(适配平台超时规则)
  4. 回复推送完成 → 自动关闭输入提示

平台超时规则(关键)

多数平台会自动清除长时间未刷新的输入状态,因此 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 正在输入」
WhatsApp✅ 完整支持25 秒超时
WebChat✅ 完整支持WebSocket 原生支持,无超时
Slack✅ 完整支持英文提示文案
飞书⚠️ 有限支持仅单聊生效,群聊无效
微信 / QQ❌ 不支持平台官方 API 未提供接口,无法实现

在线状态支持情况

表格

渠道支持补充说明
Discord✅ 完整支持全状态 + 自定义文案 + Emoji
Slack✅ 完整支持支持自定义状态文本
WebChat✅ 完整支持界面自定义展示
Telegram⚠️ 有限支持仅显示「最近在线」,无多状态区分
WhatsApp⚠️ 有限支持仅区分在线 / 最后上线时间
微信 / 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. 「正在输入」一直显示、不会消失

  1. 模型 API 异常:接口超时 / 报错,流程中断 → 检查模型 Key、接口连通性
  2. 网关进程卡死 → 执行 openclaw gateway restart 重启网关
  3. 渠道连接异常 → 查看渠道状态:openclaw channels status

2. 微信 / QQ 看不到「正在输入」

正常现象:平台原生 API 未开放该能力,无法通过配置解决。

3. 状态提示频繁、担心消耗接口配额

输入指示器仅产生少量轻量请求,绝大多数平台不计费 / 不限流;

若配额紧张,直接全局关闭 typingIndicators.enabled: false 即可。

4. 网关停止后,在线状态不变化

正常逻辑:网关离线后,支持状态的渠道会自动刷新为「离线」;

若未变更,重启对应渠道连接或网关即可。


七、总结

  1. 输入指示器提升交互感知,主流聊天渠道建议开启,微信 / QQ 无需配置;
  2. 在线状态适合告知服务状态,Discord、Slack 可充分利用自定义文案;
  3. 配置分全局单渠道两级,可灵活差异化管控;
  4. 自动化、后台托管场景建议关闭所有状态提示;
  5. 配置修改后必须重启网关才能生效。