agent-define-skill
用途: 定义 Agent(Subagent)的职责、擅长领域和配置
输入: Skills 列表、Workflows 列表、系统需求
输出: Agent 定义文件(.md)
核心原则
- •职责明确 - Agent 的职责要清晰
- •技能匹配 - Agent 擅长的 Skills 要与职责匹配
- •领域专精 - 每个 Agent 专注于特定领域
- •可协作 - Agent 之间可以通过 handoff 协作
- •适度数量 - 不要创建过多 Agent
输入格式
yaml
input:
system_info:
name: string # 系统名称
domain: string # 领域
purpose: string # 系统目标
skills: # 可用的 Skills
- name: string
purpose: string
complexity: string
workflows: # Workflows 列表
- name: string
purpose: string
main_skills: array # 主要使用的 Skills
requirements:
collaboration_needed: boolean # 是否需要多 Agent 协作
specialization_level: string # 专业化程度(low/medium/high)
输出格式
yaml
output:
agents: # Agent 列表
- name: string # Agent 名称
role: string # 角色描述
responsibilities: array # 职责列表
skills: array # 擅长的 Skills
workflows: array # 负责的 Workflows
personality: string # 性格特点(可选)
# Agent 文件内容
file_content: string # 完整的 .md 文件内容
执行逻辑
1. 分析系统需求
确定是否需要多个 Agent:
python
def should_create_multiple_agents(system_info, skills, workflows):
"""
判断是否需要创建多个 Agent
"""
# 简单系统:1 个 Agent
if len(skills) <= 5 and len(workflows) <= 3:
return False
# 复杂系统但领域单一:1 个 Agent
if system_info.specialization_level == "low":
return False
# 多领域系统:多个 Agent
skill_domains = identify_skill_domains(skills)
if len(skill_domains) >= 2:
return True
return False
2. 识别领域和角色
将 Skills 和 Workflows 按领域分组:
python
def identify_domains(skills, workflows):
"""
识别不同的领域
"""
# 健康管理系统示例
domains = {
"analysis": [], # 分析类
"reporting": [], # 报告类
"data_management": [] # 数据管理类
}
for skill in skills:
if "analysis" in skill.name or "assess" in skill.name:
domains["analysis"].append(skill)
elif "report" in skill.name or "review" in skill.name:
domains["reporting"].append(skill)
elif "collect" in skill.name or "data" in skill.name:
domains["data_management"].append(skill)
return domains
3. 为每个领域创建 Agent
python
def create_agent_for_domain(domain_name, skills, workflows, system_info):
"""
为特定领域创建 Agent
"""
# 健康管理系统 - 分析领域示例
if domain_name == "analysis":
return {
"name": "health-advisor",
"role": "健康顾问",
"responsibilities": [
"分析体检报告",
"评估健康风险",
"追踪健康指标",
"提供健康建议"
],
"skills": [
"checkup-analysis-skill",
"health-indicators-skill",
"risk-assessment-skill"
],
"workflows": [
"checkup-analysis",
"daily-check"
]
}
4. 生成 Agent 文件
Agent 文件格式(基于 Claude Code Subagent 规范):
markdown
# Agent Name **Role**: <简短描述> --- ## Responsibilities <职责列表> --- ## Skills <擅长的 Skills 列表及说明> --- ## Working Style <工作风格、性格特点> --- ## Collaboration <与其他 Agent 如何协作>
Agent 模板库
模板 1: 单一通用 Agent
适用于简单系统(<= 5 Skills, <= 3 Workflows)
markdown
# system-assistant **Role**: 系统助手 - 负责系统的所有任务 --- ## Responsibilities - 执行所有 Workflows - 使用所有 Skills - 与用户交互 --- ## Skills - skill-1 - skill-2 - skill-3 - ... --- ## Working Style 全能型助手,什么都能做。 --- ## Collaboration 单一 Agent,不需要协作。
模板 2: 专业化 Agent(健康顾问)
适用于需要专业知识的领域
markdown
# health-advisor **Role**: 健康顾问 - 分析健康数据,提供专业建议 --- ## Responsibilities - 分析体检报告,提取关键指标和异常项 - 评估健康风险,识别潜在问题 - 追踪健康指标趋势,发现变化 - 提供个性化的健康建议 --- ## Skills 擅长以下 Skills: ### 1. checkup-analysis-skill 分析体检报告,识别异常指标 ### 2. health-indicators-skill 追踪和分析每日健康指标 ### 3. risk-assessment-skill 评估健康风险,预警潜在问题 ### 4. recommendation-skill 基于分析结果,生成健康建议 --- ## Working Style - **专业**: 具有医学知识背景,能理解各种健康指标 - **细致**: 仔细分析每个数据点,不遗漏异常 - **关怀**: 以用户健康为第一优先级,提供温暖的建议 - **循证**: 所有建议都基于医学证据和标准 --- ## Collaboration - **与数据管理员协作**: 接收整理好的健康数据 - **与报告生成器协作**: 提供分析结果用于生成报告 - **与用户交互**: 直接解答用户关于健康的疑问 --- ## Knowledge Base - 常见健康指标的正常范围 - 体检项目的临床意义 - 常见慢性疾病的风险因素 - 健康生活方式建议 --- ## Limitations - 不能替代医生诊断 - 不能开具处方 - 遇到严重异常时,建议用户就医
模板 3: 协作型 Agent(数据管理员)
适用于需要多 Agent 协作的系统
markdown
# data-manager **Role**: 数据管理员 - 负责数据收集、整理和存储 --- ## Responsibilities - 收集来自不同源的健康数据 - 验证数据完整性和准确性 - 整理数据为标准格式 - 存储数据到正确的位置 --- ## Skills 擅长以下 Skills: ### 1. data-collect-skill 从各种源收集数据(文件、API、用户输入) ### 2. data-validate-skill 验证数据的完整性和准确性 ### 3. data-transform-skill 转换数据为标准格式 --- ## Working Style - **细心**: 不遗漏任何数据点 - **严谨**: 确保数据准确无误 - **有序**: 数据存储井井有条 - **高效**: 快速处理大量数据 --- ## Collaboration ### Handoff to health-advisor
任务: 分析今日健康数据 输入:
- •data/indicators/2026-01-19.json
- •data/profile/profile.json 状态: 数据已收集和验证
code
### Receive from external-data-fetcher
任务: 获取体检报告 输出:
- •data/checkups/raw/2025-annual.pdf
code
--- ## Data Standards - 所有日期使用 ISO 8601 格式 - 所有数值保留 2 位小数 - 所有文件使用 UTF-8 编码 - JSON 文件使用 2 空格缩进
示例
输入: 健康管理系统
yaml
system_info:
name: health-system
domain: health
purpose: 预防疾病,追踪健康指标
skills:
- name: checkup-analysis-skill
purpose: 分析体检报告
complexity: complex
- name: health-indicators-skill
purpose: 分析每日指标
complexity: medium
- name: risk-assessment-skill
purpose: 评估健康风险
complexity: medium
- name: data-collect-skill
purpose: 收集数据
complexity: simple
- name: daily-review-skill
purpose: 生成每日总结
complexity: simple
- name: weekly-report-skill
purpose: 生成每周报告
complexity: medium
workflows:
- name: daily-check
purpose: 每日健康检查
main_skills:
- data-collect-skill
- health-indicators-skill
- daily-review-skill
- name: checkup-analysis
purpose: 体检报告分析
main_skills:
- checkup-analysis-skill
- risk-assessment-skill
requirements:
collaboration_needed: false
specialization_level: medium
输出: 单个专业化 Agent
yaml
agents:
- name: health-advisor
role: 健康顾问
responsibilities:
- 分析体检报告,提取关键指标和异常项
- 评估健康风险,识别潜在问题
- 追踪健康指标趋势,发现变化
- 生成每日健康总结和每周报告
- 提供个性化的健康建议
skills:
- checkup-analysis-skill # 复杂
- health-indicators-skill # 中等
- risk-assessment-skill # 中等
- daily-review-skill # 简单
- weekly-report-skill # 中等
workflows:
- daily-check
- checkup-analysis
personality: 专业、细致、关怀
file_content: |
# health-advisor
**Role**: 健康顾问 - 分析健康数据,提供专业建议
[完整内容见上面的模板 2]
设计决策指南
何时创建单个 Agent?
适用场景:
- •简单系统(<= 5 Skills)
- •领域单一
- •不需要专业化分工
优点:
- •简单
- •无协作开销
- •易于理解
何时创建多个 Agent?
适用场景:
- •复杂系统(> 10 Skills)
- •多个明确的领域
- •需要专业化分工
优点:
- •职责清晰
- •专业化
- •可并行工作
缺点:
- •需要协作机制
- •复杂度增加
Agent 数量建议
| 系统规模 | Skills 数量 | 建议 Agent 数量 |
|---|---|---|
| 小型 | 1-5 | 1 个 |
| 中型 | 6-10 | 1-2 个 |
| 大型 | 11-20 | 2-3 个 |
| 超大型 | 20+ | 3-5 个 |
原则: 宁少勿多,从 1 个开始,需要时再拆分
Agent 命名规范
名称格式
- •使用 kebab-case
- •名词或角色名
- •简洁明了
示例:
- •✅
health-advisor - •✅
data-manager - •✅
report-generator - •❌
Agent1 - •❌
my_agent
角色描述
- •1-2 个词
- •说明职责
- •易于理解
示例:
- •✅ "健康顾问 - 分析健康数据,提供专业建议"
- •✅ "数据管理员 - 负责数据收集和整理"
- •❌ "Agent that does stuff"
评价标准
见 criteria.md
实现注意事项
1. Skills 分配合理
每个 Agent 的 Skills 应该:
- •相关性强(都属于同一领域)
- •覆盖完整(该领域的所有 Skills)
- •数量适中(3-8 个)
2. 职责不重叠
多个 Agent 的职责应该:
- •互不重叠
- •边界清晰
- •互补完整
3. 协作机制清晰
如果有多个 Agent:
- •定义清晰的 handoff 流程
- •说明何时协作
- •说明如何协作
4. 性格和风格
可以给 Agent 定义性格:
- •专业型(健康顾问、财务分析师)
- •效率型(数据管理员、自动化助手)
- •创意型(内容创作者、设计师)
常见模式
模式 1: 单一全能 Agent
code
[所有 Skills] → single-agent
模式 2: 分析 + 执行
code
analyzer-agent → [分析类 Skills] executor-agent → [执行类 Skills]
模式 3: 前台 + 后台
code
frontend-agent → [与用户交互] backend-agent → [数据处理]
模式 4: 领域专家团队
code
domain-expert-1 → [领域 A Skills] domain-expert-2 → [领域 B Skills] coordinator → [协调]
版本历史
- •v1.0.0 (2026-01-19): 初始版本