数字员工的Agent Skills快速蒸馏方法
这套方法可以转化为可复用的Agent Skill,让团队其他成员(包括初级工程师和AI Agent)都能以接近专家水平执行同类任务。4.工具先行:先封装常用工具(Jira API、Git操作、Playwright),再录制使用这些工具的过程。2.多视角录制:同一任务让不同专家录制,Agent可以学习"最优路径"和"多种可行方案"。1.不要追求完美录屏:真实工作中的"试错-修正"过程包含最宝贵的异常
·
一、核心方法论:四层递进式蒸馏
┌─────────────────────────────────────────┐
│ 第4层:Agent Skill(可执行) │
│ SKILL.md + Tools + Prompts │
├─────────────────────────────────────────┤
│ 第3层:结构化SOP(可理解) │
│ 步骤+决策点+异常处理+成功标准 │
├─────────────────────────────────────────┤
│ 第2层:语义层(可分析) │
│ 录屏解析:动作+界面+语音+意图 │
├─────────────────────────────────────────┤
│ 第1层:原始素材(可采集) │
│ 录屏+历史成果+邮件+聊天记录 │
└─────────────────────────────────────────┘
第一层:原始素材采集(高效捕获隐性知识)
方案A:录屏采集(推荐)
最佳实践 :
| 要素 | 操作要点 | 为什么重要 |
|---|---|---|
| 边做边说 | 口述当前步骤目的和决策理由 | AI提取意图,而非仅动作 |
| 展示错误处理 | 故意展示常见错误及修复 | 捕获异常处理模式 |
| 多视角录制 | 同一任务3-5人分别录制 | 捕获不同工作风格,Agent学习最优路径 |
| 关键帧标记 | 在决策点暂停说明 | 生成高质量SOP |
方案B:历史成果挖掘
# 从历史文档中提取技能的知识图谱方法
class HistoricalSkillExtractor:
def extract_from_sop(self, pdf_path: str) -> Skill:
"""
使用PDF Extractor Skill [^122^] 解析历史SOP
提取:目标、步骤、决策分支、工具、输出物
"""
# 1. 结构化提取(表格、流程图、关键步骤)
structured = PDFExtractor().parse(pdf_path)
# 2. 语义理解(步骤间依赖关系)
dependencies = LLMAnalyzer().extract_flow(structured)
# 3. 冲突检测(与现有技能对比)
conflicts = self.check_duplicates(dependencies)
return Skill.from_structured(structured, dependencies)
def extract_from_communication(self, email_threads: List[Email]):
"""
从邮件/聊天记录提取隐性知识
使用Skill Parser API [^125^] 提取协作模式
"""
# 提取:问题解决路径、决策依据、常见问答
pass
第二层:语义解析(录屏→结构化数据)
这是最关键的技术环节。参考 WONDERBREAD 研究项目的方法 :
# 基于WONDERBREAD的多模态解析流程
class ScreenRecordingParser:
"""
将录屏解析为:意图+动作轨迹+关键帧+SOP草稿
"""
def parse(self, video_path: str) -> ParsedWorkflow:
# 1. 视频分帧(按动作事件)
frames = self.extract_key_frames(video_path)
# 输出:[(timestamp, screenshot, action_type), ...]
# 2. 动作识别(计算机视觉+OCR)
actions = []
for frame in frames:
ui_elements = self.detect_ui_elements(frame) # 按钮、表单、菜单
text_content = self.ocr(frame) # 界面文字
cursor_action = self.track_cursor(frame) # 点击、输入、滚动
actions.append({
'timestamp': frame.timestamp,
'ui_elements': ui_elements,
'action': cursor_action,
'context': text_content
})
# 3. 语音转意图(如录屏含旁白)
if self.has_audio(video_path):
transcript = self.transcribe(video_path)
intent = self.extract_intent(transcript) # "我正在创建测试用例..."
else:
intent = self.infer_intent_from_actions(actions) # 从动作反推
# 4. 生成SOP草稿
sop = self.generate_sop(intent, actions)
return ParsedWorkflow(
intent=intent, # 目标描述
action_trace=actions, # 详细动作序列
key_frames=frames, # 关键截图
draft_sop=sop # 结构化SOP
)
def generate_sop(self, intent: str, actions: List[dict]) -> SOP:
"""
使用LLM将动作序列转化为可执行SOP
参考WONDERBREAD的SOP生成任务 [^117^]
"""
prompt = f"""
基于以下录屏解析结果,生成标准SOP:
目标:{intent}
动作序列:{[a['action'] for a in actions]}
要求:
1. 每个步骤包含:动作+界面元素+预期结果
2. 标注决策点(if/then)
3. 标注异常处理路径
4. 定义成功标准
格式:
## 目标
{intent}
## 前置条件
- [条件1]
## 步骤
1. [动作] → [界面元素] → [预期结果]
- 异常:如果[条件],则[处理]
## 成功标准
- [可验证的结果]
"""
return LLM.generate(prompt)
第三层:SOP精化(人机协同验证)
关键原则:AI生成初稿,人类专家验证并补充隐性知识
class SOPRefiner:
def refine(self, draft_sop: SOP, expert_review: str) -> RefinedSOP:
"""
专家反馈循环:
1. 专家标注:哪些步骤是"经验判断"(难以自动化)
2. 专家补充:异常情况、业务规则、质量检查点
3. 专家确认:工具参数、API端点、权限要求
"""
# 区分可自动化 vs 需人工判断
automation_analysis = self.analyze_automatability(draft_sop)
return RefinedSOP(
automated_steps=automation_analysis.auto,
human_decision_points=automation_analysis.human,
tools_required=self.extract_tools(draft_sop),
validation_criteria=expert_review.validation_points
)
SOP质量标准(参考Termo的Skill Extraction规范)
| 检查项 | 要求 | 为什么 |
|---|---|---|
| WHAT+WHEN+触发词 | 清晰描述做什么、何时做、触发条件 | Agent能自主判断调用时机 |
| >70%专家知识 | 非基础LLM已知的常识 | 确保Skill有独特价值 |
| <300行 | 保持原子性 | 便于组合和调试 |
| “When to Use” | 明确触发场景 | 避免误调用 |
| 代码示例 | 可执行片段 | 降低使用门槛 |
| NEVER Do | 反模式警示 | 防止常见错误 |
第四层:Agent Skill封装(可执行化)
最终输出为 SKILL.md 标准格式,兼容CrewAI、Claude Code等框架。
# Skill: 自动化测试用例生成
## Goal
基于PRD文档生成可执行的Playwright自动化测试脚本,覆盖核心业务流程和边界场景。
## Workflow
1. **需求解析**
- 输入:PRD文档(Markdown/PDF)
- 动作:提取功能点、用户故事、验收标准
- 工具:`PDFExtractor` + `LLMParser`
- 输出:结构化测试点列表
2. **风险评估** [决策点]
- IF 涉及支付/安全/合规 → 标记为高优先级,增加异常流覆盖
- IF 纯UI展示 → 标记为低优先级,仅覆盖主路径
- 工具:`RiskMatrix`(历史缺陷模式库)
3. **用例设计**
- 动作:为每个测试点生成BDD场景(Gherkin格式)
- 模板:Given/When/Then + 数据表
- 输出:`.feature`文件草稿
4. **代码生成**
- 动作:将BDD场景转为Playwright代码
- 约束:使用Page Object模式,添加注释说明业务意图
- 工具:`PlaywrightCodegen` + `CodeReviewAgent`
5. **验证与优化**
- 动作:静态检查(语法、最佳实践)
- 异常:如果检测到硬编码等待 → 改为显式断言
- 输出:可执行的`.spec.ts`文件
## Success Criteria
- [ ] 代码通过ESLint检查
- [ ] 包含至少3个边界场景(异常输入、空状态、超时)
- [ ] 注释说明每个测试的业务价值
- [ ] 不含有`waitForTimeout`等脆弱等待
## Tools Required
- `PDFExtractor`:解析PRD文档 [^122^]
- `RiskMatrix`:查询历史缺陷模式(RAG)
- `PlaywrightCodegen`:代码生成
- `CodeReviewAgent`:静态检查
## Never Do
- 生成无断言的测试(只操作不验证)
- 使用坐标点击(使用语义选择器)
- 硬编码测试数据(使用数据驱动)
## Examples
### 正常输入
```typescript
// 生成:用户登录成功流程
test('用户可使用有效凭证登录', async ({ page }) => {
const loginPage = new LoginPage(page);
await loginPage.goto();
await loginPage.login('valid_user', 'valid_pass');
await expect(page).toHaveURL('/dashboard');
});
二、完整实施流程图
┌─────────────────────────────────────────┐
│ 1. 录制阶段(员工执行日常任务) │
│ - 边做边说,展示决策过程 │
│ - 包含错误处理(隐性知识) │
│ - 多视角录制(3-5人同任务不同做法) │
└────────────────┬────────────────────────┘
↓
┌─────────────────────────────────────────┐
│ 2. AI解析阶段(自动化) │
│ - 视频→关键帧+动作轨迹 │
│ - 语音→意图+步骤说明 │
│ - 生成SOP草稿(结构化) │
└────────────────┬────────────────────────┘
↓
┌─────────────────────────────────────────┐
│ 3. 专家验证阶段(人机协同) │
│ - 补充隐性判断逻辑("这种情况下...") │
│ - 标注需人工决策的点 │
│ - 确认工具API和参数 │
└────────────────┬────────────────────────┘
↓
┌─────────────────────────────────────────┐
│ 4. 封装阶段(可执行化) │
│ - 生成SKILL.md(标准格式) │
│ - 开发对应Tools(Playwright/Git/Jira) │
│ - 集成到Agent框架(CrewAI/Claude Code) │
└────────────────┬────────────────────────┘
↓
┌─────────────────────────────────────────┐
│ 5. 运营阶段(持续进化) │
│ - 监控Agent执行,收集失败案例 │
│ - 定期回流:新录屏→更新Skill │
│ - 冲突检测:避免Skill重复或矛盾 │
└─────────────────────────────────────────┘
关键成功因素
1.不要追求完美录屏:真实工作中的"试错-修正"过程包含最宝贵的异常处理知识。
2.多视角录制:同一任务让不同专家录制,Agent可以学习"最优路径"和"多种可行方案"。
3.保持人工在回路:复杂判断点保留人类确认,而非完全自动化(参考WONDERBREAD的BPM四阶段模型)。
4.工具先行:先封装常用工具(Jira API、Git操作、Playwright),再录制使用这些工具的过程。
5.持续迭代:Skill不是一次生成,而是通过"执行→反馈→再录制"循环进化。
这套方法可以转化为可复用的Agent Skill,让团队其他成员(包括初级工程师和AI Agent)都能以接近专家水平执行同类任务。
更多推荐




所有评论(0)