Token导航 LogoToken导航TokenDH.com
效率需要联网clawhub未标认证来源可访问clear审计提醒

lark-bot-listenerLark 机器人监听器

Agent Skill

lark-bot-listener 用于处理图像、截图、视觉识别或图片素材相关工作,适合在 OpenClaw 中需要让 Agent 分析图片、整理视觉素材或辅助图像流程时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

24,137

周安装

986

GitHub Stars

公开资料未说明

下载量

7,730
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:lark-bot-listener(Lark 机器人监听器)
来源仓库:https://github.com/wangyendt/lark-bot-listener
安装命令:
openclaw skills install lark-bot-listener
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install lark-bot-listener

简介

WebSocket 驱动的飞书消息实时监听器,处理文本与多媒体内容。

  • 适合在 OpenClaw 中构建事件响应型工作流。
  • 通过 clawhub 安装,连接飞书开放平台获取消息流。
  • 使用前请确认网络防火墙是否放行 WebSocket 端口。
  • 建议设置消息去重与异常重连机制提升稳定性。lark-bot-listener 属于效率类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

name
pywayne-lark-bot-listener
description
Feishu/Lark message listener for real-time message processing via WebSocket. Use when users need to listen for incoming Feishu messages (text, image, file, post) with automatic deduplication and async handling. Provides convenient decorators (text_handler, image_handler, file_handler) that handle message download/cleanup and optional automatic reply.

Pywayne Lark Bot Listener

飞书消息监听器,通过 WebSocket 实时接收和处理飞书消息。

Quick Start

from pywayne.lark_bot_listener import LarkBotListener

# 初始化监听器
listener = LarkBotListener(
    app_id="your_app_id",
    app_secret="your_app_secret",
    message_expiry_time=60  # 消息去重过期时间(秒)
)

# 处理文本消息
@listener.text_handler()
async def handle_text(text: str):
    print(f"收到消息: {text}")

# 启动监听
listener.run()

Decorators - 消息处理装饰器

text_handler

文本消息处理装饰器,直接传递文本内容。

@listener.text_handler(group_only=False, user_only=False)
async def handle_text(text: str, chat_id: str, is_group: bool, group_name: str, user_name: str):
    print(f"收到来自 {user_name} 的消息: {text}")
    listener.send_message(chat_id, f"已收到:{text}")

参数说明(除 text 外均为可选):

参数类型说明
textstr文本内容(必需)
chat_idstr会话 ID
is_groupbool是否群组消息
group_namestr群组名称(私聊时为空)
user_namestr发送消息的用户姓名

装饰器参数

  • group_only=True: 只处理群组消息
  • user_only=True: 只处理私聊消息

image_handler

图片消息处理装饰器,自动下载图片到临时文件并清理。

from pathlib import Path
import cv2
import tempfile

@listener.image_handler()
async def handle_image(image_path: Path, user_name: str) -> Path:
    # 处理图片
    img = cv2.imread(str(image_path))
    # ...处理逻辑...
    # 返回新图片路径会自动发送回去,返回 None 则不发送
    return image_path

参数说明(除 image_path 外均为可选):

参数类型说明
image_pathPath临时图片文件路径(必需)
chat_idstr会话 ID
is_groupbool是否群组消息
group_namestr群组名称
user_namestr发送消息的用户姓名

返回值

  • 返回 Path: 自动上传并发送新图片
  • 返回 None: 不发送任何图片

file_handler

文件消息处理装饰器,自动下载文件到临时文件并清理。

@listener.file_handler()
async def handle_file(file_path: Path, user_name: str) -> Path:
    # 处理文件
    with open(file_path, 'r') as f:
        content = f.read()
    # ...处理逻辑...
    return file_path  # 返回文件路径会自动发送回去

参数说明(除 file_path 外均为可选):

参数类型说明
file_pathPath临时文件路径(必需)
chat_idstr会话 ID
is_groupbool是否群组消息
group_namestr群组名称
user_namestr发送消息的用户姓名

listen - 通用消息监听器

用于监听任意类型消息(包括富文本 post)。

@listener.listen(message_type="post")
async def handle_post(ctx: MessageContext):
    print(f"收到富文本消息: {ctx.content}")

MessageContext 属性

属性类型说明
chat_idstr会话 ID
user_idstr用户 ID
message_typestr消息类型
contentstr消息内容(文本消息为字符串,其他类型为 JSON 字符串)
is_groupbool是否群组消息
chat_typestr会话类型
message_idstr消息 ID

send_message - 发送消息

发送 Markdown 格式的消息到飞书。

listener.send_message(chat_id, "**这是加粗文本**")
listener.send_message(chat_id, "普通文本\
[链接](https://example.com)")

完整示例

from pywayne.lark_bot_listener import LarkBotListener
from pathlib import Path

listener = LarkBotListener(
    app_id="your_app_id",
    app_secret="your_app_secret"
)

# 文本消息 - AI 回复示例
@listener.text_handler()
async def handle_text(text: str, chat_id: str, user_name: str):
    # 处理逻辑...
    listener.send_message(chat_id, f"收到来自 {user_name} 的消息")

# 图片消息 - 自动下载和清理
@listener.image_handler()
async def handle_image(image_path: Path):
    # image_path 是临时文件,处理完会自动清理
    print(f"处理图片: {image_path}")

# 文件消息 - 自动下载和清理
@listener.file_handler(group_only=True)
async def handle_file(file_path: Path, group_name: str):
    print(f"收到文件: {file_path} 来自 {group_name}")

# 富文本消息
@listener.listen(message_type="post")
async def handle_post(ctx: MessageContext):
    import json
    post_content = json.loads(ctx.content)
    print(f"收到富文本: {post_content}")

# 启动监听
listener.run()

注意事项

  1. 异步处理: 所有处理函数使用 async/await 语法
  2. 消息去重: 每个处理函数独立去重,默认 60 秒过期
  3. 临时文件: 图片和文件下载到 系统临时目录/lark_bot_temp,处理完自动清理
  4. 错误隔离: 每个处理函数异常独立捕获,不影响其他函数
  5. 多注册: 同一消息可被多个处理函数处理

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

84.39%
按下载量换算6,523

安全审计

VirusTotal

通过

ClawScan

可疑

Static analysis

未展示

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills