## 背景 / Background #16 (4f7037a) 将 16 个 SKILL.md 的 `~/.desirecore` 路径批量替换为 `${DESIRECORE_ROOT}`,但只升了 `manifest.json`,**未升任何 per-skill version**。 客户端按 SKILL.md frontmatter 的 per-skill `version` 做 semver 同步:version 不变即判定「无更新」而永久跳过,导致已升级用户的全局技能正文停留在替换前的旧内容(与线上不同步)。 #16 (4f7037a) bulk-replaced `~/.desirecore` with `${DESIRECORE_ROOT}` in 16 SKILL.md files but only bumped `manifest.json`, leaving every per-skill `version` untouched. Clients sync by per-skill semver, so an unchanged version is treated as "no update" and skipped forever — upgraded users' global skills stay frozen on pre-replacement content. ## 改动 / Changes - 对 #16 触及且至今仍未升号的 **14 个在册技能** 各 patch +1 - `manifest.json` 1.2.2 → 1.2.3(沿用 #16「内容改动同步升 manifest」的约定) - 退役技能 `minimax-image-gen` / `minimax-tts`(不在 builtin-skills.json,不下发)跳过 - diff 为纯 version 行,未触动正文 Bumps the 14 in-manifest skills changed by #16 that were never version-bumped; manifest 1.2.2 → 1.2.3; retired skills skipped. Version-line-only diff.
7.9 KiB
name, description, license, version, type, risk_level, status, disable-model-invocation, provider, tags, requires, metadata, market
| name | description | license | version | type | risk_level | status | disable-model-invocation | provider | tags | requires | metadata | market | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| dashscope-image-gen | Use this skill when the user wants to generate images using Alibaba Cloud DashScope's Wan (通义万相) series models. Supports text-to-image with multiple model tiers (wan2.7-image-pro, wan2.7-image). Uses OpenAI-compatible chat/completions API for synchronous image generation. Use when 用户提到 生成图片、画图、文生图、创建图片、AI 绘画、 生成插图、画一张、帮我画、设计图片、通义万相、万相、阿里云画图、dashscope 画图。 | Complete terms in LICENSE.txt | 1.1.1 | procedural | low | enabled | false | dashscope |
|
|
|
|
dashscope-image-gen Skill
Mandatory Rules (violations cause failure)
- Must access agent-service over HTTPS — use
https://127.0.0.1:${PORT}with-kto skip certificate verification - Must upload to media-store via
/api/media/upload—/tmpis only a transient download/decode location, never use a local path as the final output - Must use the
dc-media://protocol to display images — the only form the frontend can render correctly - Use Bash curl throughout — do not use the HttpRequest tool or Python
- Use compatible-mode (
/chat/completions) — synchronous call; the response contains the image URL directly
Model Selection
| Model | Characteristics | When to use |
|---|---|---|
| wan2.7-image-pro | Flagship, 4K resolution, thinking_mode | User asks for top quality, 4K, or rich detail |
| wan2.7-image | Standard high quality, thinking_mode | Default, for unspecified requests |
Default rule: if the user does not specify a model, use wan2.7-image.
Full Execution Flow (strictly three steps)
Prerequisites
- The user has configured an Alibaba Cloud DashScope provider in Resource Manager → Compute and filled in an API Key
- agent-service is running
Step 1: Call the text-to-image API (synchronous)
Generate the image via media-proxy's compatible-mode endpoint; the response includes the image URL directly:
PORT=$(cat ${DESIRECORE_ROOT}/agent-service.port)
curl -sk -X POST "https://127.0.0.1:${PORT}/api/media-proxy" \
-H "Content-Type: application/json" \
-d '{
"provider": "dashscope",
"serviceType": "image_gen",
"endpoint": "/chat/completions",
"body": {
"model": "wan2.7-image",
"messages": [
{
"role": "user",
"content": [
{"type": "text", "text": "Replace this with the image description (English usually gives better results)"}
]
}
]
},
"responseType": "json"
}'
Example response:
{
"success": true,
"data": {
"request_id": "...",
"output": {
"choices": [
{
"message": {
"role": "assistant",
"content": [
{
"type": "image",
"image": "https://dashscope-result.oss.aliyuncs.com/..."
}
]
},
"finish_reason": "stop"
}
]
}
},
"statusCode": 200
}
Locate the item with type: "image" inside data.output.choices[0].message.content and extract its image URL.
Step 2: Download and upload to media-store
The image URL is time-limited; download and persist it to the local media-store immediately:
PORT=$(cat ${DESIRECORE_ROOT}/agent-service.port)
IMAGE_URL="image URL from step 1's response"
curl -sL "$IMAGE_URL" -o /tmp/dashscope-gen.png && \
curl -sk -X POST "https://127.0.0.1:${PORT}/api/media/upload" \
-F "file=@/tmp/dashscope-gen.png;type=image/png"
Pick the mediaId field from the JSON response (format xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.png).
Step 3: Render the image via the dc-media protocol
In your reply text, write Markdown image syntax directly:

For example: 
The frontend will translate dc-media:// into a reachable image URL and render it.
Parameter Mapping
Size selection
When calling Wan via compatible-mode, the size is passed as the top-level size parameter:
{
"model": "wan2.7-image",
"size": "1024x1024",
"messages": [...]
}
| User intent | size value |
|---|---|
| Square / avatar / default | "1024x1024" |
| Landscape / scenery / wallpaper | "1792x1024" |
| Portrait / mobile / poster | "1024x1792" |
Optional parameters (top-level body fields)
| Parameter | Description |
|---|---|
n |
Number of images, 1–4, default 1 |
size |
Image size, e.g. "1024x1024" |
Multiple Image Generation
When n > 1, the choices array contains multiple entries, each with an image inside message.content. Download and upload each image, then render them one by one:


Error Handling
success: false+error: "No matching provider": DashScope provider not configured or disabledsuccess: false+error: "API Key not configured": API Key missingstatusCode: 401: API Key invalid or expiredstatusCode: 429: rate limited, retry laterstatusCode: 400+InvalidParameter: bad parameters (e.g. unsupported size)statusCode: 403+AccessDenied.Unpurchased: model not activated; enable it in the Alibaba Cloud console
Notes
- compatible-mode calls are synchronous and typically return in 10–60 seconds (wan2.7-image-pro can take longer)
- Image URLs expire; download promptly
- English prompts usually produce the best results; Chinese is also supported
- When the user does not specify a model or size, default to
wan2.7-image+1024x1024