| name | voice-ai-integration |
| description | Integrate Shengwang products: ConvoAI voice agents, RTC audio/video,
RTM messaging, Cloud Recording, and token generation. Use when the user
mentions Shengwang, ๅฃฐ็ฝ, ConvoAI, RTC, RTM, voice agent, AI agent,
video call, live streaming, recording, token, or any Shengwang product task.
|
| license | MIT |
| metadata | {"author":"shengwang","version":"1.0.0"} |
Shengwang Integration
Workflow
Step 0: Ensure doc index exists (MANDATORY)
โ ๏ธ Execute this BEFORE any routing or code generation.
Check if references/docs.txt already exists. If it does, skip this step entirely.
If it does not exist, download it:
bash skills/voice-ai-integration/scripts/fetch-docs.sh
This downloads a static doc index from doc.shengwang.cn โ no user data is sent.
If download fails, proceed with local reference docs and fallback URLs.
Step 1: Route to the correct product module
Progressive disclosure rule: Only read the file that the current step points to. Do not scan the references/ directory or pre-read files that have not been linked from the current step. Each product module's README.md will tell you which files to read next and when. If a file is not referenced by the document you are currently reading, do not open it.
Match the user's request to a product module using the route table. If the match
is clear, route directly โ do not ask extra questions.
Route Table
| User intent | Route to |
|---|
| Credentials, AppID, REST auth | general |
| Generate Token, token server, AccessToken2 | token-server |
| ConvoAI voice agent work | conversational-ai |
| RTC SDK integration | rtc |
| RTM messaging / signaling | rtm |
| Cloud Recording | cloud-recording |
| Download SDK, sample project, GitHub repo | Route to the relevant product module above |
Product Recognition Aid
When the user describes a use case without naming a product, use this to infer the match:
| Product | What it does | Typical user says |
|---|
| ConvoAI | AI voice agent (ASRโLLMโTTS over RTC) | "AI่ฏญ้ณ", "voice bot", "ๅฏน่ฏๅผAI", "AI agent", "AI ๅฎขๆ" |
| RTC SDK | Real-time audio/video between humans | "่ง้ข้่ฏ", "็ดๆญ", "video call", "live streaming" |
| RTM | Real-time messaging / signaling | "่ๅคฉ", "ๆถๆฏ", "chat", "signaling" |
| Cloud Recording | Record RTC sessions server-side | "ๅฝๅถ", "recording", "ๅญๆกฃ", "ๅ็" |
| Token generation | Generate RTC / RTM tokens | "token", "้ดๆ", "token server" |
Common Combinations
| Use case | Products needed |
|---|
| AI voice assistant | ConvoAI (primary) + RTC SDK (client) |
| AI voice assistant + chat history | ConvoAI + RTC SDK + RTM |
| 1v1 / group video call | RTC SDK |
| Video call + chat | RTC SDK + RTM |
| Live streaming with recording | RTC SDK + Cloud Recording |
| Record AI conversations | ConvoAI + RTC SDK + Cloud Recording |
| Chat / messaging only | RTM |
Routing Rules
- Infer obvious context โ do not ask if the answer is already clear
- Do not ask product-specific configuration questions (providers, SDK versions, project structure) at this level; let the product module handle those
- If the product is clear but the request mode is ambiguous (quickstart vs debugging vs feature), let the product module decide internally
- If multiple products are needed, route to the primary product first, then address supporting products in order
- ConvoAI has the most detailed internal routing (see its README.md); always delegate ConvoAI-specific decisions to its module
When the product is still unclear
If the route table and recognition aid above are not enough to determine the product:
- Ask only for the missing detail that would change the routing decision
- Ask at most one question at a time
- Prefer natural wording over an interview script
- Once the product is clear, produce a short routing recap and continue:
ZH:
ๅทฒไบ่งฃ็ไฟกๆฏ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
ๅบๆฏ๏ผ [use case]
ไธป่ฆไบงๅ๏ผ [primary product]
้
ๅฅไบงๅ๏ผ [supporting products / ๆ ]
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
EN:
What I have so far
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Use case: [use case]
Primary: [primary product]
Supporting: [supporting products / none]
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Do not stop for a separate confirmation step โ continue to the product module automatically.
Step 2: Let the product module drive implementation
Each product module follows its own workflow. Do not duplicate implementation logic here.
Common pattern across modules:
- Use local reference docs in
references/ first
- Fetch remote docs via doc-fetching.md only when local references are insufficient
- Fallback to web search only after doc fetching has been attempted
Runtime Requirements
bash and curl for local doc-fetch helper scripts
git for sample-repo inspection when the sample-aligned path is chosen
- Network access to
doc.shengwang.cn, doc-mcp.shengwang.cn, and gitee.com
Network behavior:
fetch-docs.sh downloads a static file from doc.shengwang.cn/llms.txt โ no user data is sent
fetch-doc-content.sh fetches a single doc page by URI from doc-mcp.shengwang.cn โ only the doc URI is sent, no user context
git clone is used only for sample repo inspection from gitee.com โ only the repo URL is sent
Credential and service-activation requirements vary by product โ see each product module and general/credentials-and-auth.md for details. Never hardcode credentials.
Safety & Consent Rules
- Do not clone external repos into the user's main workspace by default โ prefer a temporary path
- Do not modify an existing user project until the user explicitly asks for code generation
- Do not write secrets into project files โ prefer env vars and example placeholders
- Before performing network fetches or repo clones, state what will be downloaded
- If a required dependency or credential is missing, stop and explain the blocker
Download Rules
- Use
git clone --depth 1 <url> with HTTPS repo root URLs only
- On any download failure: report the error, provide the URL for manual download, never silently skip
Links