从静态助手到成长型代理
当前大多数 AI 助手停留在 "你问我答" 的单轮交互模式,每次对话都是信息孤岛。NousResearch 推出的 Hermes Agent 提出了一个截然不同的设计理念 ——"The agent that grows with you"(与你共同成长的代理)。
这不是营销话术,而是一套完整的技术实现:代理会在完成复杂任务后自动提取经验、封装为可复用的技能文档,并在后续对话中渐进式加载这些知识。用户纠正代理的行为时,这些反馈也会被纳入技能迭代。经过数周使用,代理会积累出一套高度个性化的工具库,形成独特的 "数字工作记忆"。
核心机制:程序化记忆与技能自创建
Hermes Agent 的适应性建立在 ** 程序化记忆(Procedural Memory)** 之上。当代理完成一个涉及 5 个以上工具调用的复杂任务,或在错误尝试后找到正确路径,或在用户纠正后改进方案时,系统会触发技能创建流程。
技能创建通过 skill_manage 工具完成,支持多种操作模式:
- create:从零创建新技能,需指定名称、完整 SKILL.md 内容、可选分类
- patch:针对性修复,通过
old_string/new_string进行精准替换,Token 效率最高 - edit:重大结构调整,替换整个 SKILL.md
- write_file/remove_file:管理技能的辅助文件(脚本、模板、参考资料)
这种设计让代理能够将一次性解决问题的经验转化为可复用的知识资产。例如,用户指导代理完成了一次复杂的 Kubernetes 部署排错后,代理可以自动生成 k8s-troubleshoot 技能,记录诊断步骤、常见错误模式及验证方法。
渐进式技能披露:控制 Token 消耗
技能系统采用 ** 三级渐进披露(Progressive Disclosure)** 策略,在功能丰富性与上下文成本之间取得平衡:
| 级别 | 调用方式 | 返回内容 | 典型 Token 消耗 |
|---|---|---|---|
| Level 0 | skills_list() |
技能名称、描述、分类的列表 | ~3K |
| Level 1 | skill_view(name) |
完整 SKILL.md 内容 + 元数据 | 因技能而异 |
| Level 2 | skill_view(name, path) |
特定引用文件(如脚本、模板) | 按需加载 |
代理仅在真正需要时才加载完整技能内容,避免在系统提示中堆砌大量可能用不到的知识。这种设计与传统 RAG 方案形成对比 —— 不是被动等待检索,而是主动决定何时加载何种知识。
SKILL.md 格式与目录结构
每个技能是一个目录,必须包含 SKILL.md 作为入口文件,可选包含 references/、templates/、scripts/、assets/ 子目录:
---
name: deploy-runbook
description: 生产环境部署手册——服务清单、回滚步骤、Slack 通知渠道
version: 1.0.0
platforms: [linux] # 可选:限制特定操作系统
metadata:
hermes:
tags: [deployment, runbook, production]
category: devops
requires_toolsets: [terminal]
---
# 部署手册
## 触发条件
当用户请求部署到生产环境时激活本技能。
## 操作流程
1. 检查预部署条件(数据库迁移状态、依赖服务健康)
2. 执行蓝绿部署
3. 验证新版本健康检查端点
4. 切换流量
5. 通知 Slack #deployments 频道
## 常见陷阱
- 忘记在部署前创建数据库备份点
- 健康检查超时设置过短导致误判失败
## 验证方法
通过 `curl https://api.example.com/health` 确认返回 200 状态码
技能存储在 ~/.hermes/skills/ 目录下,按分类组织。代理可以修改或删除任何技能,包括用户创建的、从 Hub 安装的,甚至是捆绑自带的技能。
技能生态:多源集成与信任分级
Hermes Agent 不局限于内置技能,而是构建了一个开放的技能生态系统,支持从多个来源安装技能:
官方源(official):随 Hermes 仓库维护,内置信任
skills.sh:Vercel 的公共技能目录,可搜索、检查详情后安装
Well-known 端点:遵循 /.well-known/skills/index.json 约定的网站直接发布技能
GitHub:直接安装 owner/repo/skills/skill-name 格式的技能
LobeHub:将 LobeHub 的代理条目转换为 Hermes 技能
browse.sh:Browserbase 的 200+ 网站自动化技能库
所有从 Hub 安装的技能都会经过安全扫描,检查数据外泄、提示注入、破坏性命令、供应链风险等。系统根据来源设置信任等级:
| 信任等级 | 来源 | 策略 |
|---|---|---|
| builtin | 随 Hermes 附带 | 始终信任 |
| official | 仓库 optional-skills/ |
内置信任,无第三方警告 |
| trusted | OpenAI、Anthropic、HuggingFace、NVIDIA 等官方仓库 | 比社区源更宽松 |
| community | 其他所有来源 | 非危险发现可用 --force 覆盖;dangerous 判定无法覆盖 |
技能组合与外部目录
对于经常一起使用的技能组,可以创建技能组合(Skill Bundle):
hermes bundles create backend-dev \
--skill github-code-review \
--skill test-driven-development \
--skill github-pr-workflow \
-d "后端功能开发——代码审查、测试驱动、PR 工作流"
之后只需输入 /backend-dev refactor the auth middleware,三个技能会同时加载,并附带组合中定义的额外指导指令。
团队还可以配置外部技能目录,让 Hermes 扫描共享的技能库:
# ~/.hermes/config.yaml
skills:
external_dirs:
- ~/.agents/skills
- /home/shared/team-skills
- ${SKILLS_REPO}/skills
外部技能与本地技能完全集成,出现在系统提示索引、skills_list、slash 命令中。若同名技能同时存在于本地和外部目录,本地版本优先。
部署考量与最佳实践
在生产环境中部署 Hermes Agent 时,需要关注以下配置要点:
记忆持久化:代理使用 SQLite FTS5 进行会话搜索,结合 LLM 摘要实现跨会话回忆。对于长期运行的部署,需确保 ~/.hermes/ 目录的持久化存储。
模型灵活性:通过 hermes model 可在 300+ 模型间切换,无需修改代码。支持 Nous Portal、OpenRouter、NVIDIA NIM、Kimi、Hugging Face 等多种后端。
安全隔离:技能中的脚本在沙箱环境中执行,环境变量通过声明式配置自动透传。敏感操作(如删除命令)可通过审批流程进行管控。
平台覆盖:同一代理实例可同时服务 CLI、Telegram、Discord、Slack、WhatsApp、Signal 等多个平台,用户在任何平台的对话历史都能被统一检索。
总结
Hermes Agent 的技能框架将 AI 代理从 "工具执行者" 重新定位为 "知识积累者"。通过程序化记忆、渐进式技能披露、开放生态集成三大支柱,它实现了一个真正随用户成长的自适应系统。对于需要长期协作、重复性任务较多的场景(如 DevOps 运维、数据分析、内容创作),这种 "越用越懂你" 的代理架构可能比通用大模型更具实用价值。
资料来源:
内容声明:本文无广告投放、无付费植入。
如有事实性问题,欢迎发送勘误至 i@hotdrydog.com。