Skip to main content

skill-discovery

使用 list_skills / read_skill / read_skill_file 动态发现与按需加载其他 skill 文档的元流程(渐进式披露 / progressive disclosure)。触发:Agent 遇到不熟悉场景需要判断该加载哪个 skill、需要查阅某 skill 的 references 子文件、Supervisor 想知道某 worker agent 可用 skill 清单。不触发:对应 skill 已被当前 agent 静态预载且内容足够。

معلومات المصدر

المستودع
aka-flashNight/cfn-rag-backend
آخر نشاط في المصدر
٢٣ أبريل ٢٠٢٦ في ١٦:٤٦
لغة SKILL.md المكتشفة
الصينية
النجوم
٤
التفرعات
٠

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
skill-discovery
description
使用 list_skills / read_skill / read_skill_file 动态发现与按需加载其他 skill 文档的元流程(渐进式披露 / progressive disclosure)。触发:Agent 遇到不熟悉场景需要判断该加载哪个 skill、需要查阅某 skill 的 references 子文件、Supervisor 想知道某 worker agent 可用 skill 清单。不触发:对应 skill 已被当前 agent 静态预载且内容足够。
# 技能发现与渐进式加载 **Anthropic 2026 Agent Skills 规范**把 skill 内容分为三级: | 级别 | 内容 | 默认加载方式 | | --- | --- | --- | | L1 Metadata | `name + description`(来自 SKILL.md frontmatter) | Agent 启动时**全部加载** | | L2 Body | SKILL.md 的 Markdown 正文 | 按需 `read_skill` | | L3 References | `references/*.md` 等子文件 | 按需 `read_skill_file` | 大多数情况,Worker Agent 的系统提示已经**静态预载了**其工作相关的 L2 Body(例如 TaskAgent 预载 task-publishing + task-bargaining)。只有当 Agent 遇到不熟悉场景或需要查细节(L3)时才动态调用本 skill 下的工具。 ## list_skills ```json {"category": "", "ui_hint": "正在浏览技能……"} ``` 返回: ```json {"skills": [ {"name": "task-publishing", "description": "...", "path": "services/skills/task-publishing"}, ... ]} ``` - `category` 可选:`task / query / mood / system / ""`(空串=全部)。 - 结果按字典序排。 - 适合 Supervisor 路由前快速了解全局能力地图。 ## read_skill ```json {"name": "task-publishing", "ui_hint": "正在阅读技能……"} ``` 返回: ```json { "name": "task-publishing", "description": "...", "body": "<完整 Markdown 正文>", "references": ["TASK_TYPES.md", "REWARD_RULES.md"] } ``` - 返回 L2 Body。如果 Body 很长,Agent 仅引用必要段落,**不要**把整段 body 复述给玩家。 - `references` 列出该 skill 目录下的 L3 文件相对名(供下一步 `read_skill_file` 使用)。 ## read_skill_file ```json {"skill": "task-publishing", "relative_path": "references/TASK_TYPES.md", "ui_hint": "正在查阅细则……"} ``` - `skill` = skill 名(如 `task-publishing`)。 - `relative_path` = 相对于该 skill 目录的路径,必须以 `references/` 开头。 - 后端会做**严格路径校验**:禁止 `..`、绝对路径、跨 skill 访问。 - 返回 `{"skill": "...", "path": "...", "content": "<文本>"}`。 ## 使用原则 1. **优先使用静态预载**。如果 skill 已经出现在系统提示里,不要再调用 read_skill 重复加载。 2. **不要遍历**。避免"list_skills → read_skill 全部 → 逐个 read_skill_file"的无目的扫描;这会浪费 token。 3. **按路径精确取**。读 L3 文件前先看 `read_skill` 返回的 `references` 清单,避免瞎猜路径。 4. **读后即用**。读出来的内容只用于本轮推理,不要把它写进最终对话输出给玩家。 ## 典型场景 - Supervisor 遇到"模糊请求"想快速判断走哪个 worker → `list_skills`(非必须,通常 Supervisor 自己的系统提示已含路由规则,本调用可省)。 - TaskAgent 忘了某任务类型规则 → `read_skill_file("task-publishing", "references/TASK_TYPES.md")`。 - 新增 skill 后验证生效 → 先 `list_skills` 看是否出现在清单中。
عرض على GitHub