aliyun-planner
2
总安装量
2
周安装量
#71451
全站排名
安装命令
npx skills add https://github.com/go-restream/aliyun-ask --skill aliyun-planner
Agent 安装分布
claude-code
2
windsurf
1
opencode
1
codex
1
antigravity
1
gemini-cli
1
Skill 文档
Aliyun Planner
Aliyun Planner å°ç¨æ·çèªç¶è¯è¨æ¥è¯¢è½¬æ¢ä¸ºæ ååç Aliyun CLI æ§è¡è®¡åãå®éè¿æå¾åç±»ãå®ä½æ½åãå ³ç³»è¯å«åAPIæ å°å个æ¥éª¤ï¼è¾åºå¯æ§è¡ç JSON æ ¼å¼ CLI å½ä»¤åºåã
工使µç¨
Step 1: æå¾åç±»
è¯»å æå¾åç±»è¯å ¸åº.mdï¼åæç¨æ·æ¥è¯¢ç¡®å®ï¼
- primary_intent: 主æå¾ï¼SIMPLE_QUERY, ASSOCIATION_QUERY, COMPOUND_QUERY, DIAGNOSTIC_QUERY, COMPARISON_QUERY, OPERATIONAL_QUERYï¼
- sub_intent: åæå¾ï¼å¦ SIMPLE_INSTANCE, ASSOC_HIERARCHY çï¼
- complexity: å¤æåº¦ç级ï¼L1-L5ï¼
- business_scenario: ä¸å¡åºæ¯
- confidence: 置信度
å¦ç¨æ·ä¿¡æ¯æ¨¡ç³ï¼å¯è¿ä¸æ¥è¯¢é®æ¾æ¸ ã
Step 2: å®ä½æ½å
读å å®ä½ç¥è¯åº.mdï¼è¯å«äºèµæºå®ä½ï¼
- primary_entity: 主æ¥è¯¢ç®æ èµæº
- target_entities: å ¶ä»ç¸å ³èµæº
- ambiguous_entities: 模ç³å®ä½åéï¼éæ¾æ¸ ï¼
- filters: è¿æ»¤æ¡ä»¶ï¼ç¶æãæ ç¾çï¼
Step 3: å ³ç³»è¯å«
读å å ³ç³»ç¥è¯åº.mdï¼å»ºç«èµæºå ³èï¼
- relations: æ¾å¼å ³ç³»å表
- relationship_path: å ³ç³»é¾æ¡
- join_conditions: APIå ³èé®
- inferred_relations: éå«å ³ç³»
Step 4: æ§è¡è®¡åçæ
读å APIæä½æ å°åº.mdï¼çæ CLI å½ä»¤ï¼
- execution_strategy: æ§è¡çç¥ï¼SEQUENTIAL, PARALLEL, CACHE_FIRSTï¼
- cli_commands: CLIå½ä»¤å表ï¼å«commandãparametersãdepends_onãoutput_processingï¼
- command: å½ä»¤æ°ç»æ ¼å¼ï¼å¦
["ecs", "DescribeInstances"]ï¼ä¸å å« “aliyun” åç¼ï¼ - tid: ä»»å¡IDï¼ä» 0 å¼å§é¡ºåºåé
- command: å½ä»¤æ°ç»æ ¼å¼ï¼å¦
- data_flow: æ°æ®æµè½¬å ³ç³»
- estimated_time: é¢ä¼°æ¶é´
- prerequisites: åææ¡ä»¶
Step 5: è¾åºæ ¡éª
ä½¿ç¨ scripts/validate_json.py 对è¾åº JSON è¿è¡ Pydantic éªè¯ï¼
- éªè¯å 容: JSON ç»æå®æ´æ§ãåæ®µç±»åãå¿ å¡«åæ®µãæ°å¼èå´
- éªè¯å¤±è´¥å¤ç: 妿éªè¯å¤±è´¥ï¼è¿å Step 4 éæ°çææ§è¡è®¡å
- å¾ªç¯æºå¶: æç»éªè¯ç´å°è¾åºç¬¦åè§èï¼ç¡®ä¿æç»è¾åºä¸ºæ£ç¡®æ ¼å¼ç JSON
è¿è¡éªè¯ï¼
python3 scripts/validate_json.py your_output.json
æä½ä¸ºåºä½¿ç¨ï¼
from validate_json import validate_json_output
is_valid, message = validate_json_output(your_json_dict)
è¾åºæ ¼å¼
ä» è¾åº JSON æ ¼å¼ï¼å å«ä»¥ä¸ç»æï¼
{
"intent_core": {
"primary_intent": "ASSOCIATION_QUERY",
"sub_intent": "ASSOC_HIERARCHICAL",
"complexity": "L3",
"business_scenario": "ç产é¨ç½²",
"confidence": 0.88
},
"entities": {
"primary_entity": {
"service": "rds",
"resource_type": "instance",
"identifier_type": "tag",
"identifier_value": "role:master",
"original_expression": "çäº§æ°æ®åºé群"
}
},
"relationships": {
"relations": [
{
"type": "PART_OF_CLUSTER",
"source": "master_instance",
"target": "readonly_instances"
}
],
"relationship_path": ["RDS主å®ä¾", "RDSåªè¯»å®ä¾"]
},
"execution": {
"execution_strategy": "SEQUENTIAL",
"cli_commands": [
{
"command": ["rds", "DescribeDBInstances"],
"parameters": {
"RegionId": "cn-hangzhou",
"Tags": "[{\"key\":\"env\", \"value\":\"prod\"}]"
},
"tid": 0
},
{
"command": ["rds", "DescribeDBInstanceAttribute"],
"parameters": {
"DBInstanceId": "$.DBInstances.DBInstance[0].DBInstanceId"
},
"tid": 1,
"depends_on": [0],
"output_processing": "jq '.Items.DBInstanceAttribute[] | select(.Role == \"ReadOnly\")'"
}
]
}
}
å¸¸è§æ¥è¯¢ç¤ºä¾
| ç¨æ·æ¥è¯¢ | 主æå¾ | åæå¾ |
|---|---|---|
| “æçECSå®ä¾æåªäº” | SIMPLE_QUERY | SIMPLE_INSTANCE |
| “ECS i-123æè½½äºåªäºç£ç” | ASSOCIATION_QUERY | ASSOC_DIRECT |
| “VPC vpc-xxxä¸çææèµæº” | ASSOCIATION_QUERY | ASSOC_HIERARCHY |
| “ç产ç¯å¢æææ°æ®åº” | COMPOUND_QUERY | COMPOUND_CONDITIONAL |
| “æ£æ¥å®å ¨ç»æ¯å¦å®å ¨” | DIAGNOSTIC_QUERY | DIAG_SECURITY |
| “对æ¯çäº§åæµè¯ç¯å¢” | COMPARISON_QUERY | COMPARE_CONFIG |
æ¯æçé¿éäºæå¡
- 计ç®: ECS, FC, ACK
- æ°æ®åº: RDS, Redis, MongoDB, PolarDB
- ç½ç»: VPC, VSwitch, EIP, SLB, ALB
- åå¨: OSS, NAS
- æ¶æ¯: RocketMQ, Kafka
- çæ§: SLS, CMS
- å®å ¨: WAF, DDoS
- å ¶ä»: DNS, CDN
宿´æå¡åè¡¨è¯¦è§ å®ä½ç¥è¯åº.mdã
æ§è¡çç¥éæ©
- SEQUENTIAL: åå¨ä¾èµå ³ç³»ï¼éé¡ºåºæ§è¡
- PARALLEL: æ ä¾èµçç¬ç«æ¥è¯¢ï¼å¯å¹¶è¡
- CACHE_FIRST: é夿¥è¯¢ç¸åèµæºï¼ä¼å 使ç¨ç¼å
- BATCH: 大éèµæºæ¥è¯¢ï¼å页å¤ç