协作头脑风暴
brainstorming
在实现前澄清需求、探索设计选择,并形成清晰的开发方向。
byted-volcengine-topology-analyzer【开发与工程】基于已有拓扑数据回答资源影响面、上下游链路、业务归属和变更波及范围。只要用户在问某个节点或资源变更会影响什么应用、入口出口、上下游链路、归属业务,或者想梳理某个 ECS/CLB/EIP/安全组/VPC/子网/EBS 的依赖关系时,都应该使用这个 skill;即使用户没有明确提到 topology,也要主动触发。
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
这个 Skill 不是负责构建底层数据,而是消费已有拓扑数据,回答与影响面、归属关系、上下游链路和变更波及范围相关的问题。
sg-xxx、eip-xxx、clb-xxx、i-xxx、IP、资源名这个 Skill 默认消费由基础资产/拓扑构建流程沉淀出来的业务拓扑数据。
business_topologies/
- 结构化拓扑数据:`topology.json`
- 人工可读拓扑摘要:`topology.md`
- 当前图关系语义:
- `attached_to`:A 绑定到 B
- `has`:A 拥有 B
- `contains`:A 包含 B
- `belongs_to`:A 归属 B
如果用户没有显式指定 `--root`,脚本会优先在这两个默认目录里自动发现业务拓扑数据。
如果用户在问“实时状态”或“当前是否健康”,要明确提醒:这里回答的是基于静态拓扑数据的推断,不是运行时状态。
## 标准流程
### 1. 先提取查询要素
优先识别这些信息:
- 节点标识:资源 ID、IP、名称、关键词
- 业务范围:用户是否已经给出明确业务
- 问题类型:影响面、归属关系、上下游链路、入口出口、直接关联
- 变更动作:例如放开端口、删除规则、切换入口、修改子网
如果用户已经给了业务名,就在查询时带上 `--business`,减少歧义。
### 2. 先跑脚本拿结构化结果
优先使用脚本,不要直接凭肉眼扫 JSON:
```bash
python3 <byted-volcengine-topology-analyzer-skill>/scripts/analyze_topology.py \
--node "<node-id-or-keyword>" \
--output json
如果已知业务:
python3 <byted-volcengine-topology-analyzer-skill>/scripts/analyze_topology.py \
--business "<business>" \
--node "<node-id-or-keyword>" \
--output json
如果用户给出了变更描述:
python3 <byted-volcengine-topology-analyzer-skill>/scripts/analyze_topology.py \
--business "<business>" \
--node "<node-id-or-keyword>" \
--change "<change-description>" \
--output json
如果脚本返回多个匹配:
match_score 和 match_reasonsid:exact、public_ip:exact 这类高置信命中,可以以第一候选为主回答name:fuzzy 或 metadata:fuzzy,不要擅自选一个,先让用户确认topology.md在这些场景下补读对应业务下的 topology.md:
回答时区分这三层:
id 为主,避免实例名称重复导致误判name,但不要用 name 替代 id这个数据里未必显式存了“应用名”。因此:
EIP -> CLB/ALB -> server_group -> ECS 这类链路,就表述为“基于拓扑推断出的应用入口链路”security_group、subnet、vpc、ebs:
先找直接归属或挂载到它的 ECS,再继续向上追溯入口链路eip、clb、alb、natgateway、server_group:
直接向下找 ECSecs:
直接回溯它的上游入口链路,同时列出它所属的 security_group/subnet/vpc/ebs如果用户明确在问“做某个变更会怎样”,优先使用脚本返回的 change_assessment:
risk_level:作为变更风险等级summary_lines:作为简洁结论risk_reasons:作为为什么有风险validation_checklist:作为变更前后校验项rollback_suggestions:作为回滚建议不要把这些启发式风险提示说成“绝对事实”。要明确说这是基于当前静态拓扑和变更关键词的推断。
优先按这个顺序组织回答:
结论:
- 命中的节点是 ...
- 当前可确认直接影响到 ...
关联关系:
- 直接关联资源: ...
- 所属业务: ...
- 候选排序: 如果存在多命中,列出前 2~3 个候选及命中原因
影响链路:
- 链路 1: EIP -> CLB -> server_group -> ECS
- 链路 2: ...
变更风险:
- 风险等级: high / critical / ...
- 风险提示: ...
- 校验建议: ...
- 回滚建议: ...
判断说明:
- 这是基于当前静态拓扑数据的推断
- 如果要做变更前确认,建议继续核对运行时配置和白名单规则
用户:
安全组 sg-3vai4r386pnuo1w7k94e5s09v 如果放开 80 端口,会影响什么应用?
回答重点:
security_groupEIP -> CLB -> server_group -> ECS 或 EIP -> ECS用户:
14.103.24.61 这个入口 IP 背后挂了哪些资源?
回答重点:
EIP 或相关资源元数据用户:
i-yek807xukgk36d6jug0q 这个 ECS 属于哪个业务,和哪些网络资源有关?
回答重点:
用户:
帮我全局查一下名为 ECS 的节点,先按最可能的候选排序给我看。
回答重点: