# agent-define-skill **用途**: 定义 Agent(Subagent)的职责、擅长领域和配置 **输入**: Skills 列表、Workflows 列表、系统需求 **输出**: Agent 定义文件(.md) --- ## 核心原则 1. **职责明确** - Agent 的职责要清晰 2. **技能匹配** - Agent 擅长的 Skills 要与职责匹配 3. **领域专精** - 每个 Agent 专注于特定领域 4. **可协作** - Agent 之间可以通过 handoff 协作 5. **适度数量** - 不要创建过多 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 状态: 数据已收集和验证 ``` ### Receive from external-data-fetcher ``` 任务: 获取体检报告 输出: - data/checkups/raw/2025-annual.pdf ``` --- ## 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 ``` [所有 Skills] → single-agent ``` ### 模式 2: 分析 + 执行 ``` analyzer-agent → [分析类 Skills] executor-agent → [执行类 Skills] ``` ### 模式 3: 前台 + 后台 ``` frontend-agent → [与用户交互] backend-agent → [数据处理] ``` ### 模式 4: 领域专家团队 ``` domain-expert-1 → [领域 A Skills] domain-expert-2 → [领域 B Skills] coordinator → [协调] ``` --- ## 版本历史 - v1.0.0 (2026-01-19): 初始版本