Skip to Content
WASPWASP

技能

🎯

技能是面向任务的能力包,教会 Agent 如何完成特定类型的工作。基础 Agent 保持通用;技能在需要时提供专业化。

技能不仅仅是提示词。它是一个自包含的能力包,可以包含结构化指令、分步工作流、领域最佳实践、支撑资源和工具配置。技能按需加载——在任务需要时注入内容,否则不影响上下文。

技能包含什么

每个技能位于 skills/public/(或用户创建技能的 skills/custom/)下自己的子目录中。目录包含一个 SKILL.md 文件,定义技能的元数据、指令和工作流。

        • SKILL.md

SKILL.md 文件是技能的权威定义,由 skills/parser.py 解析以提取技能名称、描述、类别、指令以及任何依赖项或工具需求。

内置技能

DeerFlow 内置以下公共技能:

技能描述
deep-research带来源收集、交叉验证和结构化输出的多步骤研究
data-analysis数据探索、统计分析和洞察生成
chart-visualization从数据创建图表和可视化
ai-slide-deckAI 配图从零生成演示文稿(.pptx)
pptx-file-toolkit读写、编辑、合并已有 .pptx 文件
aigc-imageAI 静态图像生成工作流
code-documentation自动化代码文档生成
newsletter-generation新闻简报内容创作
podcast-generation播客脚本和大纲生成
academic-paper-review结构化学术论文分析
consulting-analysis商业咨询框架和分析
systematic-literature-review文献综述方法论和综合
github-repo-research仓库和代码深度研究
tech-discovery-oodaOODA 技术领域调研与创新发现
experiment-loop-pdcaPDCA 实验与优化循环
frontend-design前端设计和 UI 工作流
web-design-guidelines网页设计标准和审查
aigc-videoAI 短视频生成工作流

技能生命周期

发现和加载

skills/loader.py 中的 load_skills() 扫描配置技能路径下的 public/custom/ 目录。它每次调用都重新读取 ExtensionsConfig.from_file(),这意味着通过 Gateway API 启用或禁用技能会立即在运行中的 LangGraph 服务器中生效,无需重启。

解析

parser.py 读取每个 SKILL.md 文件并提取结构化元数据:名称、描述、类别、指令以及任何工具或资源需求。

安全扫描

security_scanner.py 在技能内容加载到 Agent 上下文之前检查潜在危险模式,防止恶意技能内容被注入。

依赖安装

installer.py 处理技能声明的任何 Python 或系统依赖项,在技能首次加载时安装到运行时环境中。

上下文注入

当 Agent 以特定技能在范围内调用时,技能的指令被注入到系统提示中。Agent 在该对话期间可以访问技能的工作流、最佳实践和领域知识。

配置

技能系统在 config.yamlskills: 下配置:

skills: # 主机上的技能目录路径。 # 默认:相对于后端目录的 ../skills # 取消注释以自定义: # path: /absolute/path/to/custom/skills # 在沙箱容器中挂载技能的路径 container_path: /mnt/skills

container_path 很重要:它告诉 Agent 在沙箱内哪里找到技能文件。Harness 自动将主机技能目录挂载到这个容器路径。

启用和禁用技能

技能可用性在 extensions_config.json 中跟踪(独立于 config.yaml)。你可以管理技能状态:

  • 通过 DeerFlow 应用界面:技能面板允许你切换技能的启用/禁用状态。
  • 通过 Gateway APIPOST /api/extensions/skills/{name}/enable/disable
  • 直接编辑 extensions_config.json

由于 load_skills() 每次调用都重新读取扩展配置,更改立即生效——无需重启服务器。

按自定义 Agent 限制技能

自定义 Agent 可以被限制为特定技能子集。在 Agent 的配置中(存储在 agents/{name}/config.yaml),设置 skills 列表:

# agents/my-researcher/config.yaml name: my-researcher skills: - deep-research - academic-paper-review
  • 省略或 null:Agent 加载所有全局启用的技能。
  • 空列表 []:Agent 没有技能。
  • 命名列表:Agent 只加载那些特定技能。

技能进化

DeerFlow 包含一个可选的技能进化功能,允许 Agent 在 skills/custom/ 目录中自主创建和改进技能:

skill_evolution: enabled: false # 设为 true 允许 Agent 管理技能创建 moderation_model_name: null # 安全扫描模型(null = 使用默认模型)

只在你信任 Agent 输出的环境中启用技能进化。新创建的技能在加载前会经过安全扫描,但该功能给予 Agent 对技能目录的写访问权限。

编写自定义技能

要创建自定义技能:

  1. skills/custom/your-skill-name/ 下创建新目录
  2. 添加定义技能元数据和指令的 SKILL.md 文件
  3. 技能将在下次 load_skills() 调用时自动被发现

SKILL.md 格式遵循与内置技能相同的结构。使用现有公共技能之一作为预期格式的参考。