Skill: wanwan2qq/mood-cli-release (version 1.0.0)

--- name: mood-cli description: 情绪分析 CLI 技能。当用户说"mood"、"心情"、"情绪"、"分析情绪"等关键词时触发，调用 mood CLI 工具分析文本情绪，返回天气图标 + 治愈文案。 metadata: { "openclaw": { "emoji": "🌤️", "requires": { "bins": ["mood"], "env": ["DEEPSEEK_API_KEY"] } }, } --- # Mood CLI Skill ## 技能说明 调用 mood CLI 工具分析文本情绪，返回天气图标 + 治愈文案 --- ## 触发条件 ### 方式 1：密语触发（大小写不敏感）⭐ **基本密语**： - `mood` / `Mood` / `MOOD` - 分析情绪 - `心情` / `心情分析` - 分析情绪 - `情绪` / `情绪分析` - 分析情绪 - `今天心情` - 分析今天的情绪 **扩展密语**： - `心情怎么样` - 分析情绪 - `心情好吗` - 分析情绪 - `帮我看看情绪` - 分析情绪 - `看看我的心情` - 分析情绪 - `记录心情` - 记录情绪 - `今天天气` - 情绪天气 **英文密语**： - `analyze mood` - 分析情绪 - `my mood` - 我的情绪 - `how am I feeling` - 我的心情 ### 方式 2：单独输入 `mood`（显示帮助） 当用户只输入 `mood` 或 `心情` 时，显示使用帮助 ### 方式 3：关键词触发 当消息包含以下关键词时也激活： - "分析情绪" - "心情怎么样" - "情绪分析" - "今天心情" - "心情好/不好" - "帮我看看这句话的情绪" --- ## 功能列表 ### 1. 情绪分析（基础功能） **命令**：`mood "文本"` **密语**：`mood 今天心情好` **输出**：天气图标 + 治愈文案 + 情绪类型 ### 2. 查看帮助 **命令**：`mood --help` **密语**：`mood 帮助` / `mood help` **输出**：使用说明 ### 3. 查看统计（待实现） **命令**：`mood --stats` **密语**：`心情统计` / `我的情绪统计` **输出**：情绪分布统计 ### 4. 查看历史（待实现） **命令**：`mood --history` **密语**：`心情历史` / `我的情绪记录` **输出**：历史记录列表 ### 5. 导出报告（待实现） **命令**：`mood --report weekly` **密语**：`心情周报` / `情绪报告` **输出**：周期性情绪报告 --- ## 使用示例 ### 基础情绪分析 ``` mood 今天心情超好的！ → ☀️ 今天阳光灿烂，心情美美哒~ ``` ### 大小写不敏感 ``` Mood 今天完成了 CLI 工具 MOOD 好开心 mOoD 真有趣 → 都能正常识别 ``` ### 查看帮助 ``` mood → 显示使用帮助 ``` ### 中文密语 ``` 心情 今天工作很顺利 → ☀️ 今天阳光灿烂，心情美美哒~ 情绪 代码写完了 → ☀️ 今天阳光灿烂，心情美美哒~ ``` ### 英文密语 ``` analyze mood I finished the project → ☀️ 今天阳光灿烂，心情美美哒~ my mood today is great → ☀️ 今天阳光灿烂，心情美美哒~ ``` --- ## 情绪 - 天气映射 | 情绪 | 天气图标 | 治愈文案 | |------|---------|---------| | happy | ☀️ | 今天阳光灿烂，心情美美哒~ | | calm | ⛅ | 微风不燥，内心平静 | | confused | 🌫️ | 有点看不清方向，需要一点光 | | sad | 🌧️ | 心里在下雨，想找个抱抱 | | angry | ⛈️ | 情绪有点爆炸，需要冷静一下 | | hopeful | 🌈 | 雨过天晴，看见彩虹啦 | --- ## 帮助文本 当用户只输入 `mood` 时显示： ``` 🌤️ Mood CLI Skill - 情绪分析助手 【基本用法】 mood 今天心情好 分析情绪 Mood 好难过 大小写都可以 心情 工作完成了 中文密语 analyze mood great 英文密语 【高级功能】 mood 帮助 显示这个帮助 心情统计 查看情绪统计（开发中） 心情历史 查看历史记录（开发中） 心情周报 生成周报（开发中） 【示例】 mood 今天完成了第一个 agent 闭环工具 → ☀️ 今天阳光灿烂，心情美美哒~ 【提示】 - 密语大小写不敏感 - 支持中英文混合 - 自动识别情绪关键词 ``` --- ## 待开发功能 ### 1. 情绪统计 (--stats) - 记录每次分析结果 - 统计情绪分布 - 生成图表（可选） ### 2. 历史记录 (--history) - 保存分析历史 - 支持查询特定日期 - 支持导出 ### 3. 情绪报告 (--report) - 日报/周报/月报 - 情绪趋势分析 - 建议和改进 ### 4. 批量分析 (--batch) - 分析多段文字 - 文件导入分析 - 批量导出结果 --- ## 配置说明 ### API 配置 - 文件：`~/.mood-weather-cli.env` - 内容：`DEEPSEEK_API_KEY=你的密钥` ### 用户识别（自动） **优先级**： 1. 环境变量 `MOOD_USER_ID` (手动指定) 2. 聊天渠道用户 ID (自动识别) - 钉钉：`DINGTALK_USER_ID` - 微信：`WECHAT_USER_ID` - Telegram：`TELEGRAM_USER_ID` - Discord：`DISCORD_USER_ID` - Slack：`SLACK_USER_ID` 3. 系统用户名 (降级逻辑) **示例**： - 钉钉用户：`dingtalk:0124046821484330` - 微信用户：`wechat:wx123456` - 手动指定：`wanwan` ### 重试机制 - 自动重试 3 次 - 指数退避（1s → 2s → 4s） - 失败后降级返回 ### 输出格式 - 天气图标 + 治愈文案 - 情绪类型（英文） - 置信度（百分比） --- ## 🏥 运行时健康检查 ### 加载时门控（由 OpenClaw 自动执行） OpenClaw 加载技能时会自动检查： - ✅ `mood` CLI 命令是否在 PATH 中 - ✅ `DEEPSEEK_API_KEY` 是否有值 **如果门控检查失败**：技能会被禁用，用户看到"技能不可用"提示。 ### 运行时健康检查（技能内部逻辑） 每次调用前/调用时检查： | 检查项 | 检查方式 | 失败处理 | |--------|---------|---------| | CLI 命令可执行 | `which mood` + 试运行 | 返回"CLI 工具未安装" | | API 密钥有效 | 调用 DeepSeek API 测试 | 返回"API 密钥无效或过期" | | 网络连接 | API 请求超时检测 | 返回"网络异常，请检查连接" | | 服务可用性 | HTTP 状态码检查 | 返回"DeepSeek 服务暂时不可用" | ### 健康检查命令（可选） 用户可以主动运行健康检查： ```bash mood --healthcheck ``` 输出示例： ``` 🌤️ Mood CLI 健康检查 ✅ CLI 工具：/opt/homebrew/bin/mood ✅ API 密钥：已配置 (sk-xxxx...xxxx) ✅ 网络连接：正常 ✅ DeepSeek 服务：在线 所有检查通过，可以正常使用！ ``` --- ## ⚠️ 错误处理与用户提示 ### 错误类型与处理 | 错误场景 | 用户提示 | 修复指引 | |---------|---------|---------| | 未配置 API 密钥 | ❌ 未配置 DeepSeek API 密钥 | `export DEEPSEEK_API_KEY=sk-xxx` 或编辑 `~/.mood-weather-cli.env` | | API 密钥无效 | ❌ API 密钥无效或已过期 | 检查密钥是否正确，或前往 DeepSeek 控制台重新生成 | | CLI 工具未找到 | ❌ 未找到 mood 命令 | 运行安装脚本或检查 PATH 配置 | | 网络超时 | ❌ 网络超时，请检查连接 | 检查网络或稍后重试 | | 服务不可用 | ❌ DeepSeek 服务暂时不可用 | 稍后重试或查看服务状态页 | | 文本为空 | ❌ 请输入要分析的文字 | `mood 今天心情好` | | 配额用尽 | ❌ API 配额已用尽 | 等待配额重置或升级账户 | ### 降级策略 当 DeepSeek API 不可用时，可以降级到： 1. 本地规则匹配（关键词 → 情绪） 2. 返回默认情绪（calm） 3. 明确告知用户"使用降级模式，结果可能不够准确" --- ## 📝 最佳实践 1. **技能开发时**：始终定义 `metadata.openclaw.requires` 门控 2. **调用技能前**：检查技能状态（`openclaw skills list` 查看是否 ready） 3. **失败时**：给出清晰的修复指引，不要只说"失败了" 4. **敏感配置**：使用环境变量或配置文件，不要硬编码 5. **日志记录**：记录每次调用的结果，方便排查问题


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)