Channel Debug Core
vercel-labs/vercel-openclaw-archived
Channel webhook triage for vercel-openclaw Slack/Telegram/Discord/WhatsApp issues: prove deployment state, collect admin readiness endpoints, build evidence-first handoff before fixes.
通用Webhook通知工具,支持钉钉、企业微信、Slack、飞书等多种平台的webhook消息发送,以及自定义HTTP POST请求。适用于告警通知、自动化触发、系统监控等场景。
$ npx skills add LeoYeAI/openclaw-master-skills --skill webhook-notify -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills webhook-notify --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/webhook-notify .claude/skills/webhook-notify && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "webhook-notify" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/webhook-notify into .claude/skills/webhook-notify/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "webhook-notify", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/webhook-notifyType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add LeoYeAI/openclaw-master-skills --skill webhook-notify -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills webhook-notify --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/webhook-notify .agents/skills/webhook-notify && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "webhook-notify" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/webhook-notify into .agents/skills/webhook-notify/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "webhook-notify", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add LeoYeAI/openclaw-master-skills --skill webhook-notify -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills webhook-notify --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/webhook-notify .cursor/skills/webhook-notify && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "webhook-notify" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/webhook-notify into .cursor/skills/webhook-notify/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "webhook-notify", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/LeoYeAI/openclaw-master-skills.git --path skills/webhook-notify--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add LeoYeAI/openclaw-master-skills --skill webhook-notify -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills webhook-notify --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/webhook-notify .gemini/skills/webhook-notify && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "webhook-notify" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/webhook-notify into .gemini/skills/webhook-notify/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "webhook-notify", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install LeoYeAI/openclaw-master-skills webhook-notifyInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add LeoYeAI/openclaw-master-skills --skill webhook-notify -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/webhook-notify .github/skills/webhook-notify && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "webhook-notify" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/webhook-notify into .github/skills/webhook-notify/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "webhook-notify", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add LeoYeAI/openclaw-master-skills --skill webhook-notify -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills webhook-notify --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/webhook-notify .opencode/skills/webhook-notify && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "webhook-notify" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/webhook-notify into .opencode/skills/webhook-notify/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "webhook-notify", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
webhook-notify通用Webhook通知工具,支持钉钉、企业微信、Slack、飞书等多种平台的webhook消息发送,以及自定义HTTP POST请求。适用于告警通知、自动化触发、系统监控等场景。
Webhook Notify is an agent skill from LeoYeAI/openclaw-master-skills. 通用Webhook通知工具,支持钉钉、企业微信、Slack、飞书等多种平台的webhook消息发送,以及自定义HTTP POST请求。适用于告警通知、自动化触发、系统监控等场景。
Its SKILL.md is about 3.5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files (for example `README.md`, `_meta.json` and `package.json`).
It sits in Backend & APIs, covering Webhooks. It works with Slack. The repository describes itself as: 🧠 Curated collection of 1209+ best OpenClaw skills — weekly updated by MyClaw.ai. The licence is MIT.
12 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit e5199b5. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are powershell and bash).
From the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
oapi.dingtalk.comqyapi.weixin.qq.comhooks.slack.comopen.feishu.cnFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
WECOM_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Webhook Notify loads about 3.5k tokens when it runs. Until then it costs about 26 tokens; SKILL.md has 296 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from LeoYeAI/openclaw-master-skills at commit e5199b5, republished under its MIT licence (© LeoYeAI). 296 words, ~3,547 tokens.
.claude/skills/webhook-notify/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.一个统一的webhook发送工具,支持多种主流平台的webhook通知。
| 平台 | 消息类型 | 支持功能 |
|---|---|---|
| 钉钉 | Text/Markdown/Link/ActionCard | @用户、@所有人、按钮交互 |
| 企业微信 | Text/Markdown/Image/File/News | 图文消息、@用户 |
| 飞书 | Text/Post/Interactive/ShareCard | 富文本、卡片、按钮 |
| Slack | Text/Block/Attachment | 格式化消息、按钮 |
| 自定义HTTP | JSON/Form-Data/Raw | 完全自定义请求 |
# 文本消息
$webhook = "https://oapi.dingtalk.com/robot/send?access_token=YOUR_TOKEN"
Send-WebhookDingTalk -WebhookUrl $webhook -Message "【告警】系统异常" -AtAll $true
# Markdown 消息
Send-WebhookDingTalk -WebhookUrl $webhook -Type markdown -Title告警" -Content "## 内容`n详情:xxx"
# 包含附件的卡片消息
Send-WebhookDingTalk -WebhookUrl $webhook -Type actionCard -Title "告警详情" -Text "系统CPU使用率超过90%" -Buttons @(@{title="查看详情";url="https://example.com"})$webhook = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=YOUR_KEY"
# 文本消息 @指定用户
Send-WebhookWeCom -WebhookUrl $webhook -Message "告警信息" -AtUsers @("13800138000")
# Markdown 消息
Send-WebhookWeCom -WebhookUrl $webhook -Type markdown -Content "**告警**`n系统异常,请及时处理"$webhook = "https://open.feishu.cn/open-apis/bot/v2/hook/YOUR_WEBHOOK"
# 文本消息
Send-WebhookFeishu -WebhookUrl $webhook -Message "【openclaw】告警"
# 富文本卡片
Send-WebhookFeishu -WebhookUrl $webhook -Type post -Title "系统告警" -Content @(@{tag="text";text="CPU使用率:95%"})$webhook = "https://hooks.slack.com/services/YOUR/WEBHOOK/URL"
# 简单文本
Send-WebhookSlack -WebhookUrl $webhook -Message "System Alert: CPU high"
# 格式化消息 (Block Kit)
Send-WebhookSlack -WebhookUrl $webhook -Type block -Blocks @(
@{type="section";text=@{type="mrkdwn";text="*Alert*`nCPU: 95%"}}
@{type="actions";elements=@(@{type="button";text=@{type="plain_text";text="View"};url="https://example.com"})}
)# 完全自定义
Send-WebhookCustom -Url "https://your-webhook.com/endpoint" `
-Method POST `
-ContentType "application/json" `
-Body @{message="custom webhook data"} `
-Headers @{"X-Custom-Header"="value"}发送钉钉webhook消息。
参数:
WebhookUrl (string): webhook地址Message (string): 文本消息内容Type (string): 消息类型 text|markdown|actionCard,默认 textTitle (string): 消息标题(用于markdown和actionCard)Content (string): markdown内容Text (string): actionCard的文本内容BtnOrientation (string): 按钮方向 0横向|1纵向Buttons (array): 按钮列表 @(@{title="btn1";url="url1"})AtMobiles (array): @的手机号列表AtUserIds (array): @的userId列表IsAtAll (bool): 是否@所有人Keyword (string): 添加关键字(安全限制)示例:
# 文本消息 @所有人
Send-WebhookDingTalk -WebhookUrl $url -Message "【openclaw】告警" -IsAtAll $true
# Markdown @指定用户
Send-WebhookDingTalk -WebhookUrl $url -Type markdown -Title "告警" -Content "系统异常" -AtMobiles @("13800138000")
# ActionCard带按钮
Send-WebhookDingTalk -WebhookUrl $url -Type actionCard -Title "告警" `
-Text "CPU使用率:95%" `
-Buttons @(@{title="查看详情";url="https://example.com"}, @{title="忽略";url="https://example.com/ignore"})发送企业微信webhook消息。
参数:
WebhookUrl (string): webhook地址Message (string): 文本消息内容Type (string): 消息类型 text|markdown|image|news|fileContent (string): markdown内容MdId (string): 媒体ID(用于image/file)Articles (array): 图文消息列表AtUsers (array): @的手机号列表IsAtAll (bool): 是否@所有人示例:
# 文本消息
Send-WebhookWeCom -WebhookUrl $url -Message "系统告警"
# Markdown
Send-WebhookWeCom -WebhookUrl $url -Type markdown -Content "**标题**`n内容"
# 图文消息
Send-WebhookWeCom -WebhookUrl $url -Type news -Articles @(
@{title="标题";description="描述";url="http://example.com";picurl="http://example.com/img.jpg"}
)发送飞书webhook消息。
参数:
WebhookUrl (string): webhook地址Message (string): 文本消息内容Type (string): 消息类型 text|post|interactive|shareCardTitle (string): 卡片标题Content (array): 富文本内容元素Elements (array): 交互元素(按钮等)AtUsers (array): @的open_id列表示例:
# 文本消息
Send-WebhookFeishu -WebhookUrl $url -Message "【openclaw】告警"
# 富文本卡片
Send-WebhookFeishu -WebhookUrl $url -Type post -Title "系统告警" -Content @(
@{tag="text";text="CPU使用率:95%"}
)
# 交互卡片
Send-WebhookFeishu -WebhookUrl $url -Type interactive -Title "确认操作" `
-Elements @(@{tag="button";text=@{tag="plain_text";content="确认"};type="primary";url="https://example.com"})发送Slack webhook消息。
参数:
WebhookUrl (string): webhook地址Message (string): 文本消息内容Type (string): 消息类型 text|blockBlocks (array): Block Kit块Attachments (array): 附件列表Channel (string): 目标频道(覆盖默认)Username (string): 发送者名称IconEmoji (string): 图标emojiIconUrl (string): 图标URL示例:
# 简单文本
Send-WebhookSlack -WebhookUrl $url -Message "System Alert"
# Block Kit
Send-WebhookSlack -WebhookUrl $url -Type block -Blocks @(
@{type="section";text=@{type="mrkdwn";text="*Alert*`nCPU: 95%"}},
@{type="actions";elements=@(@{type="button";text=@{type="plain_text";text="View"};url="https://example.com"})}
)发送自定义HTTP请求。
参数:
Url (string): 目标URLMethod (string): HTTP方法 GET|POST|PUT|DELETE,默认 POSTBody (object 或 string): 请求体ContentType (string): Content-Type,默认 application/jsonHeaders (hashtable): 请求头Timeout (int): 超时秒数,默认 30UseBasicAuth (bool): 使用基础认证Username (string): 用户名Password (string): 密码示例:
# JSON POST
Send-WebhookCustom -Url "https://api.example.com/webhook" `
-Body @{event="alert";severity="high"} `
-Headers @{"X-API-Key"="your-key"}
# 自定义Header
Send-WebhookCustom -Url "https://..." `
-Method PUT `
-Body "raw string body" `
-ContentType "text/plain" `
-Headers @{"Authorization"="Bearer token"}为了避免暴露敏感信息,建议将webhook URL存储在环境变量中:
PowerShell 配置:
# 临时设置(当前会话)
$env:DINGTALK_WEBHOOK = "https://oapi.dingtalk.com/robot/send?access_token=..."
$env:WECOM_WEBHOOK = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=..."
# 永久设置(系统环境变量)
[System.Environment]::SetEnvironmentVariable('DINGTALK_WEBHOOK', 'https://...', 'User')使用环境变量:
Send-WebhookDingTalk -WebhookUrl $env:DINGTALK_WEBHOOK -Message "告警"Linux/Mac 配置:
# ~/.bashrc 或 ~/.zshrc
export DINGTALK_WEBHOOK="https://oapi.dingtalk.com/robot/send?access_token=..."
export WECOM_WEBHOOK="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=..."创建配置文件 webhook-config.ps1:
# webhook-config.ps1
$Script:WebhookConfig = @{
DingTalk = @{
DefaultUrl = $env:DINGTALK_WEBHOOK
Monitoring = @{
Url = $env:DINGTALK_MONITORING_WEBHOOK
Keyword = "【openclaw】"
}
}
WeCom = @{
DevTeam = $env:WECOM_DEV_TEAM_WEBHOOK
Alert = $env:WECOM_ALERT_WEBHOOK
}
Slack = @{
Alerts = "https://hooks.slack.com/services/..."
}
}使用配置:
. .\webhook-config.ps1
Send-WebhookDingTalk -WebhookUrl $WebhookConfig.DingTalk.Monitoring.Url -Message "告警" -Keyword $WebhookConfig.DingTalk.Monitoring.Keyword创建消息模板 message-templates.ps1:
# 系统告警模板
function Get-SystemAlertMessage {
param(
[string]$Severity,
[string]$Component,
[string]$Details
)
$severityIcon = switch ($Severity) {
"critical" { "🚨" }
"warning" { "⚠️" }
"info" { "ℹ️" }
default { "📌" }
}
return @"
$severityIcon 系统告警
- 严重等级: $Severity
- 组件: $Component
- 详情: $Details
- 时间: $(Get-Date -Format "yyyy-MM-dd HH:mm:ss")
请及时处理!
"@
}
# 使用模板
$msg = Get-SystemAlertMessage -Severity "critical" -Component "CPU" -Details "使用率: 95%"
Send-WebhookDingTalk -WebhookUrl $env:DINGTALK_WEBHOOK -Message $msg# 发送到多个webhook
$webhooks = @(
$env:DINGTALK_WEBHOOK,
$env:WECOM_WEBHOOK,
$env:FEISHU_WEBHOOK
)
foreach ($url in $webhooks) {
if ($url -match "dingtalk") {
Send-WebhookDingTalk -WebhookUrl $url -Message "告警"
} elseif ($url -match "qyapi.weixin") {
Send-WebhookWeCom -WebhookUrl $url -Message "告警"
}
}function Send-WebhookWithRetry {
param(
[string]$Url,
[int]$MaxRetries = 3,
[scriptblock]$SendAction
)
$attempt = 0
while ($attempt -lt $MaxRetries) {
$attempt++
try {
& $SendAction
return $true
} catch {
Write-Host "尝试 $attempt/$MaxRetries 失败: $_"
if ($attempt -lt $MaxRetries) {
Start-Sleep -Seconds 2
}
}
}
return $false
}
# 使用重试
Send-WebhookWithRetry -Url $env:DINGTALK_WEBHOOK -MaxRetries 3 -SendAction {
Send-WebhookDingTalk -WebhookUrl $env:DINGTALK_WEBHOOK -Message "测试消息"
}function Test-Webhook {
param(
[Parameter(Mandatory=$true)]
[string]$Url,
[ValidateSet('DingTalk', 'WeCom', 'Feishu', 'Slack', 'Custom')]
[string]$Platform
)
$testMessage = "【Webhook测试】`n时间: $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')`n平台: $Platform`n状态: ✅ 成功"
switch ($Platform) {
'DingTalk' {
Send-WebhookDingTalk -WebhookUrl $Url -Message $testMessage
}
'WeCom' {
Send-WebhookWeCom -WebhookUrl $Url -Message $testMessage
}
'Feishu' {
Send-WebhookFeishu -WebhookUrl $Url -Message $testMessage
}
'Slack' {
Send-WebhookSlack -WebhookUrl $Url -Message $testMessage
}
default {
Send-WebhookCustom -Url $Url -Body @{message="webhook test"}
}
}
}
# 测试钉钉webhook
Test-Webhook -Url $env:DINGTALK_WEBHOOK -Platform DingTalk钉钉和企业微信webhook通常需要设置关键字验证:
# 确保 webhook URL 包含必要的参数或消息中包含关键字
Send-WebhookDingTalk -WebhookUrl $url -Message "【openclaw】告警内容" -Keyword "openclaw"如果使用企业微信签名验证:
function Get-WeComSignature {
param(
[string]$Content,
[string]$Key
)
$hmacsha = New-Object System.Security.Cryptography.HMACSHA256
$hmacsha.key = [Text.Encoding]::UTF8.GetBytes($Key)
$signature = $hmacsha.ComputeHash([Text.Encoding]::UTF8.GetBytes($Content))
return [System.BitConverter]::ToString($signature).Replace('-', '').ToLower()
}
# 使用签名
$timestamp = [int][double]::Parse((Get-Date -UFormat %s))
$sign = Get-WeComSignature -Content $timestamp -Key $env:WECOM_KEY
$webhook = "$env:WECOM_WEBHOOK×tamp=$timestamp&sign=$sign"错误信息:钉钉: {"errcode": 310000, "errmsg": "keywords not in content"}
解决:
# 确保消息包含关键字
Send-WebhookDingTalk -WebhookUrl $url -Message "【openclaw】告警" -Keyword "openclaw"错误信息: 请求超时
解决:
# 增加超时时间
Send-WebhookDingTalk -WebhookUrl $url -Message "测试" -Timeout 60错误信息: {"errcode": 310000, "errmsg": "IP not in whitelist"}
解决: 在钉钉机器人设置中添加服务器IP到白名单。
# 系统资源监控告警
function Send-SystemAlert {
param(
[string]$Component,
[string]$CurrentValue,
[string]$Threshold,
[string]$WebhookUrl = $env:DINGTALK_WEBHOOK
)
$status = if ([double]$CurrentValue -gt [double]$Threshold) { "🚨 严重" } else { "⚠️ 警告" }
$message = @"
【openclaw】$status | $Component 异常
- 当前值: $CurrentValue
- 阈值: $Threshold
- 时间: $(Get-Date -Format "yyyy-MM-dd HH:mm:ss")
请及时处理!
"@
Send-WebhookDingTalk -WebhookUrl $WebhookUrl -Message $message -IsAtAll $true
}
# 使用
Send-SystemAlert -Component "CPU" -CurrentValue "95%" -Threshold "85%"
Send-SystemAlert -Component "内存" -CurrentValue "14.5/16 GB" -Threshold "90%"# 部署完成通知
function Send-DeployNotification {
param(
[string]$Project,
[string]$Version,
[string]$Environment,
[string]$Url
)
Send-WebhookDingTalk -WebhookUrl $env:DINGTALK_WEBHOOK `
-Type actionCard `
-Title "✅ 部署成功" `
-Text @"
项目: $Project
版本: $Version
环境: $Environment
时间: $(Get-Date -Format "yyyy-MM-dd HH:mm:ss")
"@ `
-Buttons @(
@{title="查看部署";url=$Url},
@{title="回滚";url="$Url/rollback"}
)
}
Send-DeployNotification -Project "MyApp" -Version "v1.2.3" -Environment "production" -Url "https://deploy.example.com"# ES 日志监控告警
function Send-ESAlert {
param(
[hashtable]$Analysis,
[string]$WebhookUrl = $env:DINGTALK_WEBHOOK
)
if (-not $Analysis['alert']) {
return
}
$content = @"
📊 异常总数: $($Analysis['total']) 条
## 受影响设备TOP5
$($Analysis['hostname_stats'].GetEnumerator() | ForEach-Object { "$($_.Key): $($_.Value) 条" } | Out-String)
## 异常类型TOP5
$($Analysis['brief_stats'].GetEnumerator() | ForEach-Object { "$($_.Key): $($_.Value) 条" } | Out-String)
## 最新日志
$($Analysis['recent_logs'] | ForEach-Object { "$($_.timestamp.Substring(11,8)) [$($_.hostname))] $($_.brief)`n$($_.message)`n" } | Out-String)
"@
Send-WebhookDingTalk -WebhookUrl $WebhookUrl `
-Type markdown `
-Title "[openclaw] ES异常告警" `
-Content $content `
-IsAtAll $true
}将 webhook 函数库保存为:
E:\devdir\clawd\skills\webhook-notify\webhook-functions.ps1. "E:\devdir\clawd\skills\webhook-notify\webhook-functions.ps1"如有问题或建议,请检查:
© LeoYeAI, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 3 other files in skills/webhook-notify of LeoYeAI/openclaw-master-skills.
Open the folder on GitHubat commit e5199b5
Webhook Notify next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Webhook Notify this skillLeoYeAI/openclaw-master-skills | 2.2k | — | ~3.5k | Automated safety check: Pass | MIT | |
| Channel Debug Corevercel-labs/vercel-openclaw-archived | 117 | — | ~2k | Automated safety check: Notes | MIT | |
| Frontmcp Channelsagentfront/frontmcp | 146 | — | ~3.7k | Automated safety check: Pass | Apache-2.0 | |
| Add OAuth Integrationrome-os/rome | 717 | — | ~3.6k | Automated safety check: Pass | MIT | |
| Chat SDK Botslobehub/lobehub | 83k | — | ~1.5k | Automated safety check: Pass | Custom licence | |
| Workspace APIfriday-platform/friday-studio | 104 | — | ~9.3k | Automated safety check: Notes | Custom licence |
vercel-labs/vercel-openclaw-archived
Channel webhook triage for vercel-openclaw Slack/Telegram/Discord/WhatsApp issues: prove deployment state, collect admin readiness endpoints, build evidence-first handoff before fixes.
agentfront/frontmcp
A skill your agent uses when pushing real-time notifications or events into Claude Code (or another MCP client) sessions, or building two-way chat bridges.
rome-os/rome
Add a new Rome-managed OAuth integration for a third-party service so a user can delegate access by clicking Connect, and Rome can act on the service with the delegated token (the GitHub/Slack model…
lobehub/lobehub
Builds chat bots once for Slack, Teams, Google Chat, Discord, GitHub and Linear with the Chat SDK, covering event handlers, cards, modals, streaming and state adapters.
friday-platform/friday-studio
Create, list, update, delete, and clean up workspaces via the daemon HTTP API at $FRIDAYDURL.
asheshgoplani/agent-deck
Guide for creating agent-deck watchers conversationally. An agent skill from asheshgoplani/agent-deck.
LeoYeAI/openclaw-master-skills
Manages pipelines on a DevOps quality and efficiency platform through its OpenAPI: list workspaces and templates, create, update, run and cancel pipelines, and read run records.
LeoYeAI/openclaw-master-skills
Patches OpenClaw's Feishu extension so an edited document triggers an isolated agent session that reads the doc and replies inline, turning it into a live chat space.
LeoYeAI/openclaw-master-skills
Multi-context memory management system for OpenClaw agents with group-isolated storage, global shared memory, workspace organization, and group-specific skills isolation.
LeoYeAI/openclaw-master-skills
Runs a brand's AI-search visibility work end to end: diagnosing how AI platforms represent it, repositioning it, producing AI-optimized content and monitoring ongoing mentions.
LeoYeAI/openclaw-master-skills
Installs and authenticates the gws CLI, then automates Gmail, Drive, Sheets, Calendar, Docs, Chat and Tasks with ready-made recipes, persona bundles and security audits.
LeoYeAI/openclaw-master-skills
Runs four advisor roles, a fitness coach, nutritionist, data analyst and TCM practitioner, to build a health profile and track workouts, diet and wellness over time.
Works with
Categories
通用Webhook通知工具,支持钉钉、企业微信、Slack、飞书等多种平台的webhook消息发送,以及自定义HTTP POST请求。适用于告警通知、自动化触发、系统监控等场景。. Webhook Notify is an agent skill from LeoYeAI/openclaw-master-skills.
Webhook Notify fits situations like: tasks that involve Webhooks.
Run `npx skills add LeoYeAI/openclaw-master-skills --skill webhook-notify -a claude-code`. Or copy the skill folder (skills/webhook-notify in LeoYeAI/openclaw-master-skills) into .claude/skills/webhook-notify in your project. Claude Code loads it when a task matches its description.
Run `npx skills add LeoYeAI/openclaw-master-skills --skill webhook-notify -a codex`. Or copy the skill folder (skills/webhook-notify in LeoYeAI/openclaw-master-skills) into .agents/skills/webhook-notify in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add LeoYeAI/openclaw-master-skills --skill webhook-notify -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/webhook-notify, .gemini/skills/webhook-notify, .github/skills/webhook-notify and .opencode/skills/webhook-notify in your project.
Going by SKILL.md and its folder, Webhook Notify needs credentials named WECOM_KEY. Our summary lists: A credential in YOUR_TOKEN; A credential in YOUR_KEY.
SKILL.md names 4 domains. In commands or code: oapi.dingtalk.com, qyapi.weixin.qq.com, hooks.slack.com and open.feishu.cn; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Webhook Notify is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.5k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Webhook Notify: Channel Debug Core (vercel-labs/vercel-openclaw-archived, 117 stars), Frontmcp Channels (agentfront/frontmcp, 146 stars), Add OAuth Integration (rome-os/rome, 717 stars) and Chat SDK Bots (lobehub/lobehub, 83k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
LeoYeAI (a GitHub user) maintains it in LeoYeAI/openclaw-master-skills, which has 2,158 GitHub stars. The repository holds 1,215 skills in this directory. The repository was last updated on July 20, 2026.
Source: LeoYeAI/openclaw-master-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.