用途
list-telegram-chats 用于列出曾与本智能体交互过的 Telegram 群组和私聊,便于查看消息来源、确认可用的聊天目标。
主要能力
- 从本地会话状态中检索去重的 Telegram chat ID。
- 按类型分类输出:群组为负 ID,私聊为正 ID。
- 输出 JSON,包含
chat_id、name、type字段。 - 当机器人已无法访问某个聊天时,
name为 null。 - 仅对来自 nanobot 会话的记录提供
last_updated字段。
使用方式
python3 "$SKILL_DIR/scripts/list_chats.py"
# 跳过名称解析(无需 bot token,速度更快):
python3 "$SKILL_DIR/scripts/list_chats.py" --no-names
$SKILL_DIR 表示该技能安装目录;若智能体未自动设置,需替换为 list-telegram-chats 目录的实际路径后再运行。
输出示例:
{
"groups": [{"chat_id": -1001234567890, "name": "My Group", "type": "supergroup", "last_updated": "2024-01-15T10:30:00Z"}],
"private_chats": [{"chat_id": 502391728, "name": "Alice Smith", "type": "private"}]
}
前置条件
会话来源按以下顺序检查:
- Nanobot:
~/.nanobot/workspace/sessions/telegram_*.jsonl,可通过NANOBOT_SESSIONS_DIR或NANOBOT_WORKSPACE配置。 - OpenClaw:
OPENCLAW_STATE_DIR/agents/main/sessions/sessions.json,默认为/twin-data/state。 - YouAI 后端:
YOUAI_API_URL与YOUAI_TWIN_ID,在无本地会话时作为回退。
名称解析所需 bot token 按以下顺序尝试:
TELEGRAM_BOT_TOKEN环境变量。~/.nanobot/config.json中的channels.telegram.token,可通过NANOBOT_CONFIG覆盖路径。
未提供 token 时,所有条目的 name 均被省略。
适用场景
需要查看谁给智能体发过消息、列出活跃会话,或为 telegram-send 等后续发送操作确定目标聊天时使用。
限制
- 依赖本地会话状态或 YouAI 后端配置;相关文件或环境变量缺失时可能无法获取数据。
- 未提供 bot token 时无法解析聊天名称。
last_updated仅对 nanobot 来源的聊天可用。