The English Tutor
英语口语陪练助手。触发词:「练习英语」「我要说英语」「英语陪练」。功能:上传生词表 → 每日定时情景对话 → 语音输入即时纠错 → 飞书语音推送 → 自动艾宾浩斯复习。
Rank
62
Safety
84
Downloads
969
Updated
Oct 12, 2026
Version
3.0.4
Source
CLAWHUB
About
What it does, and when to use it.
Capability contract not published. No trust telemetry is available yet. 969 downloads reported by the source. Last updated 10/12/2026.
Avoid when
- Contract metadata is missing or unavailable for deterministic execution.
Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing
Public facts
Every fact links back to the source it came from.
- Vendor
- Clawhubvendor · observed Oct 12, 2026
- Protocol compatibility
- OpenClawcompatibility · observed Oct 12, 2026
- Adoption signal
- 969 downloadsadoption · observed Oct 12, 2026
- Latest release
- 3.0.4release · observed May 10, 2026
- Handshake status
- UNKNOWNsecurity
What changed
Newest first. Only changes that point at a source are listed.
Release 3.0.4release
Security hardening: remove hardcoded API keys, add null guards, cross-platform paths, stop-word filtering, logging module, all-optional config check
Observed May 10, 2026 · source
Install and run
Setup complexity: low.
clawhub skill install s17761jw9y1e7ynw7f9xfz3a7585k0qb:the-english-tutor- Install using `clawhub skill install s17761jw9y1e7ynw7f9xfz3a7585k0qb:the-english-tutor` in an isolated environment before connecting it to live workloads.
- No published capability contract is available yet, so validate auth and request/response behavior manually.
- Review the upstream CLAWHUB listing at https://clawhub.ai/pandaltsgo/the-english-tutor before using production credentials.
Contract: missing
curl -s "https://www.xpersona.co/api/v1/agents/clawhub-pandaltsgo-the-english-tutor/snapshot"
Run-check
$0.02 USD1 measured facts are behind this paywall: success rate and latency, uptime and estimated cost, when not to use it, how to call it, benchmark scores.
Agents pay $0.02 in USDC. A card payment is $0.50, the smallest a card allows.
Documentation
CLAWHUB
110,628 characters of source documentation, loaded on request.
Extracted files
5 files captured from the source.
SKILL.md
# 英语助教 · English Tutor Skill
> **模块化基座 Skill** — 功能按需配置,所有环境变量均为**选填**。
> 有配置就启用对应功能,无配置则跳过。完整功能需要飞书 + MiniMax + 多维表格。
---
## 功能模块(按需启用)
| 模块 | 环境变量 | 说明 |
|------|---------|------|
| 飞书语音推送 | `FEISHU_APP_ID`, `FEISHU_APP_SECRET`, `FEISHU_USER_OPEN_ID` | 发 TTS 语音到飞书 |
| MiniMax TTS | `MINIMAX_API_KEY` | 云端语音合成(主方案) |
| Piper 本地 TTS | `PIPER_BIN`, `PIPER_MODEL` | 完全离线的语音兜底 |
| SenseVoice 本地 ASR | `SENSE_VOICE_MODEL_DIR` | 完全离线的语音识别 |
| 多维表格记忆 | `BITABLE_APP_TOKEN`, `BITABLE_WORDS_TABLE_ID`, `BITABLE_CHAT_TABLE_ID` | 单词记录 + 艾宾浩斯 |
| 定时推送 | cron jobs | 08:00 / 12:00 / 20:00(可单独开启) |
**原则**:填了变量 → 启用该模块;没填 → 该模块静默跳过,不报错。
---
## 文件结构
```
english-tutor/
├── SKILL.md
├── metadata.json
├── _meta.json
├── agent/ ← 核心 Node.js 运行时
│ ├── config.js ← 配置(全部选填,env 注入)
│ ├── minimax.js ← MiniMax TTS + Chat API
│ ├── memory.js ← 多维表格记忆(可选)
│ └── agent.js ← 主流程入口
├── scripts/ ← Python 辅助脚本
│ ├── check_env.py ← 环境检测
│ ├── config_manager.py ← 配置管理
│ ├── download_model.py ← SenseVoice 模型下载
│ ├── feishu_voice.py ← 飞书语音发送(TTS→Opus→上传→发送)
│ ├── transcribe.py ← ASR 转录(本地/云端)
│ └── wordlist_parser.py ← 单词表解析器
├── references/
│ └── config-schema.md
└── assets/
└── wordlist_example.csv
```
---
## 环境变量(全部选填)
### 飞书模块
| 变量 | 默认值 | 说明 |
|------|--------|------|
| `FEISHU_APP_ID` | `""` | 飞书应用 App ID(填了才发飞书语音) |
| `FEISHU_APP_SECRET` | `""` | 飞书应用 Secret |
| `FEISHU_USER_OPEN_ID` | `""` | 接收语音的飞书用户 Open ID |
### TTS 模块
| 变量 | 默认值 | 说明 |
|------|--------|------|
| `MINIMAX_API_KEY` | `""` | MiniMax API Key(不填则跳过云端 TTS) |
| `MINIMAX_TTS_MODEL` | `speech-2.8-hd` | TTS 模型 |
| `MINIMAX_TTS_SPEED` | `1.05` | 语速 |
| `MINIMAX_TTS_VOICE_ID` | `male-qn-qingse` | 音色 ID |
| `PIPER_BIN` | `""` | Piper 主程序路径(不填则跳过本地 TTS) |
| `PIPER_MODEL` | `""` | Piper ONNX 模型路径 |
| `TTS_PROVIDER` | `minimax` | 优先方案:`minimax` / `piper` |
### ASR 模块
| 变量 | 默认值 | 说明 |
|------|--------|------|
| `SENSE_VOICE_MODEL_DIR` | `""` | SenseVoice 模型目录(不填则跳过本地 ASR) |
### 多维表格模块
| 变量 | 默认值 | 说明 |
|------|--------|------|
| `BITABLE_APP_TOKEN` | `""` | App Token(不填则无艾宾浩斯记忆) |
| `BITABLE_WORDS_TABLE_ID` | `""` | words 表 ID |
| `BITABLE_CHAT_TABLE_ID` | `""` | chat_log 表 ID |
### 每日练习配置
| 变量 | 默认值 | 说明 |
|------|--------|------|
| `DAILY_WORD_MAX` | `15` | 每日新词上限 |
---
## 凭据声明(metadata)
本 skill 为 **Credential-Using Skill**,但**所有凭据均为选填**:
```json
{
"credential_using": true,
"required_credentials": [],
"optional_credentials": [
{ "name": "FEISHU_APP_ID", "description": "飞书语音推送" },
{ "name": "FEISHU_APP_SECRET", "description": "飞书语音推送" },
{ "name": "FEISHU_USER_OPEN_ID","description": "飞书语音推送" },
{ "name": "MINIMAX_API_KEY", "description": "云端 TTS + LLM 对话" },
{ "name": "BITABLE_APP_TOKEN", "description": "艾宾浩斯记忆(可选)" },
{ "name": "BITABLE_WORDS_TABLE_ID", "description": "单词记录表" },
{ "name": "BITABLE_CHAT_TABLE_ID", _meta.json
{
"ownerId": "kn77xweern9gx42a72z2rffk6185jmxm",
"slug": "the-english-tutor",
"version": "3.0.4",
"publishedAt": 1778426033498
}references/config-schema.md
# English Tutor · 完整配置参考
## 配置存储
用户配置统一保存在 `~/.openclaw/english-tutor/config.json`,由 `scripts/config_manager.py` 管理。
**首次由陪练助手通过对话引导创建,无需手动编辑。**
---
## config.json 字段说明
### 基础配置
| 字段 | 必填 | 默认值 | 说明 |
|------|------|--------|------|
| `setup_complete` | ✅ | `false` | 首次设置是否完成 |
| `word_list_path` | ✅ | `""` | 单词表 JSON 文件路径 |
| `daily_words` | ✅ | `5` | 每日练习单词数量(建议 5-15)|
| `schedule_times` | ✅ | `["08:00"]` | 每日推送时间(上海时区)|
### LLM 模型配置 🤖
| 字段 | 必填 | 默认值 | 说明 |
|------|------|--------|------|
| `llm_provider` | ✅ | `"openclaw"` | 模型提供商:`openclaw` / `minimax` / `openai` |
| `llm_model` | 否 | `""` | 指定模型 ID(留空用默认)|
> 选择 `openclaw` 时使用系统默认 LLM,无需额外配置。
### 飞书语音配置 📢
| 字段 | 必填 | 默认值 | 说明 |
|------|------|--------|------|
| `feishu_app_id` | ✅ | `""` | 飞书应用 App ID |
| `feishu_app_secret` | ✅ | `""` | 飞书应用 App Secret |
| `feishu_bot_token` | 否 | `""` | 飞书 Bot Token(可选)|
| `feishu_user_open_id` | ✅ | `""` | 接收消息的用户 Open ID |
### TTS 语音合成 🔊
| 字段 | 必填 | 默认值 | 说明 |
|------|------|--------|------|
| `tts_provider` | 否 | `"minimax"` | TTS 方案:`minimax` / `piper` / `espeak` |
| `minimax_api_key` | minimax时 | `""` | MiniMax API Key |
> MiniMax TTS 有 API Key 时推荐音色:`male-qn-qingse`(男声)、`female-tianmei`(女声);无 Key 时静默跳过,可配 Piper 本地兜底
### 多维表格(可选)
| 字段 | 必填 | 默认值 | 说明 |
|------|------|--------|------|
| `bitable_app_token` | 否 | `""` | 飞书多维表格 App Token |
| `bitable_words_table_id` | 否 | `""` | words 表 ID |
| `bitable_chat_table_id` | 否 | `""` | chat_log 表 ID |
### Piper 本地 TTS(可选)
| 字段 | 必填 | 说明 |
|------|------|------|
| `piper_bin` | piper时 | piper 二进制路径 |
| `piper_model` | piper时 | .onnx 模型文件路径 |
---
## 飞书 audio 消息发送流程
每日练习第一步,通过 `scripts/feishu_voice.py` 实现:
```
1. TTS 合成 mp3
- minimax: POST /v1/t2a_v2 → hex audio → 解码为 mp3
- piper: piper CLI → WAV
2. ffmpeg 转 opus
ffmpeg -i input.mp3 -ar 16000 -ac 1 -acodec libopus -b:a 128k output.opus
3. 上传获取 file_key
POST /open-apis/im/v1/files
Content-Type: multipart/form-data; boundary=...
body: file_type=opus, file=opus二进制
4. 发送 audio 消息
POST /open-apis/im/v1/messages?receive_id_type=open_id
{
"receive_id": "<user_open_id>",
"msg_type": "audio",
"content": "{\"file_key\": \"<file_key>\"}"
}
```
**使用示例:**
```bash
# 使用配置发送语音
python3 scripts/feishu_voice.py "Good morning! Today's vocabulary: commute, subway, transfer."
# 使用配置(指定路径)
python3 scripts/feishu_voice.py "Hello!" --config /path/to/config.json
# 仅合成,不发送(调试用)
python3 scripts/feishu_voice.py "Hello!" --dry-run
```
---
## TTS_PROVIDER 配置
### minimax(默认,云端,音质最好)
```env
TTS_PROVIDER=minimax
MINIMAX_API_KEY=sk-your-key
MINIMAX_TTS_MODEL=speech-2.8-hd
MINIMAX_TTS_VOICE_ID=male-qn-qingse
MINIMAX_TTS_SPEED=1.05
```
### piper(本地,高质量,离线)
**下载主程序(Linux x86_64):**
```bash
curl -L https://github.com/rhasspy/piper/releases/download/v1.2.0/piper_amd64.tar.gz \
-o /tmp/piper.tar.gz && tar xf /tmp/piper.tar.gz -C /tmp
```
**下载英语模型(Lessac Medium,音质好,速度快):**
```bash
curl -L "https://hf-mirror.com/rhasspskill-card.md
## Description: The English Tutor helps learners practice spoken English with optional word-list review, timed scenario dialogs, speech transcription, text-to-speech, Feishu voice delivery, and Bitable memory. This skill is ready for commercial/non-commercial use. ## Publisher: [pandaltsgo](https://clawhub.ai/user/pandaltsgo) ### License/Terms of Use: MIT-0 ## Use Case: Learners use this agent to rehearse short American English conversations, upload vocabulary lists, receive optional scheduled practice prompts, and review words with spaced repetition. Developers or advanced users configure Feishu, MiniMax, Piper, SenseVoice, and Bitable integrations according to the deployment environment. ### Deployment Geography for Use: Global ## Known Risks and Mitigations: Risk: The skill handles private voice, chat, learning records, and service credentials. Mitigation: Configure only trusted Feishu, MiniMax, and ASR providers; store secrets through environment variables or secured configuration; avoid passing secrets as command-line arguments. Risk: Optional Bitable memory stores chat and vocabulary records outside the local agent environment. Mitigation: Enable Bitable memory only when external storage of practice data is acceptable, and limit stored content to learning records needed for review. Risk: Optional Piper and SenseVoice setup downloads external binaries or model artifacts. Mitigation: Verify downloaded artifacts before use, prefer a virtual environment with pinned dependencies, and review downloaded files according to local security policy. ## Reference(s): - [ClawHub skill page](https://clawhub.ai/pandaltsgo/skills/the-english-tutor) - [Configuration schema](references/config-schema.md) - [MiniMax TTS API reference](https://platform.minimaxi.com/docs/api-reference/speech-t2a-http) - [Piper TTS release v1.2.0](https://github.com/rhasspy/piper/releases/download/v1.2.0/piper_amd64.tar.gz) - [Piper English voice model](https://hf-mirror.com/rhasspy/piper-voices/resolve/main/en/en_US/lessac/medium/en_US-lessac-medium.onnx) - [SenseVoice model files](https://modelscope.cn/api/v1/models/xiaowangge/sherpa-onnx-sense-voice-small/resolve/master/model.onnx) ## Skill Output: **Output Type(s):** [text, markdown, shell commands, configuration, guidance] **Output Format:** [Markdown and plain text with optional JSON status from helper scripts] **Output Parameters:** [1D] **Other Properties Related to Output:** [May include Feishu audio-message results or skipped status when voice delivery is configured.] ## Skill Version(s): 3.0.4 (source: server release and artifact metadata) ## Ethical Considerations: Users should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.
metadata.json
{
"name": "english-tutor",
"version": "3.0.4",
"description": "英语口语陪练基座。飞书语音推送 + MiniMax/本地 TTS + SenseVoice ASR + 艾宾浩斯复习。全部模块选填,按需启用。",
"credential_using": true,
"all_optional": true,
"optional_credentials": [
{
"name": "FEISHU_APP_ID",
"type": "feishu_app_id",
"required": false,
"description": "飞书应用 App ID(填了才能发飞书语音)"
},
{
"name": "FEISHU_APP_SECRET",
"type": "feishu_app_secret",
"required": false,
"description": "飞书应用 Secret(填了才能发飞书语音)"
},
{
"name": "FEISHU_USER_OPEN_ID",
"type": "feishu_open_id",
"required": false,
"description": "接收语音的飞书用户 Open ID(填了才能发飞书语音)"
},
{
"name": "MINIMAX_API_KEY",
"type": "api_key",
"required": false,
"description": "MiniMax API Key(填了启用云端 TTS,不填则跳过)"
},
{
"name": "PIPER_BIN",
"type": "file_path",
"required": false,
"description": "Piper 主程序路径(填了启用本地 TTS 兜底)"
},
{
"name": "PIPER_MODEL",
"type": "file_path",
"required": false,
"description": "Piper ONNX 模型路径(填了启用本地 TTS 兜底)"
},
{
"name": "SENSE_VOICE_MODEL_DIR",
"type": "directory_path",
"required": false,
"description": "SenseVoice 模型目录(填了启用本地 ASR,不填则跳过)"
},
{
"name": "BITABLE_APP_TOKEN",
"type": "feishu_bitable_token",
"required": false,
"description": "飞书多维表格 App Token(不填则无艾宾浩斯记忆)"
},
{
"name": "BITABLE_WORDS_TABLE_ID",
"type": "string",
"required": false,
"description": "words 表 ID(单词记录表)"
},
{
"name": "BITABLE_CHAT_TABLE_ID",
"type": "string",
"required": false,
"description": "chat_log 表 ID(对话历史表)"
}
],
"module_design": {
"principle": "填了变量启用该模块,没填则静默跳过,不报错",
"modules": [
{
"name": "飞书语音推送",
"env": ["FEISHU_APP_ID", "FEISHU_APP_SECRET", "FEISHU_USER_OPEN_ID"],
"behavior_when_empty": "静默跳过,不发飞书语音"
},
{
"name": "MiniMax TTS",
"env": ["MINIMAX_API_KEY"],
"behavior_when_empty": "静默跳过,尝试 Piper 本地 TTS"
},
{
"name": "Piper 本地 TTS",
"env": ["PIPER_BIN", "PIPER_MODEL"],
"behavior_when_empty": "静默跳过,无 TTS 功能"
},
{
"name": "SenseVoice 本地 ASR",
"env": ["SENSE_VOICE_MODEL_DIR"],
"behavior_when_empty": "静默跳过,仅支持文字输入"
},
{
"name": "多维表格记忆",
"env": ["BITABLE_APP_TOKEN", "BITABLE_WORDS_TABLE_ID", "BITABLE_CHAT_TABLE_ID"],
"behavior_when_empty": "静默跳过,不记录学习进度"
}
]
},
"scheduled_actions": [
{
"name": "每日晨间练习 08:00",
"cron": "0 8 * * *",
"timezone": "Asia/Shanghai",
"default_enabled": false,
"behavior": "用户选择开启后,自动生成跟读对话,发飞书语音,等待用户回复"
},
{
"name": "每日午间练习 12:00",
"cron": "0 12 * * *",
"timezone": "Asia/Shanghai",
"default_enabled": false,
"behavior": "同上"
},
{
"name": "每日晚间练AionUi
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
activepieces
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
cherry-studio
AI productivity studio with smart chat, autonomous agents, and 300+ assistants.
CopilotKit
The Frontend for Agents & Generative UI. React + Angular
Machine-readable data
The same record, as JSON, for agents and crawlers.
- Card JSON
- Facts JSON
- Snapshot JSON
- Contract JSON
- Trust JSON
- Changes JSON
- Warnings JSON
- Seen by JSON
- Disagreements JSON
- Proof JSON
{
"facts": [
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Clawhub",
"href": "https://clawhub.ai/pandaltsgo/skills/the-english-tutor",
"sourceUrl": "https://clawhub.ai/pandaltsgo/skills/the-english-tutor",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-12T00:19:58.817Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-pandaltsgo-the-english-tutor/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-pandaltsgo-the-english-tutor/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-10-12T00:19:58.817Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "969 downloads",
"href": "https://clawhub.ai/pandaltsgo/the-english-tutor",
"sourceUrl": "https://clawhub.ai/pandaltsgo/the-english-tutor",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-12T00:19:58.817Z",
"isPublic": true
},
{
"factKey": "latest_release",
"category": "release",
"label": "Latest release",
"value": "3.0.4",
"href": "https://clawhub.ai/pandaltsgo/the-english-tutor",
"sourceUrl": "https://clawhub.ai/pandaltsgo/the-english-tutor",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-05-10T15:13:53.498Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-pandaltsgo-the-english-tutor/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-pandaltsgo-the-english-tutor/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
],
"events": [
{
"eventType": "release",
"title": "Release 3.0.4",
"description": "Security hardening: remove hardcoded API keys, add null guards, cross-platform paths, stop-word filtering, logging module, all-optional config check",
"href": "https://clawhub.ai/pandaltsgo/the-english-tutor",
"sourceUrl": "https://clawhub.ai/pandaltsgo/the-english-tutor",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-05-10T15:13:53.498Z",
"isPublic": true
}
]
}Record generated Oct 13, 2026.
For crawlers
This page is free to read. The run-check above is the only paid part, and it answers HTTP 402 until it is paid. Everything else here is public.
- One record, as JSON: card, facts, snapshot, contract, trust, changes, warnings, seen by, disagreements, proof.
- Every agent, one feed: /.well-known/ai-catalog.json
- What this site sells, and the price: /.well-known/x402
- Paid run-check: /api/v1/agents/clawhub-pandaltsgo-the-english-tutor/run-check
