SKILL.md新增固化操作节: 二维码请求即到即执行send-qr.sh(跟随来源渠道), 禁止查状态/思考/过程消息

This commit is contained in:
hermes
2026-09-01 02:44:57 +00:00
parent d432ef7973
commit 492852f9f7
2 changed files with 49 additions and 0 deletions
+11
View File
@@ -22,6 +22,17 @@ metadata:
- "打开智联"、"打开BOSS直聘"、"去XX平台" - "打开智联"、"打开BOSS直聘"、"去XX平台"
- 任何涉及招聘平台浏览、筛选、打招呼的任务 - 任何涉及招聘平台浏览、筛选、打招呼的任务
## ⚡ 固化操作(收到即执行,禁止思考/分析/查状态,10秒内完成)
**群里或私聊 @机器人 要登录二维码**("发下hr1的登录码"、"hr2二维码"等):
```bash
bash /opt/data/skills/recruitment-resume-screener/scripts/send-qr.sh <hr1|hr2|both> <group|dm>
```
- 目标跟随消息来源:群里来的用 `group`,私聊来的用 `dm`
- 直接执行脚本,脚本是自包含的(自己刷新登录页抓新码+发送)
- **不要**:先查CDP、先看登录态、发过程说明文字、发"正在处理"——脚本输出即结果
- **最终回复只有一行**:如 "✅ hr1 二维码已发群"(脚本 stdout 有没有成功),二维码本身由脚本直接发送,不经对话轮次
## 架构总览 ## 架构总览
``` ```
+38
View File
@@ -0,0 +1,38 @@
#!/bin/bash
# send-qr.sh — 发送指定账号的登录二维码(固定操作,2026-08-31)
# 用法:bash send-qr.sh <hr1|hr2|both> [dm|group]
# hr1/hr2 指定账号;both=两个都发
# dm 发到用户私聊(默认);group=发到数字HR群
# 说明:强制刷新登录页拿新码(保证有效),发送失败自动降级纯文字。
# 这是固化脚本——AI 被要求发二维码时直接执行本命令,不做多余分析。
set -u
SCRIPTS=/opt/data/skills/recruitment-resume-screener/scripts
HERMES=/opt/hermes/.venv/bin/hermes
DM='oc_d09c77b62ca5f90f6699830fbc695c44'
GROUP='oc_7ef4980f25ec2a80bb013d5dd79b9864'
ACCTS="${1:?用法: send-qr.sh <hr1|hr2|both> [dm|group]}"
TARGET="${2:-dm}"
[ "$TARGET" = "group" ] && DEST=$GROUP || DEST=$DM
[ "$ACCTS" = "both" ] && ACCTS="hr1 hr2"
for ACCT in $ACCTS; do
case $ACCT in
hr1) PORT=9223; LABEL="Chrome·合塑账号";;
hr2) PORT=9225; LABEL="Edge·派卡账号";;
*) echo "未知账号: $ACCT(只支持 hr1/hr2/both)"; exit 1;;
esac
QR=/tmp/zhaopin-login-qr-$ACCT-request.png
echo "[$ACCT] 抓取二维码(刷新登录页拿新码)..."
if node "$SCRIPTS/login-qrcode.js" $PORT $QR 2>&1 | grep -q SAVED && [ -s "$QR" ]; then
printf "🚨 当前%s(%s)账号登录二维码(实时抓取):\n扫码可重新登录" "$ACCT" "$LABEL" > /tmp/qr-req-$ACCT.txt
echo "MEDIA:$QR" >> /tmp/qr-req-$ACCT.txt
$HERMES send -t "feishu:$DEST" -f /tmp/qr-req-$ACCT.txt >/dev/null 2>&1 \
&& echo "[$ACCT] ✅ 已发送二维码 → $([ "$DEST" = "$GROUP" ] && echo 群 || echo 私聊)" \
|| echo "[$ACCT] ❌ 发送失败"
else
echo "[$ACCT] ❌ 二维码抓取失败(CDP不通或页面异常)"
fi
done