/alibabacloud-cadt-arch-draw
Draw cloud architecture diagrams via CADT AI agent. Submit a product/resource description, the backend creates the architecture and returns a summary. Triggers: "画架构图", "架构绘图", "CADT 绘图", "draw architecture".
$ npx -y skills add aliyun/alibabacloud-aiops-skills --skill alibabacloud-cadt-arch-draw --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/alibabacloud-cadt-arch-draw
Context preview
The summary Claude sees to decide when to auto-load this skill.
Draw cloud architecture diagrams via CADT AI agent. Submit a product/resource description, the backend creates the architecture and returns a summary. Triggers: "画架构图", "架构绘图", "CADT 绘图", "draw architecture".
SKILL.md
alibabacloud-cadt-arch-draw.SKILL.mdname: alibabacloud-cadt-arch-draw
description: |
Draw cloud architecture diagrams via CADT AI agent.
Submit a product/resource description, the backend creates the architecture and returns a summary.
Triggers: "画架构图", "架构绘图", "CADT 绘图", "draw architecture".
CADT Architecture Diagram Drawing
Submit a product/resource description → CADT AI agent creates the architecture (nodes, connections, validation, layout) and returns a Markdown summary.
Prerequisites
aliyun version # >= 3.3.3
aliyun configure list # valid profile exists
If not met, see [`references/related-commands.md`](references/related-commands.md) § Installation.
> **Security**: NEVER read/echo AK/SK values, NEVER ask user to input credentials in conversation.
---
Flow
Step 1: Submit Drawing Request (SendMessage)
aliyun bpstudio execute-operation-sync \
--service-type ai_agent \
--operation SendMessage \
--region cn-hangzhou \
--user-agent "AlibabaCloud-Agent-Skills/alibabacloud-cadt-arch-draw/{SESSION_ID}" \
--attributes '{
"prompt": "一台 Web ECS + 一台 MySQL RDS + 一台 SLB,部署在同一个 VPC 内"
}'- **prompt** (required): product/resource list — be specific about products, quantities, and relationships
- **sessionId** (optional): omit for new session; pass to iterate on existing architecture
- **scene** (optional): reserved for future drawing modes — currently no available values, omit
> **Session reuse (MANDATORY)**: If the user provides a `sessionId` (e.g. "sessionId 是 1001", "在上次那个架构基础上改", "继续修改刚才的图"), you MUST pass that exact `sessionId` in this SendMessage call to iterate on the existing CADT session. NEVER start a fresh session and NEVER regenerate the architecture locally. A new execution environment does NOT lose the session — the session lives on the CADT backend, keyed by `sessionId`; just pass it through the CLI.
Response:
{
"Code": 200,
"Data": {
"Status": "SUCCESS",
"Arguments": { "triggered": true, "sessionId": 1001, "requestId": "xxx-xxx" }
}
}> Architecture generation typically takes **30–120 seconds** depending on complexity.
Step 2: Poll for Result (ListMessage)
aliyun bpstudio execute-operation-sync \
--service-type ai_agent \
--operation ListMessage \
--region cn-hangzhou \
--user-agent "AlibabaCloud-Agent-Skills/alibabacloud-cadt-arch-draw/{SESSION_ID}" \
--attributes '{"sessionId": 1001}'Response structure:
{
"Data": {
"Status": "SUCCESS",
"Arguments": {
"hasMore": false,
"hasNext": false,
"lastMessageId": 5002,
"messageList": [
{
"messageId": 5001,
"sessionId": 1001,
"senderType": "customer",
"senderId": "120012345678****",
"content": "...",
"status": "done",
"messageSendTime": 1700000000000
},
{
"messageId": 5002,
"sessionId": 1001,
"senderType": "robot",
"senderId": "robot",
"content": "...Markdown architecture summary...",
"status": "done",
"prompt": "...",
"messageSendTime": 1700000090000
}
]
}
}
}**Polling logic**:
- Find the last message where `senderType == "robot"`
- If its `status == "ongoing"` → wait **5s**, poll again
- If its `status == "done"` → proceed to Step 3
- If `messageList` is empty / has no robot message → keep polling with the **same** `sessionId` (this alone is NOT a reason to switch sessions)
- Max poll: 30 times (~150s), then timeout → **stop and report to the user**
> **On timeout or persistently empty response**: NEVER create a new session as a workaround. Report to the user that session `{sessionId}` returned no response (it may not exist, may have expired, or may belong to another environment) and ask how to proceed. Creating a new session without the user's explicit consent violates Hard Rule #6.
> **Multi-turn**: The robot may ask clarifying questions (e.g., "部署在哪个地域?") instead of directly drawing. > In that case, `status == "done"` but `content` is a question — present it to the user, collect their reply, and call SendMessage again with the same `sessionId`. > > **Invalid input**: Nonexistent products/regions (e.g. a made-up product name or a fake region like `cn-nowhere`) do NOT return `FAILURE` — the robot replies with a clarifying question (Case B) pointing out what it cannot recognize. Relay that clarification faithfully; NEVER fabricate a successful architecture.
Step 3: Deliver Result
When the robot's last message has `status == "done"`, check its `content`:
**Case A — Architecture complete** (content contains resource table / topology / validation): 1. Present the robot's Markdown `content` to the user 2. Inform user the architecture has been created in CADT and can be viewed/edited at [CADT Console](https://bpstudio.console.aliyun.com) 3. Offer to continue modifying (reuse the same `sessionId`)
**Case B — Clarifying question** (content is a question asking for more info): 1. Present the question to the user 2. Collect user's reply 3. Call SendMessage again with the same `sessionId` and the reply as `prompt` 4. Go back to Step 2
---
Prompt Tips
| Style | Example | |-------|---------| | Simple | "一台 ECS + 一台 RDS" | | With roles | "Web ECS + MySQL RDS + SLB 负载均衡" | | With topology | "VPC 内两台 ECS,通过 SLB 对外暴露,后接 Redis 和 PolarDB" | | Multi-AZ | "两个可用区各一台 ECS,共享 RDS 和 Redis" | | Constraints | "高可用架构:ALB + 2 台 ECS 跨 AZ,RDS 主备" |
Error Handling
| Status | Action | |--------|--------| | `SUCCESS` | Proceed with Arguments data — **never retry** | | `FAILURE` (business error, e.g. permission/quota/parameter error) | Show `Message` to user and stop — **do NOT retry** | | `FAILURE` + "Failed to invoke" in Message (backend service unavailable) | Transient backend outage only — wait 30s and retry **once**; if it still fails, report to user | | Robot message `status` stays `ongoing` b
Read more
name: alibabacloud-cadt-arch-draw description: | Draw cloud architecture diagrams via CADT AI agent. Submit a product/resource description, the backend creates the architecture and returns a summary. Triggers: "画架构图", "架构绘图", "CADT 绘图", "draw architecture".
CADT Architecture Diagram Drawing
Submit a product/resource description → CADT AI agent creates the architecture (nodes, connections, validation, layout) and returns a Markdown summary.
Prerequisites
aliyun version # >= 3.3.3 aliyun configure list # valid profile exists
If not met, see [`references/related-commands.md`](references/related-commands.md) § Installation.
> **Security**: NEVER read/echo AK/SK values, NEVER ask user to input credentials in conversation.
---
Flow
Step 1: Submit Drawing Request (SendMessage)
aliyun bpstudio execute-operation-sync \
--service-type ai_agent \
--operation SendMessage \
--region cn-hangzhou \
--user-agent "AlibabaCloud-Agent-Skills/alibabacloud-cadt-arch-draw/{SESSION_ID}" \
--attributes '{
"prompt": "一台 Web ECS + 一台 MySQL RDS + 一台 SLB,部署在同一个 VPC 内"
}'- **prompt** (required): product/resource list — be specific about products, quantities, and relationships
- **sessionId** (optional): omit for new session; pass to iterate on existing architecture
- **scene** (optional): reserved for future drawing modes — currently no available values, omit
> **Session reuse (MANDATORY)**: If the user provides a `sessionId` (e.g. "sessionId 是 1001", "在上次那个架构基础上改", "继续修改刚才的图"), you MUST pass that exact `sessionId` in this SendMessage call to iterate on the existing CADT session. NEVER start a fresh session and NEVER regenerate the architecture locally. A new execution environment does NOT lose the session — the session lives on the CADT backend, keyed by `sessionId`; just pass it through the CLI.
Response:
{
"Code": 200,
"Data": {
"Status": "SUCCESS",
"Arguments": { "triggered": true, "sessionId": 1001, "requestId": "xxx-xxx" }
}
}> Architecture generation typically takes **30–120 seconds** depending on complexity.
Step 2: Poll for Result (ListMessage)
aliyun bpstudio execute-operation-sync \
--service-type ai_agent \
--operation ListMessage \
--region cn-hangzhou \
--user-agent "AlibabaCloud-Agent-Skills/alibabacloud-cadt-arch-draw/{SESSION_ID}" \
--attributes '{"sessionId": 1001}'Response structure:
{
"Data": {
"Status": "SUCCESS",
"Arguments": {
"hasMore": false,
"hasNext": false,
"lastMessageId": 5002,
"messageList": [
{
"messageId": 5001,
"sessionId": 1001,
"senderType": "customer",
"senderId": "120012345678****",
"content": "...",
"status": "done",
"messageSendTime": 1700000000000
},
{
"messageId": 5002,
"sessionId": 1001,
"senderType": "robot",
"senderId": "robot",
"content": "...Markdown architecture summary...",
"status": "done",
"prompt": "...",
"messageSendTime": 1700000090000
}
]
}
}
}**Polling logic**:
- Find the last message where `senderType == "robot"`
- If its `status == "ongoing"` → wait **5s**, poll again
- If its `status == "done"` → proceed to Step 3
- If `messageList` is empty / has no robot message → keep polling with the **same** `sessionId` (this alone is NOT a reason to switch sessions)
- Max poll: 30 times (~150s), then timeout → **stop and report to the user**
> **On timeout or persistently empty response**: NEVER create a new session as a workaround. Report to the user that session `{sessionId}` returned no response (it may not exist, may have expired, or may belong to another environment) and ask how to proceed. Creating a new session without the user's explicit consent violates Hard Rule #6.
> **Multi-turn**: The robot may ask clarifying questions (e.g., "部署在哪个地域?") instead of directly drawing. > In that case, `status == "done"` but `content` is a question — present it to the user, collect their reply, and call SendMessage again with the same `sessionId`. > > **Invalid input**: Nonexistent products/regions (e.g. a made-up product name or a fake region like `cn-nowhere`) do NOT return `FAILURE` — the robot replies with a clarifying question (Case B) pointing out what it cannot recognize. Relay that clarification faithfully; NEVER fabricate a successful architecture.
Step 3: Deliver Result
When the robot's last message has `status == "done"`, check its `content`:
**Case A — Architecture complete** (content contains resource table / topology / validation): 1. Present the robot's Markdown `content` to the user 2. Inform user the architecture has been created in CADT and can be viewed/edited at [CADT Console](https://bpstudio.console.aliyun.com) 3. Offer to continue modifying (reuse the same `sessionId`)
**Case B — Clarifying question** (content is a question asking for more info): 1. Present the question to the user 2. Collect user's reply 3. Call SendMessage again with the same `sessionId` and the reply as `prompt` 4. Go back to Step 2
---
Prompt Tips
| Style | Example | |-------|---------| | Simple | "一台 ECS + 一台 RDS" | | With roles | "Web ECS + MySQL RDS + SLB 负载均衡" | | With topology | "VPC 内两台 ECS,通过 SLB 对外暴露,后接 Redis 和 PolarDB" | | Multi-AZ | "两个可用区各一台 ECS,共享 RDS 和 Redis" | | Constraints | "高可用架构:ALB + 2 台 ECS 跨 AZ,RDS 主备" |
Error Handling
| Status | Action | |--------|--------| | `SUCCESS` | Proceed with Arguments data — **never retry** | | `FAILURE` (business error, e.g. permission/quota/parameter error) | Show `Message` to user and stop — **do NOT retry** | | `FAILURE` + "Failed to invoke" in Message (backend service unavailable) | Transient backend outage only — wait 30s and retry **once**; if it still fails, report to user | | Robot message `status` stays `ongoing` b
Official Alibaba Cloud Agent Skills collection, providing AI agents with rich Alibaba Cloud product capabilities and general-purpose tooling.
Other skills on alibabacloud-aiops-skills.
- /alibabacloud-agentbay-aio-skills
Execute code in a secure cloud sandbox via AgentBay SDK. Use this skill whenever users request to run, execute, or evaluate code (Python, JavaScript, R, Java), including plotting charts, running scripts, or viewing code output. Covers requests like "run this code", "execute
Open skill - /alibabacloud-agentloop-dataset
Operate Alibaba Cloud AgentLoop Dataset resources with aliyun CLI and the AgentLoop API version 2026-05-20. Use when requests concern AgentLoop datasets, data rows, Dataset schemas, embedding fields, semantic search, ExecuteQuery, AgentSpace data, 数据集, 数据写入, 数据查询, 语义检索, or ask
Open skill - /alibabacloud-agentloop-evaluation
Orchestrate AgentLoop evaluation workflows through the Aliyun CLI plugin with safe previews, saved evaluator and evaluator-skill management, one-shot sample tests, trace or dataset batch runs, polling, and result inspection. Analyze evaluation quality and low-score cases from
Open skill - /alibabacloud-agentloop-experience
Proactively use AgentLoop Recall to retrieve prior Alibaba Cloud AgentLoop experience through the bundled SearchContext CLI whenever the user asks or implies that prior work may help. Trigger for requests to check, search, recall, retrieve, look up, review, consult, reference,
Open skill - /alibabacloud-agentloop-management
AgentLoop APM接入 / AI可观测接入 / 应用监控接入 / 自研探针 / 探针安装. Use for Python aliyun-bootstrap (aliyun-instrument), Java AliyunJavaAgent, Golang instgo, Node.js cms_node_sdk, PHP/.NET OpenTelemetry, ack-onepilot, LicenseKey, AgentLoop workspace agentloop-*. Also for LangChain, Dify,
Open skill - /alibabacloud-avatar-video
Use Alibaba Cloud DashScope API and LingMou to generate AI video and speech. Seven capabilities — (1) LivePortrait talking-head (image + audio → video, two-step), (2) EMO talking-head, (3) AA/AnimateAnyone full-body animation (three-step), (4) T2I text-to-image (Wan 2.x, default
Open skill

