Hermes Agent: Skills 技能系统

最后更新:2026-08-31

技能系统是 Hermes "自进化"的核心——它不只会用预设功能,还能学会新技能、自动改进已有技能,越用越强。

💡 提示:Skills 是 Hermes 独有的核心能力。与传统 Agent 不同,Hermes 的技能不是静态代码,而是可以自动创建、改进、组合的动态能力单元。

📋 前置知识:第6课 记忆系统

1. 你将学到

编号 内容
技能的概念与类型
/learn 命令教学
自动技能学习机制
技能文件结构与创建
技能组合与链式调用

2. 故事

(1) 痛点:重复操作,每次都要教

Bob 每次让 AI 审查代码,都要重复说:"检查类型安全、看有没有 XSS 漏洞、检查性能、看看测试覆盖率……"

(2) 解法:一次教学,永久记住

Alice 用 /learn 一次教会 Hermes:

BASH
/learn 当我让你审查代码时,永远检查以下5项:
1. 类型安全(TypeScript strict mode)
2. 安全漏洞(XSS、SQL注入)
3. 性能问题(N+1查询、内存泄漏)
4. 测试覆盖率
5. 代码风格一致性

→ ✅ Skill "code-review-checklist" 已创建!
→ 下次只需说"审查代码",Agent 自动执行全部5项。

3. 技能类型

(1) 技能分类

类型 来源 示例 可修改
内置技能 系统预装 web-search, code-review
学习技能 /learn 创建 my-code-style
自动技能 观察自动创建 frequent-pattern
插件技能 插件市场安装 jira-integration
组合技能 多技能组合 full-review

(2) 技能能力等级

Level 1: 简单指令(固定Prompt)
  → /learn 回答时用中文

Level 2: 条件技能(触发+动作)
  → /learn 当我提到"部署"时,检查CI/CD状态

Level 3: 工具技能(调用工具链)
  → /learn 审查PR时:读代码 → 跑测试 → 生成报告

Level 4: 组合技能(多技能编排)
  → /learn 完整发布流程:代码审查 + 测试 + 部署 + 通知

Level 5: 自进化技能(观察+改进)
  → Agent 自动优化技能参数和流程

4. /learn 命令

(1) 基础教学

BASH
# 简单偏好
/learn 回答代码问题时总是加上单元测试

# 条件触发
/learn 当我提到"日报"时,汇总今天的 Git commits

# 工具链
/learn 当我让你"搜索"时,先用 web-search 搜索,再用 summarize 总结

# 命名技能
/learn --name "react-review" 审查React组件时检查:props类型、hooks规则、性能优化

(2) 交互式教学

BASH
/learn --interactive

Agent: 我准备好学习了!请描述你想让我学会的技能。

me: 帮我做代码审查

Agent: 我理解你想让我做代码审查。为了创建准确的技能,请回答:
  1. 审查哪些语言的代码?→ Python, TypeScript
  2. 重点检查什么?→ 安全、性能、类型
  3. 输出什么格式?→ Markdown 报告

me: [回答问题]

Agent: ✅ Skill "code-review" 已创建!
  触发词: "审查代码", "review", "代码审查"
  动作: 读取代码 → 安全检查 → 性能检查 → 类型检查 → 生成报告

5. 自动技能学习

(1) 观察模式

Hermes 观察你的重复行为,自动建议创建技能:

BASH
# 你连续3次要求类似操作:
me: 帮我写个 FastAPI 路由,加上类型注解和文档
me: 再写一个路由,同样加类型和文档
me: 还有一个路由,老规矩

# Hermes 自动建议:
Agent: 💡 我注意到你3次要求相同的代码风格。
  是否创建技能 "fastapi-route-style"?
  内容:FastAPI 路由 + type hints + docstring + 错误处理
  
  /confirm 确认创建
  /dismiss 忽略

me: /confirm

Agent: ✅ Skill "fastapi-route-style" 已创建!

(2) 学习阈值配置

YAML
skills:
  auto_learn: true
  learn_threshold: 3        # 观察3次后建议
  auto_create: false         # 不自动创建,需要确认
  improve_existing: true     # 自动改进已有技能

6. 技能文件结构

(1) 技能文件

YAML
# ~/.hermes/skills/custom/react-component-review.yaml
name: "react-component-review"
description: "审查 React 组件的代码质量"
version: "1.0.0"
created: "2026-03-15"
author: "user"
triggers:
  - "审查组件"
  - "review component"
  - "组件检查"
actions:
  - type: "check"
    category: "type-safety"
    prompt: "检查 TypeScript 类型是否完整和正确"
  - type: "check"
    category: "accessibility"
    prompt: "检查 WCAG 2.1 可访问性"
  - type: "check"
    category: "performance"
    prompt: "检查 React 性能问题(重渲染、memo等)"
  - type: "tool"
    name: "code_execution"
    command: "npx eslint ${file_path}"
  - type: "generate"
    format: "markdown"
    template: "review-report"

(2) 手动创建技能

BASH
# 创建技能文件
hermes skill create --name "my-workflow" --interactive

# 或直接编写 YAML
cat > ~/.hermes/skills/custom/my-workflow.yaml << 'EOF'
name: "my-workflow"
description: "我的日常工作流"
triggers:
  - "开始工作"
  - "每日工作"
actions:
  - type: "message"
    content: "开始每日工作流"
  - type: "tool"
    name: "git_status"
  - type: "tool"
    name: "check_calendar"
  - type: "generate"
    content: "今日工作摘要"
EOF

# 加载新技能
hermes skill load my-workflow

7. 技能组合与链式调用

(1) 组合技能

YAML
# ~/.hermes/skills/custom/full-release.yaml
name: "full-release"
description: "完整的发布流程"
type: "composite"
skills:
  - name: "code-review"
  - name: "run-tests"
  - name: "check-security"
  - name: "deploy-staging"
  - name: "notify-team"
execution: "sequential"  # sequential / parallel / conditional

(2) 链式调用

BASH
# 手动链式调用
me: 审查这个组件,然后跑测试,如果通过就部署到staging

Agent: [执行链式调用]
  1. ⚡ code-review → 发现2个问题
  2. 🔧 修复问题 → 修复完成
  3. ⚡ code-review → 通过
  4. 🧪 run-tests → 全部通过
  5. 🚀 deploy-staging → 部署成功
  6. 📢 notify-team → 已通知团队

❓ 常见问题

Q 最多能创建多少技能?
A 无硬性限制。实际使用中 50-100 个技能完全没问题,检索基于语义,数量不影响性能。
Q 技能可以分享给别人吗?
A 可以。hermes skill export <name> 导出 YAML 文件,对方 hermes skill import 导入。
Q 自动学习会创建错误的技能吗?
A 需要确认才会创建(默认 auto_create: false)。Agent 只建议,不自动执行。
Q 技能和工具有什么区别?
A 工具是原子操作(读文件、搜索),技能是高层能力(代码审查),技能可以组合多个工具。
Q 如何删除技能?
A hermes skill delete <name>/skill delete <name>(对话中)。内置技能不可删除。
Q 技能支持版本管理吗?
A 支持。每次修改技能自动保存版本历史,可以回退。

📖 小节


📝 作业

  1. 基础题(难度⭐):用 /learn 创建一个简单技能(如"回答时加代码示例"),验证在新对话中生效。
  2. 进阶题(难度⭐⭐):创建一个包含3个步骤的工具技能,实现自动化工作流(如:搜索→总结→翻译)。
  3. 挑战题(难度⭐⭐⭐):设计一个自进化技能实验:连续5天使用相同模式,观察 Agent 是否自动建议创建技能,记录学习过程。
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏