ai-model-wechat
Enables integration of advanced AI models into WeChat Mini Programs via wx.cloud.
Install
mkdir -p .claude/skills/ai-model-wechat && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/7961" && unzip -o skill.zip -d .claude/skills/ai-model-wechat && rm skill.zipInstalls to .claude/skills/ai-model-wechat
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Use this skill for WeChat Mini Program AI via wx.cloud.extend.AI (小程序, 企业微信小程序, wx.cloud apps). Features generateText and streamText with callbacks (onText, onEvent, onFinish). Models via wx.cloud.extend.AI.createModel with groups hunyuan-exp (小程序成长计划), cloudbase (main managed), or custom-*. Model IDs (deepseek-v4-flash, deepseek-v3.2, hunyuan-2.0-instruct-20251111, glm-5, kimi-k2.6) go in the data wrapper model field. API differs from JS/Node SDK — streamText needs data wrapper, generateText returns raw response. MUST run two-step preflight before code — see body. Keywords: Mini Program AI, wx.cloud.extend.AI, 小程序成长计划, ai_miniprogram_inspire_plan, Token Credits 资源包, generateText, streamText, createModel, hunyuan-exp, TokenHub, Hunyuan, DeepSeek, GLM, Kimi, MiniMax. NOT for browser/Web (use ai-model-web), Node.js backend (use ai-model-nodejs), or image generation (use ai-model-nodejs).Key capabilities
- →Generates text via WeChat cloud functions
- →Streams model output with callbacks
- →Handles WeChat model authentication
- →Creates model instances via API
How it works
Interfaces with wx.cloud.extend.AI via specialized JavaScript wrappers tailored for the WeChat Mini Program runtime environment.
Inputs & outputs
When to use ai-model-wechat
- →Developing WeChat Mini Program AI features
- →Integrating text generation into WeChat apps
- →Streaming AI responses in mini programs
About this skill
Sibling skills (local only)
Sibling CloudBase skills ship beside this skill. Use local relative paths such as ../auth-tool-cloudbase/SKILL.md.
If a referenced sibling skill file is missing from this environment, ask the user to install the full CloudBase plugin (or the missing skill). Do not HTTP-fetch remote skill or protocol markdown into the agent context.
When to use this skill
Use this skill for calling AI models in WeChat Mini Program using wx.cloud.extend.AI.
Use it when you need to:
- Integrate AI text generation in a Mini Program
- Stream AI responses with callback support
- Call Hunyuan models from the WeChat environment
Do NOT use for:
- Browser/Web apps → use
ai-model-webskill - Node.js backend or cloud functions → use
ai-model-nodejsskill - Image generation → use
ai-model-nodejsskill (not available in Mini Program) - Runtimes without a CloudBase SDK (native apps, Python, etc.) → use
http-api-cloudbaseskill (it now includes theai_modelOpenAPI spec for direct HTTP calls)
⛔ STOP — wx.cloud.extend.AI.createModel(provider) argument is not a vendor / model name
Read this before writing any createModel(...) line. Agents frequently hallucinate this argument. There are exactly three legal shapes. Anything else is a bug.
✅ Legal createModel(provider) argument | When to use it |
|---|---|
"hunyuan-exp" | The Mini Program 成长计划 (ai_miniprogram_inspire_plan) is enrolled for the current env. Default model: hunyuan-2.0-instruct-20251111. |
"cloudbase" | Default fallback. Main managed group (TokenHub-backed, multi-vendor pool). Vendor + concrete model go into the model field, e.g. { model: "deepseek-v4-flash" }. |
"custom-<your-name>" | A user-defined GroupName you onboarded via CreateAIModel. Must start with custom- (e.g. custom-kimi, custom-openai-compat). |
❌ Do NOT write any of these — they are all wrong
wx.cloud.extend.AI.createModel("deepseek") // wrong — vendor, not GroupName
wx.cloud.extend.AI.createModel("deepseek-v4-flash") // wrong — model id goes in `model`
wx.cloud.extend.AI.createModel("hunyuan") // wrong — vendor family
wx.cloud.extend.AI.createModel("hunyuan-2.0-instruct-20251111") // wrong — model name
wx.cloud.extend.AI.createModel("glm") / "kimi" / "minimax" // wrong — vendor names
wx.cloud.extend.AI.createModel("custom") // wrong — placeholder
wx.cloud.extend.AI.createModel(modelName) // wrong — do not reuse the model-id variable
✅ Correct pattern — provider vs model are two different fields
// Growth Plan branch
const model = wx.cloud.extend.AI.createModel("hunyuan-exp"); // ← provider / GroupName
await model.streamText({
data: { model: "hunyuan-2.0-instruct-20251111", messages: [...] } // ← concrete model id
});
// Token Credits branch
const model = wx.cloud.extend.AI.createModel("cloudbase");
await model.streamText({
data: { model: "deepseek-v4-flash", messages: [...] }
});
Decision procedure (when the user names a specific model)
- The user says "use DeepSeek v3.2" / "use hunyuan thinking" / "use Kimi k2.6" / …
- First run the eligibility decision tree below — the correct
providermay be"hunyuan-exp"(if the env is on Growth Plan and the user asked for ahunyuan-*model) or"cloudbase"(anything else in the managed catalog). - Put the model id into the
modelfield insidedata:{ model: "deepseek-v3.2" },{ model: "hunyuan-2.0-instruct-20251111" },{ model: "kimi-k2.6" }, … - Before using the model id, make sure it is present in
DescribeAIModels({ GroupName: "cloudbase" }).Models[]. If not, enable it viaUpdateAIModel.
If you are about to type
wx.cloud.extend.AI.createModel(and the thing inside the parentheses is a vendor name or a model id — stop. It is almost certainly one of the three legal values above.
Mandatory Two-Step Preflight
You MUST NOT jump straight into wx.cloud.extend.AI.createModel(...). Before writing any business code, confirm billing eligibility and group readiness in this fixed order: ① eligibility → ② group readiness. Do not swap the two.
Preflight ① · Billing Eligibility (two parallel billing paths)
The Mini Program side has two billing paths: 小程序成长计划 (checked first; if enrolled, use hunyuan-exp) and Token Credits 资源包 (generic fallback; if available, use the cloudbase main managed group).
-
Fetch
envIdvia the MCP toolenvQuery action=info. -
Pick the branch by user intent:
| User intent | Eligibility to check first | createModel provider on hit | Model selection | Guidance on miss |
|---|---|---|---|---|
| No model specified / default call | Check 小程序成长计划 enrollment first; if not enrolled, fall back to Token Credits resource pack | Enrolled: "hunyuan-exp"; otherwise: "cloudbase" | Enrolled: hunyuan-2.0-instruct-20251111 (the 成长计划 default). Otherwise: pick a text model with the user, then verify/enable it in the "cloudbase" group via DescribeAIModels → DescribeManagedAIModelList → UpdateAIModel | Plan not enrolled → point to https://docs.cloudbase.net/ai/ai-inspire-plan; resource pack missing → purchase link |
User requests a hunyuan-* model | 小程序成长计划 enrollment | "hunyuan-exp" (plan-exclusive Token pack billing) | hunyuan-2.0-instruct-20251111 if present; otherwise verify via DescribeAIModels({ GroupName: "hunyuan-exp" }).Models[] and UpdateAIModel to enable | Not enrolled → enroll first, or switch to "cloudbase" + a non-hunyuan model |
User requests deepseek-* / glm-* / kimi-* / minimax-* / other non-hunyuan managed models | Token Credits 资源包 activation | "cloudbase" | Do NOT assume the model is already enabled. DescribeAIModels → if missing, DescribeManagedAIModelList for the canonical Model string → UpdateAIModel with Status: 1 (full-replacement Models[]) | Resource pack not activated → purchase link |
| User requests a third-party / self-hosted (non-managed) model | Skip billing eligibility and go to "Custom onboarding" | Custom GroupName (must start with custom-) | Registered via CreateAIModel.Models[] | Offer both console + CreateAIModel paths |
- Check 小程序成长计划 enrollment:
callCloudApi({
service: "tcb",
action: "DescribeActivityInfo",
params: {
ActivityNames: ["ai_miniprogram_inspire_plan"], // PascalCase preferred; switch to camelCase if InvalidParameter is returned
},
})
Hit criterion: the response's attendRecords contains at least one entry where activityName === "ai_miniprogram_inspire_plan" and envId matches the current environment. On hit, default to createModel("hunyuan-exp") + hunyuan-2.0-instruct-20251111; billing uses the plan-exclusive Token pack pkg_hunyuan_token_la_inspire_100m.
On miss: do NOT silently fall back. Tell the user "the current environment is not enrolled in 小程序成长计划", surface the enrollment entry https://docs.cloudbase.net/ai/ai-inspire-plan, and ask whether to enroll and retry, or to switch to the Token Credits resource pack path with a non-hunyuan model.
- Check the Token Credits resource pack (when the path leads to the
"cloudbase"main managed group):
callCloudApi({
service: "tcb",
action: "DescribeEnvPostpayPackage",
params: {
EnvId: "<current envId>",
},
})
Hit criterion: envPostpayPackageInfoList contains an entry whose postpayPackageId starts with pkg_tcb_tokencredits_, has status ∉ [3, 4] (not expired, not disabled), and versionSwitchStatus is not in a blocking state.
On miss: surface the purchase link (replace {envId} with the real ID — never leave the placeholder):
https://buy.cloud.tencent.com/lowcode?buyType=resPack&envId={envId}&resourceType=token
Preflight ② · Group Readiness (mandatory for every Mini Program AI call)
Passing eligibility does not mean the target model is callable. No model is enabled by default in the "cloudbase" main managed group — you must first call DescribeAIModels to see what is enabled, then (if missing) DescribeManagedAIModelList for the authoritative supported-model catalog and UpdateAIModel with Status: 1 to enable it. The "hunyuan-exp" group's readiness is driven by 成长计划 enrollment — enrollment alone makes hunyuan-2.0-instruct-20251111 available, but any other hunyuan SKU still has to be checked against DescribeAIModels({ GroupName: "hunyuan-exp" }).Models[] and enabled via UpdateAIModel if missing.
- Query the groups and switches currently configured in the environment (
tcbActionDescribeAIModels, Version2018-06-08):
callCloudApi({
service: "tcb",
action: "DescribeAIModels",
params: { EnvId: "<envId>" },
})
Returns AIModelGroups: AIModelGroup[]. Each AIModelGroup has GroupName (e.g. cloudbase / hunyuan-exp / your custom group), Type (builtin / custom), Models: [{ Model, EnableMCP, Tags }], and Status (1=on / 2=off). Group readiness = all three of: the GroupName exists + Status === 1 + the target Model is present in Models[].
- If the target model is not in the
DescribeAIModelsresponse, query the platform catalog + pricing viaDescribeManagedAIModelList— it returnsManagedAIModelGroup[]includingModelSpec(context length, etc.) andModelChargingInfo(Uniform/Tieredpricing). Pick the target model, then enable it viaUpdateAIModel:
callCloudApi({
service: "tcb",
action: "UpdateAIModel",
params: {
EnvId: "<envId>",
GroupName: "cloudbase",
Status: 1, // 1=on, 2=off
Models: [
{ Model: "deepseek-v4-flash", EnableMCP: false },
{ Model: "deepseek-v3.2", EnableMCP: false }, // append the new model to en
---
*Content truncated.*
When not to use it
- →Developing standard Node.js backends
- →Creating browser-based web applications
- →Non-WeChat environment tasks
Prerequisites
Limitations
- →Strictly for WeChat Mini Programs
- →No support for image generation
How it compares
It strictly uses the unique WeChat cloud API schema rather than common OpenAI or LangChain libraries.
Compared to similar skills
ai-model-wechat side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| ai-model-wechat (this skill) | 0 | 2mo | No flags | Intermediate |
| telegram-dev | 2 | 8mo | Review | Intermediate |
| shopify-apps | 1 | 4mo | Review | Intermediate |
| ccxt-typescript | 1 | 6mo | Review | Beginner |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by TencentCloudBase
View all by TencentCloudBase →You might also like
telegram-dev
2025Emma
Telegram 生态开发全栈指南 - 涵盖 Bot API、Mini Apps (Web Apps)、MTProto 客户端开发。包括消息处理、支付、内联模式、Webhook、认证、存储、传感器 API 等完整开发资源。
shopify-apps
alinaqi
Shopify app development - Remix, Admin API, checkout extensions
ccxt-typescript
ccxt
CCXT cryptocurrency exchange library for TypeScript and JavaScript developers (Node.js and browser). Covers both REST API (standard) and WebSocket API (real-time). Helps install CCXT, connect to exchanges, fetch market data, place orders, stream live tickers/orderbooks, handle authentication, and manage errors. Use when working with crypto exchanges in TypeScript/JavaScript projects, trading bots, arbitrage systems, or portfolio management tools. Includes both REST and WebSocket examples.
rdc-endpoint-setup
reactive
Set up @data-client/endpoint for custom async operations. Wraps existing async functions with Endpoint for use with Data Client hooks. Use after rdc-setup detects non-REST/GraphQL async patterns.
query-layer
EpicenterHQ
Query layer patterns for consuming services with TanStack Query, error transformation, and runtime dependency injection. Use when implementing queries/mutations, transforming service errors for UI, or adding reactive data management.
gemini-live-api-dev
LowyShin
Guides the usage of the Gemini Live (Multimodal Live) API using the Gen AI SDK. Use when the user asks about real-time, bidirectional streaming of voice and video with Gemini. Covers configuration, session management, sending/receiving audio/video media, and tool integration.