OpenClaw 团队通知系统:跨平台消息推送最佳实践
OpenClaw 团队通知系统:跨平台消息推送最佳实践
在 AI 助手帮我们处理各种任务的过程中,及时获取处理结果至关重要。无论是代码审查完成、重要文件更新,还是任务执行出错,都需要第一时间通知到相关人员。OpenClaw 的 message 工具提供了统一的跨平台消息推送能力,支持微信、钉钉、Slack、Telegram 等主流平台,让你告别在各个平台之间切换的烦恼。
一、message 工具基础配置
OpenClaw 的 message 工具设计理念是「一次配置,多端推送」。通过统一的配置结构,你可以同时向多个平台发送消息,而无需为每个平台编写不同的代码。
首先,你需要在 OpenClaw 的配置文件中定义通知渠道:
{
"notification": {
"channels": {
"dingtalk": {
"webhook": "https://oapi.dingtalk.com/robot/send?access_token=YOUR_TOKEN",
"secret": "SECxxxxxxxx"
},
"slack": {
"webhook": "https://hooks.slack.com/services/YOUR/WEBHOOK/URL"
},
"telegram": {
"bot_token": "YOUR_BOT_TOKEN",
"chat_id": "YOUR_CHAT_ID"
}
}
}
}
配置完成后,使用 message 工具发送通知变得非常简单:
from openclaw import message
# 发送单平台消息
message.send(
platform="dingtalk",
content="任务已完成:代码审查通过",
title="OpenClaw 任务通知"
)
# 同时推送多个平台
message.send_multi(
platforms=["dingtalk", "slack", "telegram"],
content="线上环境部署完成,请验证",
title="部署通知"
)
二、各平台消息格式与特性
不同平台对消息格式有不同的支持程度,了解这些差异能帮助你写出更好的通知内容。
钉钉消息支持 Markdown 格式和艾特成员功能,适合团队内部协作:
message.send(
platform="dingtalk",
content="## 任务执行报告\n\n- 状态:成功\n- 耗时:2分30秒\n- 输出文件:3个\n\n@所有人 请及时查看",
msgtype="markdown"
)
Slack 消息支持 Block Kit 布局,可以创建更丰富的交互式通知:
message.send(
platform="slack",
content={
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*部署完成* :white_check_mark:"
}
},
{
"type": "divider"
},
{
"type": "section",
"fields": [
{"type": "mrkdwn", "text": "*环境*\n生产环境"},
{"type": "mrkdwn", "text": "*版本*\nv2.1.0"}
]
}
]
}
)
Telegram 消息支持 HTML 格式和键盘按钮,适合需要用户交互的场景:
message.send(
platform="telegram",
content="<b>新任务提醒</b>\n\n任务:数据同步\n状态:等待确认",
parse_mode="HTML",
reply_markup={
"inline_keyboard": [
[{"text": "确认", "callback_data": "confirm_1"}],
[{"text": "查看详情", "callback_data": "detail_1"}]
]
}
)
三、企业微信与微信模板消息
对于需要发送模板消息或更正式通知的场景,企业微信和微信公众号提供了更强大的能力。企业微信支持应用消息和群机器人两种模式:
# 企业微信应用消息
message.send(
platform="wework",
msgtype="textcard",
content={
"title": "CI/CD 流水线状态",
"description": "构建 #452 已完成\n失败数:0",
"url": "https://ci.example.com/build/452",
"btntxt": "查看详情"
}
)
在实际项目中,我建议将通知逻辑封装成统一的函数,方便在不同场景下复用:
def notify_task_complete(task_name, result, duration):
"""任务完成后的统一通知"""
status_emoji = "成功" if result["success"] else "失败"
message.send_multi(
platforms=["dingtalk", "slack"],
content=f"任务「{task_name}」{status_emoji}\n"
f"耗时:{duration}秒\n"
f"输出:{result.get('output_count', 0)}个文件",
title="任务执行通知"
)
if not result["success"]:
# 失败时额外发送告警到监控群
message.send(
platform="dingtalk",
content=f"⚠️ 任务执行失败:{task_name}\n错误:{result['error']}",
msgtype="text"
)
总结
OpenClaw 的 message 工具让跨平台通知变得简单高效。核心要点包括:统一配置管理多平台渠道、根据各平台特性选择合适的消息格式、封装通用函数提升代码复用性。合理使用通知功能,能让团队协作更加顺畅,重要信息不再遗漏。
如果你需要进一步提升 AI 助手的自动化能力,ClawBrain 是专为 OpenClaw 打造的智能决策引擎。它具备任务闭环、自主规划、错误自愈能力,能让 AI 在执行复杂任务时自动处理各种边界情况,真正实现「一次配置,长期自动运行」。