news 2026/9/4 8:18:16

第19篇-Skill-Config-Settings-config.yaml中的Skill配置管理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
第19篇-Skill-Config-Settings-config.yaml中的Skill配置管理

【Skills 系统从入门到精通】第 19 篇:Skill Config Settings——config.yaml 中的 Skill 配置管理


本篇你将学到

  • Skill Config Settings 的定位:非密钥配置的声明式管理
  • metadata.hermes.config 字段的结构和各子字段含义
  • 配置存储位置和注入机制
  • hermes config migrate 自动提示机制
  • 实战:为技能声明自定义配置项并验证注入

读完本篇,你将掌握技能配置管理的完整方案,能够为技能声明非敏感的参数化配置。


一、为什么需要 Skill Config

1.1 场景

上一篇文章讲了 API Key 等敏感信息的声明方式。但技能还有一些非敏感配置需求:

  • 一个 Git 工作流技能需要知道默认分支名(main还是master
  • 一个部署技能需要知道部署目录路径
  • 一个日志分析技能需要知道日志文件的默认位置
  • 一个文档生成技能需要知道输出目录

这些信息不是敏感的(不需要加密),但需要个性化配置。把它们硬编码在技能中不够灵活——不同用户的配置不同。

1.2 三种方案的对比

方案做法问题
硬编码写死在 SKILL.md 中不灵活,换环境就要改技能文件
环境变量用 .env 存非敏感数据设计不当——.env 应该只放敏感信息
Skill Config声明在 config.yaml 中✅ 声明式、自动提示、注入到上下文

Skill Config Settings 是正确方案——它把非敏感配置放在 config.yaml 中,与敏感信息(.env)分离。

技能配置需求

硬编码在 SKILL.md
不灵活 换环境改文件

环境变量 .env
设计不当
.env 只应放敏感信息

Skill Config
config.yaml 声明式管理

自动提示未配置项

加载时注入上下文


二、config 字段结构

2.1 声明方式

metadata.hermes.config下声明配置项:

metadata:hermes:config:-key:deploy.default_branchdescription:"Default Git branch for deployments"default:"main"prompt:"What is your default deployment branch?"-key:deploy.output_dirdescription:"Directory for deployment output files"default:"~/deployments"prompt:"Where should deployment files be saved?"

2.2 子字段说明

字段必填说明
key配置键名,点分隔的命名空间格式
description推荐配置项的用途说明
default推荐默认值,用户不配置时使用
prompt推荐配置向导中显示的提示文字

2.3 命名规范

key 使用点分隔的命名空间格式:技能名.配置项

deploy.default_branch ← deploy 技能的默认分支配置 deploy.output_dir ← deploy 技能的输出目录 log-analysis.default_path ← log-analysis 技能的默认日志路径 weather.default_city ← weather 技能的默认城市

三、配置的存储与注入

3.1 存储位置

Skill Config 存储在~/.hermes/config.yamlskills.config节中:

# ~/.hermes/config.yamlskills:config:deploy.default_branch:"develop"deploy.output_dir:"/home/user/deployments"log-analysis.default_path:"/var/log/myapp"

3.2 自动注入机制

当技能加载时,它的配置值会自动注入到 Agent 上下文中。Agent 知道每个配置的当前值,可以直接使用。

Agent 上下文(技能加载后): [技能内容] SKILL.md 正文 [配置注入] deploy.default_branch = "develop" deploy.output_dir = "/home/user/deployments"

在技能正文中可以直接引用这些配置值:

Agent 上下文config.yaml技能加载器Agent 上下文config.yaml技能加载器deploy.default_branch 等配置正文直接用变量引用读取 skills.config 节配置键值对注入技能内容 + 配置值
## Procedure ### Step 1: Switch to default branch ```bash git checkout ${deploy.default_branch}

Step 2: Prepare output directory

mkdir-p${deploy.output_dir}
### 3.3 hermes config migrate 当用户安装了新技能或技能更新了配置声明时,`hermes config migrate` 会检测未配置的项并提示: ```bash hermes config migrate
Checking for unconfigured skill settings... New settings found: deploy.default_branch (default: "main") What is your default deployment branch? [main]: develop deploy.output_dir (default: "~/deployments") Where should deployment files be saved? [~/deployments]: /opt/deploy ✓ Settings saved to config.yaml

用户可以接受默认值或输入自定义值。

回车

输入

hermes config migrate

扫描技能配置声明

发现未配置项?

无需操作

逐项提示
显示默认值与说明

用户选择

采用默认值

使用自定义值

写入 config.yaml


四、实战:为日志分析技能添加配置

4.1 技能编写

---name:log-analysisdescription:Use when analyzing server logs. Error extraction,pattern matching,root cause identification.version:1.1.0metadata:hermes:tags:[devops,logging]category:devopsconfig:-key:log-analysis.default_pathdescription:"Default log file directory"default:"/var/log"prompt:"Where are your application logs stored?"-key:log-analysis.max_linesdescription:"Maximum lines to process in one pass"default:"10000"prompt:"How many log lines to process at once?"-key:log-analysis.timezonedescription:"Timezone for log timestamps"default:"UTC"prompt:"What timezone are your logs in?"---# Log Analysis## Procedure### Step 1: Navigate to log directory```bash cd ${log-analysis.default_path}ls-lh*.log

Step 2: Sample recent logs

# Process the most recent N linestail-n${log-analysis.max_lines}app.log|grep'ERROR'

Step 3: Convert timezone if needed

# If logs are not in UTC, convertTZ=${log-analysis.timezone}date
### 4.2 配置流程 首次使用时: ```bash hermes config migrate
New settings: log-analysis.default_path (default: "/var/log") Where are your application logs stored? /var/log/myapp log-analysis.max_lines (default: "10000") How many log lines to process at once? 5000 log-analysis.timezone (default: "UTC") What timezone are your logs in? Asia/Shanghai ✓ Settings saved.

4.3 验证注入

在会话中加载技能后,Agent 自动知道配置值:

用户:/log-analysis 分析最近的错误 Agent:(自动使用 /var/log/myapp 作为日志目录,5000 行作为上限)

用户不需要每次指定路径——配置自动注入了。


第四模块总结

至此,第四模块(条件激活与安全配置)的四篇全部完成:

第16篇
平台限定

第17篇
条件激活

第18篇
环境变量声明

第19篇
Skill Config

你现在掌握了技能的全部配置能力——从平台过滤到工具集条件、从敏感信息保护到非敏感配置管理。接下来的第五模块将进入全系列的核心实践环节——手把手教你编写自己的技能。


下篇预告

下一篇开始第五模块"编写自己的 Skills"。第 20 篇将手把手带你完成第一个实战技能——从需求分析到 SKILL.md 编写、创建、验证的完整流程。


如果本篇内容对你有帮助,欢迎点赞收藏!有任何疑问,欢迎在评论区交流。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/4 8:17:32

基于STM32与NRF24L01的无线温湿度采集系统设计全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/4 8:16:47

光流补帧技术:让FNF游戏视频从60帧到120帧的丝滑升级指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/4 8:15:44

IVD循环与自治度:构建可工程化多智能体系统的核心范式

最近在技术社区里,一个名为“范式:起源”的项目引起了不小的讨论。它的副标题“sense of wonder [IVD 13] AD(-10)”看起来像某种神秘的版本号或内部代号,让很多开发者第一眼感到困惑:这到底是一个新的编程框架、一个AI模型&#…

作者头像 李华
网站建设 2026/9/4 8:15:43

[论文分析]面向AI赋能SOAR系统鲁棒性评估的红队框架

A Red Teaming Framework for Evaluating Robustness of AI-enabled Security Orchestration, Automation, and Response Systems论文重点 本文提出了一种将大语言模型(LLM)与强化学习(RL)相结合的分层红队框架,用于评…

作者头像 李华
网站建设 2026/9/4 8:15:31

【2014-08-11】C++ Primer Plus 6th重读笔记:Array

[历史归档] 本文原发布于 cstriker1407.info 个人博客,内容为历史存档,仅供参考。 发布时间: 2014-08-11 | 标题:C Primer Plus 6th重读笔记:Array | 分类: 编程 / C &&…

作者头像 李华
网站建设 2026/9/4 8:15:01

i茅台自动预约系统:Docker化协议层模拟实践

简介:本资源是一款面向茅台爱好者与自动化技术实践者的i茅台App预约辅助工具,解决用户每日手动抢约耗时费力、易错过时段的痛点,适用于具备基础Docker和前端/后端开发能力的技术人员。压缩包共542个文件,涵盖209个Java后端逻辑文件…

作者头像 李华