第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 Config1.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 Configconfig.yaml 声明式管理自动提示未配置项加载时注入上下文二、config 字段结构2.1 声明方式在metadata.hermes.config下声明配置项metadata:hermes:config:-key:deploy.default_branchdescription:Default Git branch for deploymentsdefault:mainprompt:What is your default deployment branch?-key:deploy.output_dirdescription:Directory for deployment output filesdefault:~/deploymentsprompt: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.yaml的skills.config节中# ~/.hermes/config.yamlskills:config:deploy.default_branch:developdeploy.output_dir:/home/user/deploymentslog-analysis.default_path:/var/log/myapp3.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 directorymkdir-p${deploy.output_dir}### 3.3 hermes config migrate 当用户安装了新技能或技能更新了配置声明时hermes config migrate 会检测未配置的项并提示 bash hermes config migrateChecking 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 directorydefault:/var/logprompt:Where are your application logs stored?-key:log-analysis.max_linesdescription:Maximum lines to process in one passdefault:10000prompt:How many log lines to process at once?-key:log-analysis.timezonedescription:Timezone for log timestampsdefault:UTCprompt:What timezone are your logs in?---# Log Analysis## Procedure### Step 1: Navigate to log directorybash cd ${log-analysis.default_path}ls-lh*.logStep 2: Sample recent logs# Process the most recent N linestail-n${log-analysis.max_lines}app.log|grepERRORStep 3: Convert timezone if needed# If logs are not in UTC, convertTZ${log-analysis.timezone}date### 4.2 配置流程 首次使用时 bash hermes config migrateNew 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 编写、创建、验证的完整流程。如果本篇内容对你有帮助欢迎点赞收藏有任何疑问欢迎在评论区交流。
上一篇/下一篇内容由系统自动关联
返回资讯列表 →