ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

第06篇-斜杠命令详解-单技能调用与多技能堆叠

第06篇-斜杠命令详解-单技能调用与多技能堆叠 【Skills 系统从入门到精通】第 6 篇斜杠命令详解——单技能调用与多技能堆叠本篇你将学到斜杠命令的完整语法规则和参数传递方式多技能堆叠的用法、限制和解析规则文件路径安全机制为什么/tmp/file.pdf不会被吞不同场景下的技能调用最佳实践堆叠与 Skill Bundle 的选择策略读完本篇你将精确掌握斜杠命令的全部用法能够根据场景选择最合适的技能调用方式。一、单技能调用1.1 基本语法斜杠命令调用技能的基本语法/技能名 [可选指令文本]其中技能名技能的 name 字段值小写连字符[可选指令文本]传给技能的额外说明告诉 Agent 具体要做什么三种使用形态形态一仅加载技能不带指令/excalidrawAgent 加载 Excalidraw 技能后会询问你需要画什么。适用于你想先加载技能再通过对话描述需求的场景。形态二加载技能并带指令/excalidraw 画一个微服务架构图包含 API 网关、3 个微服务、1 个消息队列和 1 个数据库Agent 加载技能的同时收到了明确指令直接开始工作。这是最常用的形态。形态三加载技能并带复杂多行指令/github-code-review 审查最近一次提交重点关注 1. 是否有 SQL 注入风险 2. 密码是否做了哈希处理 3. API 接口是否都有权限校验指令可以是多行的Agent 会完整理解你的要求。1.2 技能名匹配规则斜杠命令中的技能名需要精确匹配 SKILL.md 中name字段的值。但有几个实用规则规则一连字符和下划线等价技能名使用连字符如code-review但输入时下划线也能匹配/code-review 审查代码 /code_review 审查代码 ← 同样有效规则二带分类路径的完整名如果一个技能的完整路径是software-development/tdd你可以用简短名或完整路径/tdd 编写测试 ← 简短名推荐 /software-development/tdd ← 完整路径不常用简短名在全局唯一时优先使用。如果存在同名技能不同分类下则需要用完整路径区分。1.3 指令文本的作用斜杠命令后面的指令文本不是参数——它不是结构化的输入。它是一条用户消息会和技能内容一起注入 Agent 的上下文。用户输入斜杠命令加指令文本Agent 收到的上下文技能内容SKILL.md 完整加载用户消息画一个登录流程图Agent 按技能指导执行用户要求这意味着指令文本可以是自然语言——不需要特定格式像和同事说话一样描述需求即可。Agent解析器用户Agent解析器用户/excalidraw 画一个登录流程图识别 excalidraw 为已安装技能技能加载请求 指令文本Level 1 加载技能全文按技能规范输出登录流程图二、多技能堆叠2.1 为什么需要堆叠有些任务需要多个技能协同。考虑这个场景你想为当前分支创建一个 PR并且希望确保代码经过了 TDD 流程和代码审查。这涉及三个技能test-driven-development确保代码有测试覆盖github-code-review执行代码审查github-pr-workflow创建 PR一种做法是依次调用三次/test-driven-development 确保测试覆盖 /github-code-review 审查代码 /github-pr-workflow 创建 PR但这样需要三轮对话每次都要等待上一轮完成。更高效的方式是一次性加载所有三个技能/test-driven-development /github-code-review /github-pr-workflow 为当前分支创建 PR确保测试通过和代码审查通过这就是多技能堆叠。2.2 堆叠语法在一条消息的开头连续放置多个/技能名token最后跟上指令文本/技能A /技能B /技能C [指令文本]所有在消息开头的/skill-nametoken 都会被识别为技能加载请求剩余的文本作为指令。实战示例一后端功能开发工作流/github-code-review /test-driven-development /github-pr-workflow 实现 #123 号 Issue——用户注册接口需要增加邮箱验证功能Agent 同时加载三个技能按照各自的流程协同工作先写测试、再实现功能、做代码审查、最后创建 PR。一条消息堆叠三技能test-driven-development先写测试实现功能代码github-code-review代码审查github-pr-workflow创建 PR实战示例二文档与研究工作流/arxiv /youtube-content 搜索关于 GRPO 强化学习训练的最新论文写一篇技术综述先搜索 arXiv 论文再结合 YouTube 视频内容最终产出综述文章。2.3 堆叠限制限制一最多 5 个技能一条消息中最多可以堆叠 5 个/技能名token。这是为了防止上下文过载——每个技能的完整内容都需要加载到上下文中。# 有效5个技能 /skill-a /skill-b /skill-c /skill-d /skill-e [指令] # 无效第6个不会被解析为技能 /skill-a /skill-b /skill-c /skill-d /skill-e /skill-f [指令] ↑ 从这里开始/skill-f 被当作普通文本如果确实需要超过 5 个技能同时工作应该使用 Skill Bundle第 9 篇详解。限制二技能必须已安装堆叠中引用的技能必须是已安装的。如果引用了不存在的技能该 token 会被当作普通文本处理。# 假设 skill-xyz 未安装 /skill-a /skill-xyz 完成任务 Agent 行为 - 加载 skill-a成功 - /skill-xyz 完成任务 被当作指令文本 - Agent 可能会提示 skill-xyz 不存在三、解析规则与路径安全3.1 解析规则详解斜杠命令的解析遵循明确的规则理解这些规则可以避免意外行为规则一从消息开头顺序扫描解析器从消息的第一个字符开始扫描。遇到/token格式时检查 token 是否是已安装的技能名。规则二遇到非技能 token 停止一旦遇到一个以/开头但不是已安装技能名的 token扫描停止。该 token 及其后的所有内容都作为指令文本。/excalidraw /not-a-skill 画架构图 解析结果 技能加载excalidraw 指令文本/not-a-skill 画架构图规则三非斜杠开头的文本终止技能扫描/github-code-review 请审查 /src/main.py 的安全性 解析结果 技能加载github-code-review 指令文本请审查 /src/main.py 的安全性/src/main.py虽然以/开头但它出现在指令文本中间前面有非斜杠文本所以不会被当作技能名解析。3.2 文件路径安全一个常见的担心是如果我的文件路径恰好和某个技能名一样怎么办答案是不会冲突。看这个例子/ocr-and-documents /tmp/scan.pdf 提取表格数据解析过程1. /ocr-and-documents → 匹配技能加载 2. /tmp/scan.pdf → tmp 不是已安装的技能名扫描停止 3. /tmp/scan.pdf 提取表格数据 → 作为指令文本/tmp/scan.pdf被安全地当作文件路径传递不会被误认为是技能调用。这是因为解析器在遇到tmp这个 token 时检查了已安装技能列表发现没有叫tmp的技能于是停止技能扫描。是否解析器从消息开头扫描token 是已安装技能名?识别为技能加载继续扫描下一个停止技能扫描该 token 及之后全部作为指令文本/tmp/scan.pdf 安全传递tmp 不是技能名3.3 安全机制总结输入格式解析结果原因/skill-a /skill-b text加载 skill-a skill-b指令为 “text”两个都是技能名/skill-a /not-skill text加载 skill-a指令为 “/not-skill text”not-skill 不是技能名终止扫描/skill-a text /skill-b加载 skill-a指令为 “text /skill-b”text 后的斜杠不触发技能解析/skill-a /tmp/file.txt加载 skill-a指令为 “/tmp/file.txt”tmp 不是技能名/not-skill text无技能加载“/not-skill text” 作为普通消息第一个 token 就不是技能名核心原则只在消息开头的连续斜杠 token 中做技能匹配一旦中断就不再恢复。四、调用策略与最佳实践4.1 何时用单技能 vs 多技能堆叠场景推荐方式原因任务只需要一个专业领域单技能简洁、上下文开销小任务涉及多个领域但有明确顺序多技能堆叠一次指令Agent 自动编排总是需要相同的几个技能组合Skill Bundle定义一次反复使用不确定需要哪个技能自然语言Agent 自动匹配是否单一领域多领域组合是否不确定有哪些如何调用技能知道确切技能名?斜杠命令最高效无歧义需要多个技能协同?单技能调用固定组合反复用?Skill Bundle斜杠堆叠 最多5个自然语言Agent 自动匹配4.2 指令文本写作技巧指令文本的质量直接影响技能执行效果。几个技巧技巧一明确输出期望# 好的指令 /excalidraw 画一个用户认证流程图输出 JSON 格式包含邮箱验证和手机验证两条分支 # 差的指令 /excalidraw 画个图技巧二提供约束条件# 好的指令 /github-code-review 审查 src/ 目录忽略测试文件重点关注安全问题 # 差的指令 /github-code-review 审查代码技巧三多技能堆叠时说明编排逻辑# 好的指令 /test-driven-development /github-code-review /github-pr-workflow 实现用户注册接口。先写测试TDD通过后做代码审查最后创建 PR 到 develop 分支 # 差的指令 /test-driven-development /github-code-review /github-pr-workflow 实现用户注册接口第一种方式明确告诉 Agent 三个技能的执行顺序和各自的任务Agent 能够更好地编排工作流。五、实战案例集5.1 案例一完整的功能开发流程/test-driven-development /github-pr-workflow 为 UserController 添加手机号登录功能 - 先编写测试用例覆盖正常登录和异常场景 - 实现功能代码 - 提交到 feature/phone-login 分支 - 创建 PR 到 develop 分支描述中包含测试覆盖说明5.2 案例二问题排查与修复/systematic-debugging /github-code-review 生产环境用户注册接口报 500 错误日志显示 NullPointerException。 按照系统化调试流程定位根因修复后做代码审查。5.3 案例三内容创作工作流/arxiv /youtube-content 研究 2024 年 LLM 强化学习训练GRPO/DPO/PPO的最新进展 搜索相关论文和视频写一篇 3000 字的技术综述本篇小结知识点核心内容基本语法/技能名 [指令文本]技能名精确匹配 name 字段三种形态仅加载无指令、加载指令、加载多行指令指令本质斜杠后的文本是一条用户消息和技能内容一起注入上下文多技能堆叠开头连续多个/skill-name最多 5 个解析规则从开头顺序扫描遇到非技能 token 立即停止路径安全/tmp/file.pdf不会被吞——tmp 不是技能名扫描自动终止调用策略单领域→单技能多领域→堆叠固定组合→Bundle不确定→自然语言指令技巧明确输出期望、提供约束、多技能时说明编排逻辑下篇预告下一篇我们将探讨另一种技能触发方式——自然语言触发。不是所有时候你都想手动输入斜杠命令有时候用自然语言描述需求更自然。我们将深入 Agent 如何从自然语言中判断需要哪个技能以及如何优化触发的准确性。如果本篇内容对你有帮助欢迎点赞收藏有任何疑问欢迎在评论区交流。
返回列表