200+个Agent Skill怎么管?L0-L4五层分类体系+YAML模板+Python工具链的开源治理方案
你的Agent项目膨胀到200个Skill时,"能跑"和"能管"是两回事。本文介绍一套开源治理框架——skill-framework,用五层分类模型、标准化模板和自动化工具链,让Agent技能从野蛮生长走向工程化运维。
一、问题:为什么需要Skill治理框架?
Agent生态正在重复微服务架构的老路——初期野蛮生长,后期失控。
典型症状:
| 症状 | 表现 | 根因 |
|---|---|---|
| 定位困难 | "那个查客户信用的Skill在哪?" | 无统一分级,技能扁平堆砌 |
| 依赖混乱 | 改一个原子Skill,3个场景Skill崩溃 | 依赖关系靠口碑传播,无显式声明 |
| 格式漂移 | 同一团队写的Skill,字段名、结构各不相同 | 无强制模板,约定靠自觉 |
| 上线事故 | 新Skill缺少安全审计直接上线 | 无质量门,缺少逐项检查清单 |
| 复用困境 | A项目写过的Skill,B项目不知道能复用 | 无行业蓝图,每次从零开始 |
这些问题在10个Skill时可以靠人记忆解决,到50个时需要文档补丁,到200+时——你需要一套工程化框架。
skill-framework 就是为此而生:https://github.com/yuzhaopeng-up/skill-framework
二、核心:L0-L4五层分类模型
整个框架的基石是一个五层分类模型。每一层有明确的职责边界和依赖方向——高层依赖低层,低层不感知高层。
┌─────────────────────────────────────┐
│ L4 多Agent层 Agent Team Orchestration │ ← 团队编排
├─────────────────────────────────────┤
│ L3 场景层 Business Composition │ ← 业务组合
├─────────────────────────────────────┤
│ L2 网关/路由层 Intent Routing │ ← 意图路由
├─────────────────────────────────────┤
│ L1 基础技能层 Atomic Skills │ ← 原子技能
├─────────────────────────────────────┤
│ L0 基础层 Infra Connectors │ ← DB/API连接
└─────────────────────────────────────┘
各层详解
| 层级 | 名称 | 职责 | 范围 | 典型示例 |
|---|---|---|---|---|
| L0 | 基础层 (Infrastructure) | 连接外部系统,封装数据源访问 | 数据库连接器、API客户端、文件读写 | mysql-connector、redis-client、oss-file-handler |
| L1 | 基础技能层 (Base Skill) | 原子操作,单一职责,可独立执行 | 信息提取、数据查询、报告生成、安全检查 | info-extractor、data-analyst、report-generator、security-guard |
| L2 | 网关/路由层 (Gateway) | 接收自然语言输入,识别意图,路由到对应L1 Skill | 意图识别、权限校验、查询分发 | nl2-query、l3-gw-01(数据查询网关) |
| L3 | 场景层 (Ceiling) | 编排多个L1/L2 Skill完成端到端业务流程 | 多Phase流水线、业务组合 | scoring-engine(商机评分)、evidence-chain(证据链分析) |
| L4 | 多Agent层 (Multi-Agent) | 启动独立子Agent团队,角色隔离并行协作 | 团队编排、任务调度 | agent-teams-orchestrator、l7-arkclaw-01(政企运营助手) |
关键约束:
- 单向依赖:L4 → L3 → L2 → L1 → L0,严格禁止反向依赖
- L1无状态:基础技能必须是纯函数式的,不持有会话状态
- L2有状态:网关层管理会话上下文和路由表
- L3编排不执行:场景层只做编排调度,具体执行下沉到L1
- L4隔离运行:每个子Agent有独立上下文,通过结构化JSON传递数据
这套模型的最大价值不是理论完备,而是将208个Skill归入唯一层级——当你需要定位某个Skill时,先确定层级,再按领域缩小范围,最后在10-20个候选中找到目标。
三、YAML模板:3套即拷即用的规范
skill-framework提供三个YAML模板,覆盖最常见的三种Skill形态:
| 模板 | 适用层级 | 文件 | 特点 |
|---|---|---|---|
| L1 Base Skill | L1 基础技能层 | templates/l1-base-skill.yaml |
单一职责,声明输入输出和触发词 |
| L2 Gateway Skill | L2 网关/路由层 | templates/l2-gateway-skill.yaml |
路由表+权限校验+下沉依赖声明 |
| L3 Ceiling Skill | L3 场景层 | templates/l3-ceiling-skill.yaml |
多Phase编排+结构化JSON传递 |
L1 Base Skill模板示例
# templates/l1-base-skill.yaml
skill_name: "" # 必填:技能名称,kebab-case
skill_level: L1 # 必填:固定为L1
version: "1.0.0" # 必填:语义化版本号
description: "" # 必填:一句话描述技能功能
trigger_keywords: [] # 必填:触发关键词列表
# - "关键词1"
# - "关键词2"
inputs: # 必填:输入参数定义
- name: "" # 参数名
type: "" # 类型:string/number/boolean/json/file
required: true # 是否必填
description: "" # 参数说明
outputs: # 必填:输出定义
- name: ""
type: ""
description: ""
dependencies: # 依赖声明(仅允许L0)
- skill_name: ""
version: ">=1.0.0"
usage: "" # 依赖用途说明
execution: # 执行规范
type: prompt # prompt | python | hybrid
timeout_seconds: 300 # 超时时间
retry_policy:
max_retries: 2
backoff: exponential
security: # 安全声明
data_access_scope: [] # 数据访问范围
sensitive_fields: [] # 敏感字段列表
audit_logging: true # 是否开启审计日志
quality: # 质量指标
min_accuracy: 0.85 # 最低准确率
test_cases: [] # 测试用例路径
字段设计哲学:
skill_level是强制字段,工具链用它做依赖合法性检查dependencies限制只能依赖同级或更低层,L1的依赖只能是L0security段是上线质量门的必查项,缺任何一项都会被skill-lint拦截quality段目前是声明式,后续版本将对接自动化测试框架
L2与L3模板的关键差异
L2 Gateway额外包含:
routing_table: # L2独有:路由表
- intent: "" # 用户意图
target_skill: "" # 路由目标Skill
confidence_threshold: 0.8 # 置信度阈值
permission_check: # L2独有:权限校验
enabled: true
whitelist: []
L3 Ceiling额外包含:
phases: # L3独有:多Phase编排
- phase: 1
name: ""
skill: "" # 调用的L1/L2 Skill
input_mapping: {
} # 输入映射
output_key: "" # 输出存入的Key
- phase: 2
name: ""
skill: ""
input_mapping: {
}
output_key: ""
orchestration: # L3独有:编排策略
mode: sequential # sequential | parallel | conditional
failure_policy: stop # stop | skip | retry
四、Python工具链:扫描→检查→补齐三步流水线
skill-framework内置3个Python工具,形成一条从发现到合规的自动化流水线:
inventory-scan ──→ skill-lint ──→ backfill-frontmatter
(扫描构建清单) (合规检查) (补齐前置信息)
工具1:inventory-scan — 扫描+构建清单
扫描指定目录下所有Skill,自动识别层级、提取元数据,生成统一清单。
# 基础用法:扫描当前项目所有Skill
python tools/inventory-scan.py --root ./skills --output ./output
# 带层级校验:扫描时自动检测层级标签是否合法
python tools/inventory-scan.py \
--root ./skills \
--output ./output \
--validate-levels
输出物:
unified_skill_inventory.json— 208个Skill的完整清单(结构化JSON)unified_skill_inventory.csv— 同一清单的表格格式(方便Excel筛选)skills_dependencies.json— 技能依赖图
inventory JSON结构示例:
{
"scan_timestamp": "2026-07-01T10:00:00Z",
"total_skills": 208,
"by_level": {
"L0": 12,
"L1": 86,
"L2": 24,
"L3": 58,
"L4": 28
},
"skills": [
{
"name": "info-extractor",
"level": "L1",
"version": "2.1.0",
"description": "从非结构化文本中提取结构化字段",
"trigger_keywords": ["信息提取", "提取字段", "结构化"],
"dependencies": ["mysql-connector@L0"],
"file_path": "skills/info-extractor/SKILL.md"
}
]
}
工具2:skill-lint — YAML合规检查
逐项检查Skill的YAML声明是否符合模板规范,输出违规报告。
# 检查单个Skill
python tools/skill-lint.py --target ./skills/info-extractor
# 批量检查整个项目
python tools/skill-lint.py --root ./skills --template-dir ./templates
# 严格模式:将Warning也视为Error
python tools/skill-lint.py --root ./skills --strict
检查规则示例:
| 规则ID | 级别 | 检查内容 |
|---|---|---|
L001 |
Error | skill_level必须是L0-L4之一 |
L002 |
Error | dependencies中的Skill层级必须低于当前Skill |
L003 |
Error | security段不能为空 |
L004 |
Warning | 建议为每个input添加description |
L005 |
Error | L3 Skill必须有phases段 |
L006 |
Warning | trigger_keywords建议不少于3个 |
输出示例:
[ERROR] L002: skills/scoring-engine/skill.yaml
→ dependency "data-analyst" is L1, same level as current skill (L3)
→ Suggestion: L3 skills should depend on L1/L2, not other L3 skills directly
[WARNING] L004: skills/info-extractor/skill.yaml
→ Input "raw_text" missing description
→ Suggestion: Add description field for better discoverability
Scan complete: 208 skills checked, 3 errors, 7 warnings
工具3:backfill-frontmatter — 补齐前置信息
对缺少YAML前置信息的Skill文件,自动提取SKILL.md内容并生成标准frontmatter。
# 扫描并补齐缺失的frontmatter
python tools/backfill-frontmatter.py --root ./skills --dry-run
# 确认无误后实际写入
python tools/backfill-frontmatter.py --root ./skills --apply
典型场景:团队早期直接写SKILL.md,没有填YAML模板。这个工具会:
- 读取SKILL.md的description和触发词
- 根据文件路径和内容推断skill_level
- 扫描import/require语句提取依赖
- 生成符合模板的frontmatter并插入文件头部
五、技能依赖图:skills_dependencies.json
依赖图是skill-framework的第二大数据资产(第一是技能清单),它显式声明了Skill之间的调用关系。
结构设计:
{
"version": "1.0.0",
"generated_at": "2026-07-01T10:00:00Z",
"nodes": [
{
"id": "info-extractor",
"level": "L1",
"group": "data-processing"
},
{
"id": "scoring-engine",
"level": "L3",
"group": "risk-management"
}
],
"edges": [
{
"from": "scoring-engine",
"to": "info-extractor",
"type": "phase-1",
"data_contract": "structured-json"
},
{
"from": "scoring-engine",
"to": "knowledge-rag",
"type": "phase-2",
"data_contract": "structured-json"
}
],
"orphan_nodes": ["unused-skill-demo"]
}
三大用途:
- 变更影响分析:修改
info-extractor时,查edges即可知道scoring-engine等下游受影响 - 死技能发现:
orphan_nodes列出无任何依赖关系的Skill,考虑删除或归档 - 层级违规检测:配合skill-lint使用,发现L1依赖L3的违规调用
六、质量门:从开发到上线的6步检查
skill-framework配套audit-checklist.md,定义了6步质量门流程。任何Skill上线前必须逐项通过:
| 步骤 | 检查项 | 负责人 | 工具支持 |
|---|---|---|---|
| 1. 结构合规 | YAML字段完整、层级正确 | 开发者 | skill-lint |
| 2. 依赖合法 | 依赖方向单向、无循环依赖 | 开发者 | inventory-scan --validate-levels |
| 3. 安全审计 | 数据范围最小化、敏感字段脱敏 | 安全审查员 | skill-lint L003 |
| 4. 集成测试 | 端到端流程验证、超时和重试测试 | 测试工程师 | 手动 + 自动化测试框架 |
| 5. 文档完备 | README、触发词示例、输入输出样例 | 开发者 | backfill-frontmatter --dry-run |
| 6. 上线审批 | 人工确认+审批记录归档 | 技术负责人 | 人工 |
实操命令序列:
# Step 1: 结构合规
python tools/skill-lint.py --root ./skills --strict
# Step 2: 依赖合法
python tools/inventory-scan.py --root ./skills --validate-levels
# Step 3: 安全审计(重点检查L003规则)
python tools/skill-lint.py --root ./skills --rule L003 --strict
# Step 4-5: 文档补齐
python tools/backfill-frontmatter.py --root ./skills --dry-run
# review dry-run output, then:
python tools/backfill-frontmatter.py --root ./skills --apply
# Step 6: 人工审批(查看检查报告,签字确认)
cat output/audit-report.md
七、4个行业垂直蓝图
框架内置4个行业蓝图,每个蓝图预定义了该行业的核心Skill组合和依赖关系:
| 行业 | 蓝图文件 | 核心Skill组合 | 特色组件 |
|---|---|---|---|
| 金融 | blueprints/finance.yaml |
风控评分、合规审查、投研分析、客户画像 | financial-ai-skills对接 |
| 电信 | blueprints/telecom.yaml |
投诉分析、装维调度、5G专网评估、网络根因定位 | teleagent-skills对接 |
| 医疗 | blueprints/healthcare.yaml |
病历提取、诊断辅助、用药审查、排班优化 | HIPAA合规检查Skill |
| 政府 | blueprints/government.yaml |
公文审查、政策解读、舆情分析、审批流程 | 红头文件解析Skill |
使用方式:
# 基于金融蓝图初始化项目
python tools/inventory-scan.py \
--blueprint blueprints/finance.yaml \
--init ./my-finance-project
蓝图会自动生成对应行业的Skill目录骨架、依赖关系声明和YAML模板预填充。
八、208个Skill完整清单速览
unified_skill_inventory.json收录208个Skill,按层级分布如下:
| 层级 | 数量 | 占比 | 代表性Skill |
|---|---|---|---|
| L0 | 12 | 5.8% | mysql-connector, redis-client, oss-handler |
| L1 | 86 | 41.3% | info-extractor, data-analyst, report-generator, security-guard, knowledge-rag |
| L2 | 24 | 11.5% | nl2-query, l3-gw-01, data-query-gateway |
| L3 | 58 | 27.9% | scoring-engine, evidence-chain, live-stream-script-system, contract-review |
| L4 | 28 | 13.5% | agent-teams-orchestrator, l7-arkclaw-01, auto-pilot |
清单同时以JSON和CSV两种格式提供——JSON用于程序化处理,CSV用于Excel筛选和人工评审。
九、快速上手
# 克隆仓库
git clone https://github.com/yuzhaopeng-up/skill-framework.git
cd skill-framework
# 安装依赖
pip install -r requirements.txt
# Step 1: 扫描你的Skill项目
python tools/inventory-scan.py --root /path/to/your/skills --output ./output
# Step 2: 合规检查
python tools/skill-lint.py --root /path/to/your/skills --template-dir ./templates
# Step 3: 补齐缺失信息
python tools/backfill-frontmatter.py --root /path/to/your/skills --dry-run
# 确认后实际写入
python tools/backfill-frontmatter.py --root /path/to/your/skills --apply
仓库结构:
skill-framework/
├── templates/ # 3个YAML模板
│ ├── l1-base-skill.yaml
│ ├── l2-gateway-skill.yaml
│ └── l3-ceiling-skill.yaml
├── tools/ # 3个Python工具
│ ├── inventory-scan.py
│ ├── skill-lint.py
│ └── backfill-frontmatter.py
├── blueprints/ # 4个行业蓝图
│ ├── finance.yaml
│ ├── telecom.yaml
│ ├── healthcare.yaml
│ └── government.yaml
├── data/ # 数据资产
│ ├── unified_skill_inventory.json
│ ├── unified_skill_inventory.csv
│ └── skills_dependencies.json
├── docs/
│ └── audit-checklist.md # 质量门检查清单
├── LICENSE # MIT
└── README.md
十、设计取舍说明
| 决策 | 选择 | 放弃的方案 | 理由 |
|---|---|---|---|
| 分类模型 | 5层 | 3层、7层 | 5层在粒度和复杂度之间取得平衡 |
| 模板格式 | YAML | JSON Schema、TOML | YAML可读性好,注释友好,Agent生态主流 |
| 依赖声明 | 静态文件 | 运行时动态发现 | 静态声明支持离线检查,安全可控 |
| 工具语言 | Python | Node.js | AI/数据团队Python渗透率更高 |
| 许可证 | MIT | Apache 2.0 | MIT最宽松,降低采纳门槛 |
Agent Skills开源生态
skill-framework不是一个孤立项目,而是Agent Skills开源生态的治理中枢。以下5个仓库协同覆盖从技能开发到行业落地的完整链路:
| 仓库 | 定位 | GitHub地址 |
|---|---|---|
| skill-framework | L0-L4分类体系+YAML模板+Python工具链 | https://github.com/yuzhaopeng-up/skill-framework |
| financial-ai-skills | 金融行业垂直Skill集(风控、合规、投研) | https://github.com/yuzhaopeng-up/financial-ai-skills |
| teleagent-skills | 电信行业垂直Skill集(装维、投诉、5G专网) | https://github.com/yuzhaopeng-up/teleagent-skills |
| agent-cluster-comm | 多Agent集群通信协议与编排引擎 | https://github.com/yuzhaopeng-up/agent-cluster-comm |
| fintech-h5-demos | 金融科技H5交互演示(课程/培训场景) | https://github.com/yuzhaopeng-up/fintech-h5-demos |
生态协作关系:
skill-framework定义标准和工具,其他仓库遵循其分类体系和模板规范financial-ai-skills和teleagent-skills是行业蓝图的两个实现实例agent-cluster-comm提供L4多Agent编排的通信协议,skill-framework的L4模板基于该协议fintech-h5-demos是前端展示层,将Skill执行结果可视化为交互式H5
License: MIT — 随便用,随便改,只求别删版权声明。
如果这套框架帮你理清了Skill治理的思路,欢迎给 https://github.com/yuzhaopeng-up/skill-framework 一个Star。