OpenClaw Discord 表情符号技能开发记 - 用户批准工作流程实现
在 OpenClaw AI 代理中开发通过 Discord 表情符号反应来接收用户决策的技能,并将该技能上传到 GitHub 的经验。同时分享了 ClawdHub 部署过程中遇到的问题和解决方案。
#OpenClaw#Discord#AI Agent#Skill Development#ClawdHub
🌐 已翻译本文由 AI 从韩语机器翻译,部分表达可能与原文有所不同。
阅读原文(韩语)引言
使用 AI 代理时,总会遇到“这个真的可以执行吗?”的瞬间。尤其是在推特发帖、邮件发送、文件删除等不可逆操作中更是如此。
因此,我创建了一个通过 Discord 表情符号反应来接收用户批准的技能。
📸 Discord 中带有 1️⃣ 2️⃣ 3️⃣ 🔥 ❌ 等表情符号的消息示例
问题定义
我正在使用 OpenClaw 创建一个名为“AlphaHunter”的加密货币市场自动推特机器人。AI 收集新闻并生成推特候选内容做得很好,但问题是未经批准不能直接发布。
现有方式的局限:
- 使用 ✅/❌ 表情符号在 Discord 中会被截断,无法显示
- 难以从多个候选内容中进行选择
- 发生未经批准就发布的情况
解决方案:数字表情符号批准系统
设计原则

实现代码 (approval_workflow.py)
class ApprovalManager:
"""승인 워크플로우 관리자"""
EMOJI_MAP = {
'1️⃣': 0,
'2️⃣': 1,
'3️⃣': 2,
'🔥': 'all',
'❌': 'reject'
}
def __init__(self):
self.pending = {} # message_id -> candidates
self.approved = [] # 승인된 후보 큐
def submit_candidates(self, candidates: list, message_id: str):
"""후보 제출 및 이모지 달기"""
self.pending[message_id] = {
'candidates': candidates,
'submitted_at': datetime.now(),
'expires_at': datetime.now() + timedelta(hours=24)
}
return self.EMOJI_MAP.keys() # 달아야 할 이모지 목록
def process_reaction(self, message_id: str, emoji: str):
"""이모지 반응 처리"""
if message_id not in self.pending:
return None
action = self.EMOJI_MAP.get(emoji)
candidates = self.pending[message_id]['candidates']
if action == 'all':
self.approved.extend(candidates)
elif action == 'reject':
del self.pending[message_id]
elif isinstance(action, int) and action < len(candidates):
self.approved.append(candidates[action])
return self.approvedDiscord 联动
使用 OpenClaw 的 message 工具添加表情符号:
# 후보 전송 후 이모지 달기
message_id = send_candidates_to_discord(candidates)
for emoji in ['1️⃣', '2️⃣', '3️⃣', '🔥', '❌']:
message(
action='react',
channel='discord',
messageId=message_id,
emoji=emoji
)GitHub 上传
技能开发完成后,需要上传到 GitHub。OpenClaw 技能遵循以下结构:
skills/
└── discord-emoji-approval/
├── SKILL.md # 스킬 문서
├── scripts/
│ └── approval_workflow.py
└── config.json # 설정SKILL.md 编写
# Discord Emoji Approval Skill
디스코드 이모지 반응으로 사용자 승인을 받는 스킬.
## 사용법
1. 후보를 디스코드로 전송
2. 이모지 5개 달기 (1️⃣ 2️⃣ 3️⃣ 🔥 ❌)
3. 사용자가 이모지 클릭
4. 승인된 후보만 실행
## 의존성
- OpenClaw message 도구 (react 액션)Git 提交 & 推送
cd ~/.openclaw/workspace/skills/discord-emoji-approval
git add .
git commit -m "feat: 디스코드 이모지 승인 스킬 추가"
git push origin mainClawdHub 部署尝试(失败)
ClawdHub 是 OpenClaw 技能市场。您可以在这里分享您创建的技能。
部署尝试
clawdhub publish ./skills/discord-emoji-approval发生的错误
Error: Unable to connect to clawdhub.com
Status: 503 Service Unavailable服务暂时不稳定。稍后再试。
替代方案:从 GitHub 直接安装
如果 ClawdHub 不可用,您可以直接使用 GitHub URL 进行安装:
# 다른 사람이 설치할 때
git clone https://github.com/arang/openclaw-skills.git
cp -r openclaw-skills/discord-emoji-approval ~/.openclaw/workspace/skills/教训
1. 用户批准是必需的
即使 AI 再聪明,不可逆操作也需要人工确认。
2. 表情符号是直观的
与文本“选择 1”相比,1️⃣ 表情符号更快。
3. 需要排队系统
如果同时执行多个选择,会遇到速率限制。顺序执行更安全。
4. 离线回退
为了应对 ClawdHub 等外部服务不可用的情况,请将 GitHub 直接安装方法也记录在文档中。
结尾
得益于这项技能,AlphaHunter 机器人从“AI 自动发推的危险机器人”变成了“用户批准后才发推的安全机器人”。
接下来,我将分享利用此批准系统创建自我发展的 AI 代理的经验。
相关链接:
评论