--- title: 技能系统 description: Skill 以目录加 SKILL.md 承载可复用指令,元数据先行、正文按需读取,并可由 Agent 自行编辑优化。 --- ## Skill 的形态 一个 Skill 就是一个目录:内含一份 `SKILL.md`,可选附带一个 `icon.svg` 自定义图标。目录名即权威的 Skill 名,须匹配 `^[A-Za-z0-9_-]+$`;frontmatter 中的 `name` 以目录名为准。 frontmatter 字段: | 字段 | 说明 | | --- | --- | | `name` | Skill 名,与目录名一致 | | `description` | 英文单行描述,注入系统 Prompt | | `short_description` / `short_description_zh` | UI 短标签(卡片等紧凑位置用),不注入 Prompt | | `version` | 自然数版本号,默认 1 | | `updated` | 更新日期 | ```md --- name: my-skill description: One-line English description injected into the system prompt. short_description: Short UI label. short_description_zh: 简短的中文标签。 version: 1 updated: 2026-07-17 --- # My Skill 具体的步骤、边界与验收标准…… ``` 解析是容错的:只识别首个 `---` 块内的 `key: value` 标量行;`version` 不是自然数时回退为 1,`updated` 缺省为空。 ## 渐进式加载 Skill 采用「先索引、后正文」的设计:系统 Prompt 经 `{{SKILL_METADATA}}` 占位符只注入每个已安装 Skill 的元数据(name + description),并指示模型在任务匹配某个 Skill 时,先用 Shell 完整读取对应的 `SKILL.md`,再遵循执行。系统不设专门的 Skill 工具,读取正文就是一次 `read_file` 或 Shell 调用(见 [工具与审批](/tools))。 对话中也可以显式指定 Skill:此时消息以 `[use_skills]` 块开头,列出要使用的 Skill 名(重新渲染旧 Trace 时仍识别早期的 `` 形式)。 若消息只点名 Skill 而没有给出具体任务,模型会先询问需求再开始。 ## 安装与存放 已安装的 Skill 位于 Agent State 的 `agent_state/skills//`。文件即事实源:每次读取直接读文件、不设缓存,因此 Skill 天然可编辑。 - 内置 Agent `default_agent` 在初始化时安装完整 Skill 库; - 其他 Agent 按需安装:经 Web 界面的 Skill 库页,或经 SDK; - 安装即把库里的 `SKILL.md` 原样写入(含 frontmatter),目录内的 `icon.svg` 一并拷贝。 Skill 库以 npm 包 `@prismshadow/penguin-skills` 发布,tarball 直接携带原始 `skills/` 目录;运行时库内容的事实源同样是包内的 `skills//SKILL.md` 文件。 ## 内置 Skill 库 内置 Skill 按分组列出如下(分组清单见 `packages/skills/src/index.ts` 的 `SKILL_GROUPS`,新增 Skill 时以库目录为准): | 分组 | Skill | 说明 | | --- | --- | --- | | 办公效率 | `data-analysis` | 以有界的证据检查、显式的改答案决策、原生产物处理与最终输出校验完成数据分析任务 | | | `firecrawl` | 经 Firecrawl API 做网络搜索与页面抓取,产出干净的 Markdown | | | `bento-slides` | 制作与编辑 Bento 演示文稿:单文件 `.bento.html`、文档即 JSON,把素材映射到图表、morph 转场与状态页 | | 软件开发 | `web-design` | 生成网页与应用界面的 Penguin 视觉语言:设计令牌、组件配方、明暗主题与聊天布局 | | | `software-engineering` | 完成软件工程任务:调查与审查代码,以最小改动实现修复、特性与重构,验证改动并报告经过确认的结果 | | AI 应用开发 | `penguin-sdk` | 基于 SDK 构建 AI 与 RAG 应用:createSession/run 流式循环,外加带可溯源引用的完整检索配方 | | | `penguin-cli` | 用 penguin CLI 管理模型 API Key、默认模型与各 Agent 的 Vault 密钥 | | | `agenthub-models` | 经 `@prismshadow/agenthub` 调用模型 API:流式文本、图像生成、语音合成与 Embedding | | | `vllm` | 用 vLLM 部署与服务 LLM,提供 OpenAI 兼容端点,并为 Agent 负载启用工具调用 | | | `ollama` | 用 Ollama 部署与运行本地模型,把 OpenAI 兼容端点接入应用与 Agent | | | `llamafactory` | 用 LlamaFactory 微调 LLM:注册数据集、以 YAML 配置训练、合并 LoRA 适配器并部署产物 | | Agent 调优 | `agent-creation` | 根据需求创建或配置 Agent State,编写 AGENTS.md、设置身份信息并安装所需 Skill | | | `benchmark-design` | 为指定 Agent 设计并校准多 Case Benchmark,建立可追溯的 Formal Baseline | | | `agent-evaluation` | 内部叶子执行器:根据完整评测协议隔离执行并私密评分一个 Case Run | | | `agent-optimization` | 基于冻结 Benchmark 的完整当前基线改进指定 Agent | ## 编写与优化 - 手工安装:在 `agent_state/skills//` 下建目录并写入 `SKILL.md` 即可,系统组装系统 Prompt 时扫描 `skills/` 注入元数据;没有 `SKILL.md` 的目录不计为 Skill。 - 卸载即删除整个 `skills//` 目录,操作幂等。 - Agent 可以在任务中直接改写自己的 SKILL.md——配合 Benchmark 评测与优化形成闭环,见 [自我进化](/self-improvement)。