用途
discovery-catalog 是一个只读的目录盘点技能,用于查看 Discovery 目录仓库里有什么内容:有哪些发布者、哪些智能体(agent)、哪些入门套件(starter kit),以及每个智能体下随附了哪些工具。它不会写入仓库或 Azure,可以反复安全运行。
主要能力
单个调度脚本 scripts/discovery-catalog.ps1 支持以下调用方式:
discovery-catalog publishers:列出 agents/ 与 starter-kits/ 下的所有发布者,并给出每个发布者的智能体数和入门套件数。discovery-catalog agents:列出目录中的所有智能体(每个智能体文件夹一行)。discovery-catalog agents list-tools:列出每个智能体及其 tools/ 文件夹下随附的工具。discovery-catalog starter-kits:列出所有入门套件(每个套件文件夹一行)。discovery-catalog <agent-name> describe:查看单个智能体的名称、发布者、版本、是否有工具和描述。discovery-catalog <starterkit-name> describe:查看单个入门套件的名称、发布者、版本、分类、智能体数量和描述。discovery-catalog <agent-name> list-tools:查看单个智能体的名称、发布者、版本、工具数量、工具列表和描述。
支持的过滤与输出参数:
-Format:Table(默认)、Markdown、Json、Plain。-Publisher:按发布者名称过滤(不区分大小写),适用于智能体和入门套件。-Tag:按 metadata.yaml 中的标签过滤智能体。-WithToolsOnly:只显示带 tools/ 文件夹的智能体。-WithoutToolsOnly:只显示缺少 tools/ 文件夹的智能体。
使用方式
推荐使用 PowerShell 7+(pwsh),在 Windows、macOS、Linux 上均可运行;Windows PowerShell 5.1 也能工作,但表格换行效果较差。典型调用:
pwsh -NoProfile -ExecutionPolicy Bypass -File .github/skills/discovery-catalog/scripts/discovery-catalog.ps1 agents
当用户以斜杠风格输入 /discovery-catalog publishers 等指令时,按对应参数调用调度器。正常目录查询使用 Table 格式,仅当用户明确要求可粘贴的 Markdown 表格时才用 Markdown;并在聊天回复中以 Markdown 表格呈现结果,同时保留计数锚点行(如 AGENT_COUNT=)。
目录结构与识别规则
目录采用扁平布局:智能体位于 agents/<agent-name>/,入门套件位于 starter-kits/<kit-name>/,智能体工具位于 agents/<agent>/tools/<tool-name>/。
- 含 agent.yaml 的文件夹视为智能体;含 kit.json 的文件夹视为入门套件;不含这些文件的文件夹(共享辅助目录、仅有 README 的目录)会被静默跳过。
agents/tmp/临时目录始终跳过。- 发布者与来源取自元数据而非文件夹位置:智能体读 metadata.yaml 的
publisher.name与publisher.party(1p / 3p);入门套件读 kit.json 的author.name与顶层party字段。缺失时发布者显示为 (unspecified)。
适用场景
想了解仓库中有哪些智能体、发布者、入门套件;查看某智能体随附的工具;按标签查找智能体(如 retrosynthesis);找出缺少工具的智能体;以及在调用 discovery-services-agent-deployer 前确认智能体文件夹的确切名称。
限制
- 完全只读,不写入仓库或 Azure。
- 需要 PowerShell 环境;推荐 PowerShell 7+ 以获得整齐的表格换行。
- 缺少 metadata.yaml 或 kit.json 无法解析的条目会被跳过或显示为空字段。
- 无效的参数组合会以非零退出码和友好提示结束(例如
agents foo、publishers list-tools)。 - 显示名称即扁平布局中的文件夹名称,文件夹名全局唯一,因此单个名称即可定位条目。