Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

ecommerce-voice-cs

电商 AI 语音技能。用于在 OpenClaw 或类似技能宿主中,按不同触发词独立启用两套互不干扰的能力:(1) 售后客服模式,将售后文本咨询按预设退款规则生成客服回复并输出 TTS 音频;(2) 电话推销模式,按产品名称、功能、优势和优惠范围生成推销话术并输出 TTS 音频。适用于需要模式切换、配置确认、音色选...

MIT-0 · Free to use, modify, and redistribute. No attribution required.
0 · 19 · 0 current installs · 0 all-time installs
MIT-0
Security Scan
VirusTotalVirusTotal
Suspicious
View report →
OpenClawOpenClaw
Suspicious
high confidence
Purpose & Capability
Name/description match the code: the package implements after-sales and sales text generation plus SenseAudio TTS. Required capabilities (API key, voice_id, output path) are consistent with the stated purpose. However, the repository ships .session_state JSON files and sample scripts that contain an apparent SenseAudio API key and paths — bundling real credentials in the package is not required for the skill to function and is disproportionate.
Instruction Scope
SKILL.md instructs collecting configuration, confirming entry, synthesizing text then TTS, and saving audio locally — and the code implements exactly that. The runtime reads/writes per-session JSON in .session_state and writes audio files to the configured audio_output_path. The instructions do not direct the agent to read unrelated system files or exfiltrate data to unexpected endpoints.
Install Mechanism
No install spec or external downloads are present; this is an instruction-plus-source bundle. All code is contained in the package and no remote arbitrary install/extract steps are declared. Risk from install mechanism is low.
!
Credentials
The skill legitimately needs a SenseAudio API key (passed in payload or via SENSEAUDIO_API_KEY). However, multiple included files (.session_state JSON files and temporary scripts) contain what appears to be a literal API key (strings starting with 'sk-...'). Packaging such credentials with the skill is unnecessary and dangerous. The number of env/credential references is small and appropriate for the purpose, but the presence of hardcoded secrets is a clear red flag.
Persistence & Privilege
The skill persists per-session JSON under .session_state and writes audio files to a configured directory — behaviors consistent with multi-turn session handling. It does not request 'always: true' or system-wide privileges nor attempt to modify other skills. Note: because it persists state (and example state contains API keys), secrets can be stored on disk and leaked if the .session_state files are not cleaned or if the package is distributed with them.
Scan Findings in Context
[embedded_api_key_literal_in_repo_files] unexpected: Files .session_state/webchat-sales-kefu-live.json and tmp_*.py include a string that looks like a SenseAudio API key (sk-...), which is not required to ship with the skill and poses a credential-leak risk.
What to consider before installing
This skill appears to implement exactly what it describes (after-sales and sales text-to-speech using SenseAudio). However: 1) the package contains .session_state and tmp scripts with an embedded API key — do not reuse that key; treat it as leaked and rotate it if you are the key owner. 2) Remove any .session_state/*.json and tmp scripts before installing or push to production, and audit the repository for hardcoded secrets. 3) Run the skill in an isolated environment and provide your own SenseAudio API key via environment or payload. 4) Confirm the audio_output_path is a safe writable directory (the skill writes audio files and session JSON to disk). 5) If you plan to use the skill for outbound calling/sales, consider legal and ethical/telemarketing rules in your jurisdiction. If you want to proceed, request the maintainer to remove embedded secrets and tmp/demo files or supply a clean release without credentials.

Like a lobster shell, security has layers — review code before you run it.

Current versionv1.0.0
Download zip
latestvk97erg3n8y4jbvc242jrjs2g4n831546

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

SKILL.md

Ecommerce Voice CS

实现一个最小可集成的电商售后语音客服 skill。

Trigger

识别触发词:

  • 我需要你现在当一个客服机器人
  • 我需要你现在当一个推销员

这两个模式必须完全独立运行,不能共享会话状态、配置或业务逻辑。用户触发哪个模式,就只进入哪个模式。

售后模式

收到售后触发词后,不要立刻进入客服模式。先收集并确认这些配置:

  • api_key
  • refund_policy
  • unboxing_allowed
  • shipping_fee_by
  • audio_output_path
  • voice_id(可选,默认 child_0001_b

配置收集完整后,先给用户一份确认摘要。只有用户明确回复“确认进入”,才正式进入售后模式。

进入售后模式后,每次处理客户消息时都必须:

  1. 先生成文本客服回复
  2. 再生成 TTS 音频文件
  3. 在文本结尾附上“TTS 已生成成功,文件已保存到:<path>

电话推销模式

收到推销触发词后,不要立刻进入推销模式。先收集并确认这些配置:

  • api_key
  • audio_output_path
  • product_name
  • product_features
  • product_advantages
  • discount_range
  • voice_id(可选,默认 child_0001_b

配置收集完整后,先给用户一份确认摘要。只有用户明确回复“开始”或确认进入,才正式进入电话推销模式。

进入电话推销模式后,每次处理客户消息时都必须:

  1. 先生成电话推销文本话术
  2. 再生成 TTS 音频文件
  3. 在文本结尾附上“TTS 已生成成功,文件已保存到:<path>

Runtime Inputs

调用方应提供这些字段:

  • session_id: 会话标识。多轮配置和客服模式都依赖同一个 session_id
  • message: 用户输入文本
  • api_key: SenseAudio API Key,或通过环境变量 SENSEAUDIO_API_KEY 提供
  • voice_id: 已确认可用的 SenseAudio voice_id
  • refund_policy: 退款政策文本
  • unboxing_allowed: 是否支持拆封退货
  • shipping_fee_by: 运费承担方
  • audio_output_path: 音频输出目录
  • product_name: 电话推销产品名称
  • product_features: 电话推销产品功能
  • product_advantages: 电话推销产品优势
  • discount_range: 电话推销可优惠范围

Confirmed Voice IDs

只使用这 3 个已确认可用的 voice_id:

  • child_0001_b
  • male_0004_a
  • male_0018_a

如果调用方未指定 voice_id,默认使用 child_0001_b

Files

  • helper.py: 对外调用入口,包含售后模式和电话推销模式两套独立状态机
  • src/ecommerce_voice_cs/: 底层实现,包括状态管理、规则引擎、SenseAudio TTS 适配层

Notes

  • 当前仅接入公开可验证的 SenseAudio TTS 接口
  • 音色克隆上传接口未公开时,不实现 upload_sample 真正上传;直接使用现有 voice_id
  • TTS 接口文档:https://senseaudio.cn/docs/voice_api

Files

14 total
Select a file
Select a file to preview.

Comments

Loading comments…