magic-8-ball

🔮 复古魔法八球随机占卜助手

由 clawdbot 社区开发的经典 Magic 8-Ball 占卜工具,提供20种经典随机回答,为日常决策增添趣味娱乐体验,但需注意其依赖安全等级。

收藏
9.8k
安装
2k
版本
v1.0.0
CLS 安全性认证2026-05-19
点击查看完整报告 >

使用说明

Magic 8-Ball 是一款模拟经典占卜玩具的娱乐型 Agent Skill,旨在为用户提供轻量级的随机决策体验。用户只需提出是/否类型的问题(如"我应该接受这份工作吗?"),技能便会通过执行预设脚本从20个经典回答(包括"It is certain"、"Ask again later"等)中随机抽取一条,以 🔮 回答 🔮 的简洁格式返回结果,同时将问题和 UTC 时间戳记录至本地 JSON 日志文件。

该技能的核心用法相当直观:首次运行时会自动执行 setup.sh 进行环境初始化,随后调用 Python 脚本处理用户输入并生成随机响应。整个过程强调"零解释"的沉浸式体验,用户只会看到神秘的占卜结果,而不会暴露任何后端技术细节。这种设计完美复刻了实体 Magic 8-Ball 玩具的怀旧交互感。

显著优点方面,该技能具备轻量级架构,核心脚本仅依赖 Python 标准库(sys、json、random 等),无需复杂的第三方 Python 依赖;数据隐私保护良好,所有日志均存储在本地固定路径(/root/.openclaw/workspace/magic8ball-last.json),无网络传输敏感信息的风险;同时支持幂等性运行,可安全地多次调用而不会产生副作用。

然而,该技能存在明显的潜在缺点和安全隐患。首先,setup.sh 脚本会动态安装 npm 全局包(clawhub)并强制安装外部 skill(secure-sync),这些依赖来源未经验证,存在供应链攻击风险;其次,脚本会自动启动后台 watcher 进程(nohup)而无需用户确认,可能导致系统资源被长期占用;此外,SKILL.md 文档未明确列出所需权限(文件写入、进程执行、网络访问),透明度不足。

适合的目标群体主要包括:寻求轻松娱乐体验的个人用户、需要随机决策辅助的开发者测试场景、以及对复古占卜文化感兴趣的爱好者。但强烈不建议在生产环境、处理敏感数据的场景或需要高安全合规性的企业环境中使用该技能。

使用该技能可能存在的常规风险包括:setup.sh 动态加载的 secure-sync 代码可能包含未审查的安全漏洞;npm 全局安装可能引发权限冲突或版本管理问题;后台进程缺乏明确的终止机制和监控手段;尽管核心 Python 脚本安全,但整个技能的安全评级仅为 C 级,来源可信度为 T3(社区/个人来源),用户应在隔离环境(如容器或虚拟机)中运行,并手动审查依赖安全性。

安全解读

核心用法

Magic 8-Ball 是一款模拟经典桌面占卜玩具的 Skill,用户以是非问句提问后,系统从20种经典回答中随机抽取一种返回,并以 🔮 符号包裹呈现。工作流程包含两步:先执行 setup.sh 初始化环境,再通过 Python 脚本处理用户问题并生成随机回答。

显著优点

  • 即问即答体验:用户提问后即刻获得预言式回答,仪式感与趣味性兼备
  • 经典回答池:完整复刻实体 8-Ball 的20种传统预言,包括 "It is certain"、"Ask again later" 等
  • 简洁输出:仅返回回答本身,无冗余解释,符合实体玩具的交互直觉

潜在缺点与局限性

  • 安全风险突出:setup.sh 存在动态代码下载(从 npm 全局安装 clawhub)、嵌套 Skill 安装(secure-sync)、后台进程启动等多重风险
  • 数据来源不明:secure-sync 等嵌套依赖来源未知,增加供应链攻击面
  • 日志记录争议:用户问题被记录至本地 JSON 文件,但缺乏明确同意机制,存在 GDPR 合规隐患
  • 硬编码路径:使用 /root/.openclaw/workspace/ 等绝对路径,环境适应性差

适合人群

  • 寻求轻松娱乐体验的终端用户
  • 对占卜玩具文化有兴趣的怀旧用户
  • 不适合对数据隐私敏感或安全合规要求严格的场景

常规风险

  • 供应链攻击:动态下载的 npm 包和 clawhub Skill 可能被投毒
  • 权限滥用:后台进程可能持续占用资源或执行未授权操作
  • 数据泄露:日志文件存储位置固定,可能被其他进程读取

> 建议:在隔离环境中运行,禁用 setup.sh 的动态安装功能,或改用纯本地实现的替代方案。

magic-8-ball 内容

scripts文件夹
手动下载zip · 2.2 kB
magic8ball.pytext/plain
请选择文件