教程|arXiv 2606.07412 Socratic-SWE 思路:让 Agent 学会『技能』
arXiv 2606.07412 的 Socratic-SWE 提出了 Agent 自学习的方案.本教程演示企业内部落地.
核心思想
- Agent 跑大量任务,每条存完整轨迹
- 用 LLM 从轨迹中提炼可复用技能
- 新任务来时先查技能库,按技能执行
实现: 技能提炼
def distill_skill(trajectory):
prompt = "[分析任务轨迹并提炼技能]
" + trajectory
skill = llm_call(prompt)
db.skills.insert({
"name": skill["name"],
"trigger": skill["trigger"],
"steps": skill["steps"],
"warnings": skill["warnings"],
"usage_count": 0,
})
return skill
实现: 技能应用
def find_relevant_skills(task, top_k=3):
task_emb = embed(task)
skill_embs = [(s, embed(s.trigger)) for s in db.skills.all()]
sims = [(s, cosine(task_emb, s_emb)) for s, s_emb in skill_embs]
sims.sort(key=lambda x: -x[1])
return sims[:top_k]
def run_with_skills(task):
skills = find_relevant_skills(task)
prompt = "[任务] " + task + " [相关技能] " + str(skills)
return agent_run(prompt)
技能库管理
- 定期蒸馏:每周一次,从本周轨迹
- 去重/合并:相似技能合并
- 评分:使用次数 + 成功率
- 版本控制:技能可回滚
企业内部落地
- 团队内部私有技能库,3 个月后开放成社区
- 技能脱敏,不泄露业务逻辑
- 定期 review,确保技能质量
- 和 arXiv 2606.07500 SETA 结合,持续学习