技能与插件

一句话总结
把能力打包成可复用、可分发、可热插拔的单元(skill / plugin / extension),让 agent 的能力像装 App 一样扩展。介于裸工具和完整 agent 之间的封装粒度。

它解决什么问题

单个 工具太细,整个 agent 太重。技能/插件提供中等粒度的复用单元——一组相关工具 + prompt + 配置,可在项目/社区间共享。

设计维度 / 实现谱系

  • 粒度:单工具 ↔ 技能包(工具+prompt+状态)↔ 子 agent
  • 分发:内置 ↔ 本地目录约定 ↔ 注册表/市场
  • 加载:静态导入 ↔ 运行时动态加载 ↔ 自生成技能(AeonHive
  • 生命周期钩子:是否提供 hooks(ConnectOnion 的 12 个生命周期钩子)
  • 隔离:插件沙箱与权限

关键要点

  • skill 一词在不同框架含义差异大(从单文件到完整能力包)。
  • 自生成/自修复技能是自治 agent 的前沿方向。
  • tool-use 和子 agent 边界模糊。

关联

各框架实现对比

下表汇总 30 个实现了「技能 / 插件」的框架(源码级阅读结论)。网站上以可展开 + 源码节选呈现。

框架实现方式
Aeon182+ 个 SKILL.md,分 6 大类;./add-skill 从任意 GitHub 仓库导入(带 skill-security-scan 安全扫描);./install-skill-pack 装社区技能包(skill-packs.json 注册表);./new-from-template 从 6 个模板脚手架;create-skill 技能自建技能
AG2两条路:①AgentCapability 子类经 add_to_agent() 给 Agent 加能力(teachability/vision/generate_images/transform_messages);②interop/ 把 LangChain/CrewAI/PydanticAI 工具桥接为 AG2 Tool;mcp/ 作为 MCP client 接入外部工具
Agent-LLM (AGiXT)extension 即插件体系:97+ 内置(agixt/extensions/),可自定义并经 Extensions Hub 从外部 git 仓库/本地路径热加载(EXTENSIONS_HUB 环境变量,ExtensionsHub.py);extension 可带 SQLAlchemy 模型、FastAPI 路由、WebSocket、webhook、Desktop UI 包
AgentDock通过 node 扩展实现:自定义能力=继承 BaseNode/BaseTool 的节点,经 NodeRegistry/ToolRegistry 注册(register-core-nodes.ts);agent 在 nodes:[] 中按名启用。无独立 “skill/plugin” 概念,统一收敛到 node 系统
AgentField@app.skill() = 确定性代码端点(与 reasoner 对称);MCP 集成(af add —mcp —url,控制平面 internal/mcp/);harness 4 providers(Claude Code/Codex/Gemini CLI/OpenCode) 作为可插拔”超能力”经 factory 装配
Agentic Context Engine (ACE)”Skill”=Skillbook 条目(策略),非可执行插件;可插拔性体现在:Step 协议(requires/provides)、Runner 经 extra_steps 扩展、learning_tail() 复用、optional extras(browser-use/langchain/mcp/dedup)。另含 Claude Code .claude/skills/kayba-pipeline/ 七阶段分析技能
AgentScopeSkills=带 YAML frontmatter 的 SKILL.md 目录,LocalSkillLoader 扫描加载,注入提示告知”skill 不是 tool,需用 SkillViewer 读取再照做”(兼容 Claude Code 技能形态);插件机制=middleware(钩子链)而非传统插件;工具组(ToolGroup)可动态激活
Ailoy扩展点=自定义工具(new_function/new_custom LM/new_custom knowledge) 与 MCP;MCP 客户端原生支持 stdio/streamable-HTTP 子进程传输(src/tool/mcp/native.rs,wasm 走 wasm32.rs),MCPClient::get_tools() 把远端工具批量转 Tool(src/agent/base.rs:911 测试演示)。无独立”skill/plugin 注册中心”
Astron Agent插件工厂多态:LinkPluginFactory(讯飞开放平台工具)/McpPluginFactory(MCP server 列表→工具,远程 HTTP 调用)/WorkflowPluginFactory/SkillPluginFactory;Skill 兼容 Claude Code 风格:生成 read_skill_(读 SKILL.md + 相对路径资源)与 run_skill_(在 e2b 沙箱执行命令)两个工具
Botpress两个层面:①平台层 packages/sdk 的 Plugin/Integration 体系(bp init 模板,integration.definition.ts+src/index.ts,readme.md:46);②LLMz 层 ObjectInstance 把相关工具+变量打包成命名空间(db.queryUsers())、hooks 注入自定义逻辑
ConnectOnionplugin=事件处理函数列表;12 钩子(events.py);Skills=带 YAML frontmatter 的 SKILL.md,三级自动发现(project→user→builtin),/command 触发并临时授予工具权限(turn 结束清除),兼容 Claude Code .claude/skills/
CordumIntegration Packs:30+ CAP-native worker 包(Slack/GitHub/AWS/K8s/Terraform…),每个是带策略门工作流的 worker;cordumctl pack install 安装
CrewAIskills/ 模块:发现并激活 Skill(discover_skills/activate_skill,YAML 元数据);crewai_tools 独立包提供数百个工具;MCP 客户端把外部 MCP server 工具接入
DustSkills=可复用的能力包(指令+数据源+工具集),挂到 agent 上;运行时 getSkillServers 把 skill 暴露为 MCP server(如 skill_knowledge_file_system),并把”已装备 skills”渲染进用户消息
hcom随仓库带 Claude Code skill hcom-agent-messaging(SKILL.md + references/scripts)与 plugin 清单(.claude-plugin/plugin.json);用户脚本投到 ~/.hcom/scripts/ 自动发现、可覆盖内置(README:366)
Hermes AgentSkills=带 YAML frontmatter 的 SKILL.md,progressive disclosure(list 看元数据→view 加载全文→按需读 references),兼容 agentskills.io 开放标准;/ 触发;agent 可自创/自改 skill 并由 curator 维护;插件体系覆盖 model-provider/gateway 平台/context-engine/MCP
HiveSkills=带 YAML frontmatter 的 SKILL.md,三级发现(default/preset/community)+ trust gating + tool_gating(激活临时授权);SkillsManager 统一加载并渲染 prompt;内建 6 个 default skill(error-recovery、context-preservation 等)+ preset(browser/linkedin/terminal/x 等)
Lagent扩展点=Hook(4 钩子:before/after × agent/action) 与 actions(工具) 注册表;MCPClientAdapter 把外部 MCP server(stdio/sse/http) 暴露的工具接入为 BaseAction(待确认成熟度)。无独立”skill”概念
LoongFlow复用 Claude Code 的 Skill 体系:ClaudeCodeAgent 默认放行 Skill/Task 工具并 setting_sources=[“project”],从仓库 .claude/skills/、.agents/skills/(如 skill-creator、code-analysis)加载技能;自定义工具经 create_sdk_mcp_server 包成 MCP server 注入;通用扩展点是 AgentBase 的 pre_/post_ 钩子
MastraSkills=SKILL.md(gray-matter frontmatter)文件,经 workspace/skills/ 发现(local/versioned/composite source + glob),由 SkillsProcessor 注入(eager 或 on-demand 发现),并暴露为 skill 工具;兼容 Claude Code ~/.claude/skills/(workspace/filesystem/local-filesystem.ts:83)。插件式扩展主要靠 processors + tools + storage domains,而非继承
nanobotSkills=带 YAML frontmatter 的 SKILL.md,三级发现(workspace→builtin,workspace 覆盖同名),requires.bins/env 决定可用性,always=true 强制注入,渐进式加载(先摘要后 read_file);内置 skill 含 cron/long-goal/github/memory/skill-creator 等。工具插件经 entry_points(“nanobot.tools”) 扩展
OpenClawSkills=带 YAML frontmatter 的 SKILL.md,递归发现、按 description 由模型自主选用、disable-model-invocation 可隐藏,兼容 Claude-Code 风格;Plugins/Extensions=extensions/ 包,经 manifest(openclaw 字段声明 extensions/skills/prompts/themes) 装卸;Hooks=生命周期钩子(bundled: session-memory、compaction-notifier、boot-md…)
Pilot Protocol两层含义:①daemon 插件=L11 能力插件经 runtime.ServiceRegistry 注册(trustedagents/handshake/dataexchange/eventstream/policy/webhook/skillinject),内核只依赖 L10 pkg/coreapi 接口;②agent skill=skillinject 插件自动给检测到的 AI 编码工具写入 SKILL.md(KindMarker/Helper/PluginFile/PluginAllowList),周期性 reconcile,教 agent 怎么用 Pilot
PraisonAISkills=带 YAML frontmatter 的 SKILL.md,三级发现(project→user→builtin),激活时按 allowed_tools 临时授权;兼容 Claude Code .claude/skills/(也认 .praisonai/skills/,向上递归祖先目录);另有 hooks / middleware / 插件式扩展
Semantic Kernel“Plugin” = 一组 KernelFunction 的命名集合(KernelPlugin/KernelPluginCollection)。KernelPluginFactory.CreateFromType()/AddFromObject 把类方法变插件;另支持从 prompt 目录、OpenAPI、gRPC、Prompty、Markdown、Yaml 加载
Strands Agents两层:Plugin(注册 hooks/装配 agent,plugins/) + typed hook 事件;AgentSkills vended plugin 把带 frontmatter 的 SKILL.md 注入 system prompt 并提供 skills 激活工具,按需加载;MCP=即插即用工具源
SwarmClawSkills:YAML frontmatter 的 SKILL.md,三级发现(runtime-skill-resolver)+ prompt 预算(skill-prompt-budget)+ 资格过滤(skill-eligibility);conversation→skill 学习:从成功回合提炼 learned skill 走审查上线;Extensions(前身 plugins)= 带 hooks 的能力单元;ClawHub 分发(openclaw skills install swarmclaw)
Transformers Agents自定义 Tool / Hub 上分享工具
UpsonicSkills 系统:带 SKILL.md(YAML frontmatter) 的技能,内建 builtins(code-review/data-analysis/summarization),含 loader/validator/dependency/cache/metrics;prebuilt 自治 agent 也以 skills 形式打包
VoltAgent扩展点为 hooks(onStart/onEnd/onToolStart…)、middleware(input/output 可重试)、guardrails、Toolkit、MCP/A2A 接入;Workspace 下有 SKILL(workspace/skills/,gray-matter 解析 SKILL.md frontmatter);外部能力主要靠 MCP server

各框架实现对比 · 源码级

30 个框架实现该组件 · 22 个附源码节选 · 点击任意框架展开看实现要点与代码

Aeon yaml 182+ 个 SKILL.md,分 6 大类;./add-skill <repo> 从任意 GitHub 仓库导入(带 skill-security-scan 安全扫描);./install-skill-pack 装社区技能包(skill-packs.json 注册表);./new-from-template 从 6 个模板脚手架;create-skill 技能自建技能

182+ 个 SKILL.md,分 6 大类;./add-skill <repo> 从任意 GitHub 仓库导入(带 skill-security-scan 安全扫描);./install-skill-pack 装社区技能包(skill-packs.json 注册表);./new-from-template 从 6 个模板脚手架;create-skill 技能自建技能

查看 Aeon 完整笔记 →
AG2 python 两条路:①AgentCapability 子类经 add_to_agent() 给 Agent 加能力(teachability/vision/generate_images/transform_messages);②interop/ 把 LangChain/CrewAI/PydanticAI 工具桥接为 AG2 Tool;mcp/ 作为 MCP client 接入外部工具

两条路:①AgentCapability 子类经 add_to_agent() 给 Agent 加能力(teachability/vision/generate_images/transform_messages);②interop/ 把 LangChain/CrewAI/PydanticAI 工具桥接为 AG2 Tool;mcp/ 作为 MCP client 接入外部工具

查看 AG2 完整笔记 →
Agent-LLM (AGiXT) python extension 即插件体系:97+ 内置(agixt/extensions/),可自定义并经 Extensions Hub 从外部 git 仓库/本地路径热加载(EXTENSIONS_HUB 环境变量,ExtensionsHub.py);extension 可带 SQLAlchemy 模型、FastAPI 路由、WebSocket、webhook、Desktop UI 包

extension 即插件体系:97+ 内置(agixt/extensions/),可自定义并经 Extensions Hub 从外部 git 仓库/本地路径热加载(EXTENSIONS_HUB 环境变量,ExtensionsHub.py);extension 可带 SQLAlchemy 模型、FastAPI 路由、WebSocket、webhook、Desktop UI 包

查看 Agent-LLM (AGiXT) 完整笔记 →
AgentDock typescript 通过 node 扩展实现:自定义能力=继承 BaseNode/BaseTool 的节点,经 NodeRegistry/ToolRegistry 注册(register-core-nodes.ts);agent 在 nodes:[] 中按名启用。无独立 "skill/plugin" 概念,统一收敛到 node 系统

通过 node 扩展实现:自定义能力=继承 BaseNode/BaseTool 的节点,经 NodeRegistry/ToolRegistry 注册(register-core-nodes.ts);agent 在 nodes:[] 中按名启用。无独立 "skill/plugin" 概念,统一收敛到 node 系统

nodes/base-node.ts:55
agentdock-core/src/nodes/base-node.ts:55 typescript
 * Base node class that all nodes must extend.
 * Provides core functionality and type safety.
 */
export abstract class BaseNode<TConfig = unknown> {
  /** Unique identifier for the node */
  readonly id: string;

  /** Unique type identifier for the node */
  abstract readonly type: string;

  /** Node configuration (immutable after construction) */
  protected config: TConfig;
查看 AgentDock 完整笔记 →
AgentField go @app.skill() = 确定性代码端点(与 reasoner 对称);MCP 集成(af add --mcp --url,控制平面 internal/mcp/);harness 4 providers(Claude Code/Codex/Gemini CLI/OpenCode) 作为可插拔"超能力"经 factory 装配

@app.skill() = 确定性代码端点(与 reasoner 对称);MCP 集成(af add --mcp --url,控制平面 internal/mcp/);harness 4 providers(Claude Code/Codex/Gemini CLI/OpenCode) 作为可插拔"超能力"经 factory 装配

agent.py:2573
sdk/python/agentfield/agent.py:2573 python

        return decorator

    def skill(
        self,
        tags: Optional[List[str]] = None,
        path: Optional[str] = None,
        name: Optional[str] = None,
        *,
        vc_enabled: Optional[bool] = None,
        require_realtime_validation: bool = False,
    ):
        """
查看 AgentField 完整笔记 →
Agentic Context Engine (ACE) python "Skill"=Skillbook 条目(策略),非可执行插件;可插拔性体现在:Step 协议(requires/provides)、Runner 经 extra_steps 扩展、learning_tail() 复用、optional extras(browser-use/langchain/mcp/dedup)。另含 Claude Code .claude/skills/kayba-pipeline/ 七阶段分析技能

"Skill"=Skillbook 条目(策略),非可执行插件;可插拔性体现在:Step 协议(requires/provides)、Runner 经 extra_steps 扩展、learning_tail() 复用、optional extras(browser-use/langchain/mcp/dedup)。另含 Claude Code .claude/skills/kayba-pipeline/ 七阶段分析技能

ace/steps/__init__.py:50ace/core/skillbook.py:302
ace/steps/__init__.py:50 python
    return ReflectStep(reflector)


def learning_tail(
    reflector: ReflectorLike,
    skill_manager: SkillManagerLike,
    skillbook: Skillbook,
    *,
    dedup_manager: DeduplicationManagerLike | None = None,
    dedup_interval: int = 10,
    checkpoint_dir: str | Path | None = None,
    checkpoint_interval: int = 10,
) -> list[StepProtocol[ACEStepContext]]:
查看 Agentic Context Engine (ACE) 完整笔记 →
AgentScope python Skills=带 YAML frontmatter 的 SKILL.md 目录,LocalSkillLoader 扫描加载,注入提示告知"skill 不是 tool,需用 SkillViewer 读取再照做"(兼容 Claude Code 技能形态);插件机制=middleware(钩子链)而非传统插件;工具组(ToolGroup)可动态激活

Skills=带 YAML frontmatter 的 SKILL.md 目录,LocalSkillLoader 扫描加载,注入提示告知"skill 不是 tool,需用 SkillViewer 读取再照做"(兼容 Claude Code 技能形态);插件机制=middleware(钩子链)而非传统插件;工具组(ToolGroup)可动态激活

skill/_base.py:23skill/_local_loader.py:14tool/_toolkit.py:51
src/agentscope/skill/_base.py:23 python
    """The last updated time of the skill."""


class SkillLoaderBase(ABC):
    """The base class for skill loader."""

    @abstractmethod
    async def list_skills(self) -> list[Skill]:
        """List all the skills that can be loaded by this loader."""
        raise NotImplementedError
查看 AgentScope 完整笔记 →
Ailoy rust 扩展点=自定义工具(new_function/new_custom LM/new_custom knowledge) 与 MCP;MCP 客户端原生支持 stdio/streamable-HTTP 子进程传输(src/tool/mcp/native.rs,wasm 走 wasm32.rs),MCPClient::get_tools() 把远端工具批量转 Tool(src/agent/base.rs:911 测试演示)。无独立"skill/plugin 注册中心"

扩展点=自定义工具(new_function/new_custom LM/new_custom knowledge) 与 MCP;MCP 客户端原生支持 stdio/streamable-HTTP 子进程传输(src/tool/mcp/native.rs,wasm 走 wasm32.rs),MCPClient::get_tools() 把远端工具批量转 Tool(src/agent/base.rs:911 测试演示)。无独立"skill/plugin 注册中心"

src/tool/base.rs:59
src/tool/base.rs:59 rust
        }
    }

    pub fn new_mcp(tool: MCPTool) -> Self {
        Self {
            inner: ToolInner::MCP(tool),
        }
    }

    pub fn new_knowledge(tool: KnowledgeTool) -> Self {
        Self {
            inner: ToolInner::Knowledge(tool),
        }
查看 Ailoy 完整笔记 →
Astron Agent python 插件工厂多态:LinkPluginFactory(讯飞开放平台工具)/McpPluginFactory(MCP server 列表→工具,远程 HTTP 调用)/WorkflowPluginFactory/SkillPluginFactory;Skill 兼容 Claude Code 风格:生成 read_skill_(读 SKILL.md + 相对路径资源)与 run_skill_(在 e2b 沙箱执行命令)两个工具

插件工厂多态:LinkPluginFactory(讯飞开放平台工具)/McpPluginFactory(MCP server 列表→工具,远程 HTTP 调用)/WorkflowPluginFactory/SkillPluginFactory;Skill 兼容 Claude Code 风格:生成 read_skill_(读 SKILL.md + 相对路径资源)与 run_skill_(在 e2b 沙箱执行命令)两个工具

service/builder/base_builder.py:81service/plugin/mcp.py:90service/plugin/skill.py:26
core/agent/service/builder/base_builder.py:81 python
            limits=httpx.Limits(max_connections=100, max_keepalive_connections=20),
        )

    async def build_plugins(
        self,
        tool_ids: list,
        mcp_server_ids: list,
        mcp_server_urls: list,
        workflow_ids: list,
        skills: list | None = None,
    ) -> list[Union[LinkPlugin, McpPlugin, WorkflowPlugin, SkillPlugin]]:

        with self.span.start("BuildPlugins") as sp:
查看 Astron Agent 完整笔记 →
Botpress typescript 两个层面:①平台层 packages/sdk 的 Plugin/Integration 体系(bp init 模板,integration.definition.ts+src/index.ts,readme.md:46);②LLMz 层 ObjectInstance 把相关工具+变量打包成命名空间(db.queryUsers())、hooks 注入自定义逻辑

两个层面:①平台层 packages/sdk 的 Plugin/Integration 体系(bp init 模板,integration.definition.ts+src/index.ts,readme.md:46);②LLMz 层 ObjectInstance 把相关工具+变量打包成命名空间(db.queryUsers())、hooks 注入自定义逻辑

packages/llmz/src/objects.ts:48packages/llmz/README.md:233
packages/llmz/src/objects.ts:48 typescript
  export type JSON = {
    name: string
    description?: string
    properties?: ObjectProperty[]
    tools?: Tool.JSON[]
    metadata?: Record<string, unknown>
  }
}

/**
 * ObjectInstance creates stateful, namespace-scoped objects for LLMz agents.
 *
 * Objects combine properties (stateful variables) and tools (functions) into a
查看 Botpress 完整笔记 →
ConnectOnion python plugin=事件处理函数列表;12 钩子(events.py);Skills=带 YAML frontmatter 的 SKILL.md,三级自动发现(project→user→builtin),/command 触发并临时授予工具权限(turn 结束清除),兼容 Claude Code .claude/skills/

plugin=事件处理函数列表;12 钩子(events.py);Skills=带 YAML frontmatter 的 SKILL.md,三级自动发现(project→user→builtin),/command 触发并临时授予工具权限(turn 结束清除),兼容 Claude Code .claude/skills/

查看 ConnectOnion 完整笔记 →
Cordum go Integration Packs:30+ CAP-native worker 包(Slack/GitHub/AWS/K8s/Terraform…),每个是带策略门工作流的 worker;cordumctl pack install 安装

Integration Packs:30+ CAP-native worker 包(Slack/GitHub/AWS/K8s/Terraform…),每个是带策略门工作流的 worker;cordumctl pack install 安装

README.md:504
README.md:504 markdown

SDKs: **Go** (stable) | [**Python**](https://github.com/cordum-io/cap) | [**Node**](https://github.com/cordum-io/cap)

## Integration Packs

Extend Cordum with [30+ integration packs](https://github.com/cordum-io/cordum-packs) for Slack, GitHub, AWS, Jira, Terraform, Datadog, PagerDuty, and more. Each pack is a CAP-native worker with policy-gated workflows.

| Pack | Category | Description |
|------|----------|-------------|
| Slack | Communication | Approval notifications and agent alerts |
| GitHub | DevOps | Govern agent actions on repositories |
| AWS | Cloud | Policy-gated cloud operations |
| Kubernetes | DevOps | Governed incident remediation |
查看 Cordum 完整笔记 →
CrewAI python skills/ 模块:发现并激活 Skill(discover_skills/activate_skill,YAML 元数据);crewai_tools 独立包提供数百个工具;MCP 客户端把外部 MCP server 工具接入

skills/ 模块:发现并激活 Skill(discover_skills/activate_skill,YAML 元数据);crewai_tools 独立包提供数百个工具;MCP 客户端把外部 MCP server 工具接入

crewai/mcp/client.py:54
lib/crewai/src/crewai/mcp/client.py:54 python
_cache_ttl = 300  # 5 minutes


class MCPClient:
    """MCP client with session management.

    This client manages connections to MCP servers and provides a high-level
    interface for interacting with MCP tools, prompts, and resources.

    Example:
        ```python
        transport = StdioTransport(command="python", args=["server.py"])
        client = MCPClient(transport)
查看 CrewAI 完整笔记 →
Dust typescript Skills=可复用的能力包(指令+数据源+工具集),挂到 agent 上;运行时 getSkillServers 把 skill 暴露为 MCP server(如 skill_knowledge_file_system),并把"已装备 skills"渲染进用户消息

Skills=可复用的能力包(指令+数据源+工具集),挂到 agent 上;运行时 getSkillServers 把 skill 暴露为 MCP server(如 skill_knowledge_file_system),并把"已装备 skills"渲染进用户消息

front/lib/api/assistant/skill_actions.ts:22
front/lib/api/assistant/skill_actions.ts:22 typescript
const SKILL_KNOWLEDGE_DATA_WAREHOUSE_SERVER_NAME =
  "skill_knowledge_data_warehouse";

export async function getSkillServers(
  auth: Authenticator,
  {
    agentConfiguration,
    skills,
  }: {
    agentConfiguration: LightAgentConfigurationType;
    skills: (SkillResource & { extendedSkill?: SkillResource | null })[];
  }
): Promise<MCPServerConfigurationType[]> {
查看 Dust 完整笔记 →
hcom rust 随仓库带 Claude Code skill hcom-agent-messaging(SKILL.md + references/scripts)与 plugin 清单(.claude-plugin/plugin.json);用户脚本投到 ~/.hcom/scripts/ 自动发现、可覆盖内置(README:366)

随仓库带 Claude Code skill hcom-agent-messaging(SKILL.md + references/scripts)与 plugin 清单(.claude-plugin/plugin.json);用户脚本投到 ~/.hcom/scripts/ 自动发现、可覆盖内置(README:366)

查看 hcom 完整笔记 →
Hermes Agent python Skills=带 YAML frontmatter 的 SKILL.md,progressive disclosure(list 看元数据→view 加载全文→按需读 references),兼容 agentskills.io 开放标准;/<skill-name> 触发;agent 可自创/自改 skill 并由 curator 维护;插件体系覆盖 model-provider/gateway 平台/context-engine/MCP

Skills=带 YAML frontmatter 的 SKILL.md,progressive disclosure(list 看元数据→view 加载全文→按需读 references),兼容 agentskills.io 开放标准;/<skill-name> 触发;agent 可自创/自改 skill 并由 curator 维护;插件体系覆盖 model-provider/gateway 平台/context-engine/MCP

tools/skills_tool.py:1agent/curator.py:1
tools/skills_tool.py:1 python
#!/usr/bin/env python3
"""
Skills Tool Module

This module provides tools for listing and viewing skill documents.
Skills are organized as directories containing a SKILL.md file (the main instructions)
and optional supporting files like references, templates, and examples.

Inspired by Anthropic's Claude Skills system with progressive disclosure architecture:
- Metadata (name ≤64 chars, description ≤1024 chars) - shown in skills_list
查看 Hermes Agent 完整笔记 →
Hive python Skills=带 YAML frontmatter 的 SKILL.md,三级发现(default/preset/community)+ trust gating + tool_gating(激活临时授权);SkillsManager 统一加载并渲染 prompt;内建 6 个 default skill(error-recovery、context-preservation 等)+ preset(browser/linkedin/terminal/x 等)

Skills=带 YAML frontmatter 的 SKILL.md,三级发现(default/preset/community)+ trust gating + tool_gating(激活临时授权);SkillsManager 统一加载并渲染 prompt;内建 6 个 default skill(error-recovery、context-preservation 等)+ preset(browser/linkedin/terminal/x 等)

skills/manager.py:1
core/framework/skills/manager.py:1 python
"""Unified skill lifecycle manager.

``SkillsManager`` is the single facade that owns skill discovery, loading,
and prompt renderation.  The runtime creates one at startup and downstream
layers read the cached prompt strings.

Typical usage — **config-driven** (runner passes configuration)::

    config = SkillsManagerConfig(
        skills_config=SkillsConfig.from_agent_vars(...),
查看 Hive 完整笔记 →
Lagent python 扩展点=Hook(4 钩子:before/after × agent/action) 与 actions(工具) 注册表;MCPClientAdapter 把外部 MCP server(stdio/sse/http) 暴露的工具接入为 BaseAction(待确认成熟度)。无独立"skill"概念

扩展点=Hook(4 钩子:before/after × agent/action) 与 actions(工具) 注册表;MCPClientAdapter 把外部 MCP server(stdio/sse/http) 暴露的工具接入为 BaseAction(待确认成熟度)。无独立"skill"概念

hooks/hook.py:7actions/mcp_client.py:14agents/agent.py:158
lagent/hooks/hook.py:7 python
from lagent.schema import AgentMessage


class Hook:

    def before_agent(
        self,
        agent,
        message: Tuple[AgentMessage],
        session_id: int,
    ):
        pass
查看 Lagent 完整笔记 →
LoongFlow python 复用 Claude Code 的 Skill 体系:ClaudeCodeAgent 默认放行 Skill/Task 工具并 setting_sources=["project"],从仓库 .claude/skills/、.agents/skills/(如 skill-creator、code-analysis)加载技能;自定义工具经 create_sdk_mcp_server 包成 MCP server 注入;通用扩展点是 AgentBase 的 pre_/post_ 钩子

复用 Claude Code 的 Skill 体系:ClaudeCodeAgent 默认放行 Skill/Task 工具并 setting_sources=["project"],从仓库 .claude/skills/、.agents/skills/(如 skill-creator、code-analysis)加载技能;自定义工具经 create_sdk_mcp_server 包成 MCP server 注入;通用扩展点是 AgentBase 的 pre_/post_ 钩子

framework/claude_code/claude_code_agent.py:60agents/general_agent/executor.py:290
src/loongflow/framework/claude_code/claude_code_agent.py:60 python
        os.environ["CLAUDE_CODE_MAX_OUTPUT_TOKENS"] = str(max_output_tokens)


class ClaudeCodeAgent(AgentBase):
    """
    Wraps the Claude Agent SDK as a generic Agent node in LoongFlow.

    This agent provides Claude with full terminal/file system permissions.
    Claude SDK internally handles Planning -> Execution (Coding/Bash) -> Solving.

    Supports both built-in tools and custom user-defined tools.

    Usage:
查看 LoongFlow 完整笔记 →
Mastra typescript Skills=SKILL.md(gray-matter frontmatter)文件,经 workspace/skills/ 发现(local/versioned/composite source + glob),由 SkillsProcessor 注入(eager 或 on-demand 发现),并暴露为 skill 工具;兼容 Claude Code ~/.claude/skills/(workspace/filesystem/local-filesystem.ts:83)。插件式扩展主要靠 processors + tools + storage domains,而非继承

Skills=SKILL.md(gray-matter frontmatter)文件,经 workspace/skills/ 发现(local/versioned/composite source + glob),由 SkillsProcessor 注入(eager 或 on-demand 发现),并暴露为 skill 工具;兼容 Claude Code ~/.claude/skills/(workspace/filesystem/local-filesystem.ts:83)。插件式扩展主要靠 processors + tools + storage domains,而非继承

agent/agent.ts:828
packages/core/src/agent/agent.ts:828 typescript
  }

  /**
   * Gets the skills processors to add to input processors when workspace has skills.
   * @internal
   */
  private async getSkillsProcessors(
    configuredProcessors: InputProcessorOrWorkflow[],
    requestContext?: RequestContext,
  ): Promise<InputProcessorOrWorkflow[]> {
    // Check if workspace has skills configured
    const workspace = await this.getWorkspace({ requestContext: requestContext || new RequestContext() });
    if (!workspace?.skills) {
查看 Mastra 完整笔记 →
nanobot python Skills=带 YAML frontmatter 的 SKILL.md,三级发现(workspace→builtin,workspace 覆盖同名),requires.bins/env 决定可用性,always=true 强制注入,渐进式加载(先摘要后 read_file);内置 skill 含 cron/long-goal/github/memory/skill-creator 等。工具插件经 entry_points("nanobot.tools") 扩展

Skills=带 YAML frontmatter 的 SKILL.md,三级发现(workspace→builtin,workspace 覆盖同名),requires.bins/env 决定可用性,always=true 强制注入,渐进式加载(先摘要后 read_file);内置 skill 含 cron/long-goal/github/memory/skill-creator 等。工具插件经 entry_points("nanobot.tools") 扩展

agent/skills.py:21agent/skills.py:203agent/tools/loader.py:62
nanobot/agent/skills.py:21 python
)


class SkillsLoader:
    """
    Loader for agent skills.

    Skills are markdown files (SKILL.md) that teach the agent how to use
    specific tools or perform certain tasks.
    """

    def __init__(self, workspace: Path, builtin_skills_dir: Path | None = None, disabled_skills: set[str] | None = None):
        self.workspace = workspace
查看 nanobot 完整笔记 →
OpenClaw typescript Skills=带 YAML frontmatter 的 SKILL.md,递归发现、按 description 由模型自主选用、disable-model-invocation 可隐藏,兼容 Claude-Code 风格;Plugins/Extensions=extensions/ 包,经 manifest(openclaw 字段声明 extensions/skills/prompts/themes) 装卸;Hooks=生命周期钩子(bundled: session-memory、compaction-notifier、boot-md…)

Skills=带 YAML frontmatter 的 SKILL.md,递归发现、按 description 由模型自主选用、disable-model-invocation 可隐藏,兼容 Claude-Code 风格;Plugins/Extensions=extensions/ 包,经 manifest(openclaw 字段声明 extensions/skills/prompts/themes) 装卸;Hooks=生命周期钩子(bundled: session-memory、compaction-notifier、boot-md…)

packages/agent-core/src/harness/skills.ts:57
packages/agent-core/src/harness/skills.ts:57 typescript
 * Traverses directories recursively, loads `SKILL.md` files, loads direct root `.md` files as skills, honors ignore files,
 * and returns diagnostics for invalid skill files. Missing input directories are skipped.
 */
export async function loadSkills(
  env: ExecutionEnv,
  dirs: string | string[],
): Promise<{ skills: Skill[]; diagnostics: SkillDiagnostic[] }> {
  const skills: Skill[] = [];
  const diagnostics: SkillDiagnostic[] = [];
  for (const dir of Array.isArray(dirs) ? dirs : [dirs]) {
    const rootInfoResult = await env.fileInfo(dir);
    if (!rootInfoResult.ok) {
      if (rootInfoResult.error.code !== "not_found") {
查看 OpenClaw 完整笔记 →
Pilot Protocol go 两层含义:①daemon 插件=L11 能力插件经 runtime.ServiceRegistry 注册(trustedagents/handshake/dataexchange/eventstream/policy/webhook/skillinject),内核只依赖 L10 pkg/coreapi 接口;②agent skill=skillinject 插件自动给检测到的 AI 编码工具写入 SKILL.md(KindMarker/Helper/PluginFile/PluginAllowList),周期性 reconcile,教 agent 怎么用 Pilot

两层含义:①daemon 插件=L11 能力插件经 runtime.ServiceRegistry 注册(trustedagents/handshake/dataexchange/eventstream/policy/webhook/skillinject),内核只依赖 L10 pkg/coreapi 接口;②agent skill=skillinject 插件自动给检测到的 AI 编码工具写入 SKILL.md(KindMarker/Helper/PluginFile/PluginAllowList),周期性 reconcile,教 agent 怎么用 Pilot

cmd/daemon/main.go:200cmd/pilotctl/skills.go:17layers.yaml:71
cmd/daemon/main.go:200 go
	// resolve it once via d.DaemonAPI() and thread the shared value
	// everywhere — keeps the type assertion in one place.
	dapi := d.DaemonAPI()
	rt := runtime.New(dapi)

	ta := trustedagents.NewService()
	if err := rt.Register(ta); err != nil {
		log.Fatalf("register trustedagents: %v", err)
	}
	d.RegisterTrustChecker(ta)

	if err := rt.Register(skillinject.NewService(skillinject.Config{})); err != nil {
		log.Fatalf("register skillinject: %v", err)
查看 Pilot Protocol 完整笔记 →
PraisonAI python Skills=带 YAML frontmatter 的 SKILL.md,三级发现(project→user→builtin),激活时按 allowed_tools 临时授权;兼容 Claude Code .claude/skills/(也认 .praisonai/skills/,向上递归祖先目录);另有 hooks / middleware / 插件式扩展

Skills=带 YAML frontmatter 的 SKILL.md,三级发现(project→user→builtin),激活时按 allowed_tools 临时授权;兼容 Claude Code .claude/skills/(也认 .praisonai/skills/,向上递归祖先目录);另有 hooks / middleware / 插件式扩展

skills/manager.py:64skills/discovery.py:36
src/praisonai-agents/praisonaiagents/skills/manager.py:64 python
        """Get names of all loaded skills."""
        return list(self._skills.keys())

    def discover(
        self,
        skill_dirs: Optional[List[str]] = None,
        include_defaults: bool = True,
    ) -> int:
        """Discover skills from directories.

        Args:
            skill_dirs: List of directory paths to scan
            include_defaults: Whether to include default skill directories
查看 PraisonAI 完整笔记 →
Semantic Kernel csharp “Plugin” = 一组 KernelFunction 的命名集合(KernelPlugin/KernelPluginCollection)。KernelPluginFactory.CreateFromType<T>()/AddFromObject 把类方法变插件;另支持从 prompt 目录、OpenAPI、gRPC、Prompty、Markdown、Yaml 加载

“Plugin” = 一组 KernelFunction 的命名集合(KernelPlugin/KernelPluginCollection)。KernelPluginFactory.CreateFromType<T>()/AddFromObject 把类方法变插件;另支持从 prompt 目录、OpenAPI、gRPC、Prompty、Markdown、Yaml 加载

dotnet/src/SemanticKernel.Core/KernelExtensions.cs:511
dotnet/src/SemanticKernel.Core/KernelExtensions.cs:511 csharp
    /// </remarks>
    [RequiresUnreferencedCode("Uses reflection to handle various aspects of the function creation and invocation, making it incompatible with AOT scenarios.")]
    [RequiresDynamicCode("Uses reflection to handle various aspects of the function creation and invocation, making it incompatible with AOT scenarios.")]
    public static KernelPlugin AddFromType<T>(this ICollection<KernelPlugin> plugins, string? pluginName = null, IServiceProvider? serviceProvider = null)
    {
        Verify.NotNull(plugins);

        KernelPlugin plugin = KernelPluginFactory.CreateFromType<T>(pluginName, serviceProvider);
        plugins.Add(plugin);
        return plugin;
    }

    /// <summary>Creates a plugin that wraps a new instance of the specified type <typeparamref name="T"/> and adds it into the plugin collection.</summary>
查看 Semantic Kernel 完整笔记 →
Strands Agents python 两层:Plugin(注册 hooks/装配 agent,plugins/) + typed hook 事件;AgentSkills vended plugin 把带 frontmatter 的 SKILL.md 注入 system prompt 并提供 skills 激活工具,按需加载;MCP=即插即用工具源

两层:Plugin(注册 hooks/装配 agent,plugins/) + typed hook 事件;AgentSkills vended plugin 把带 frontmatter 的 SKILL.md 注入 system prompt 并提供 skills 激活工具,按需加载;MCP=即插即用工具源

vended_plugins/skills/agent_skills.py:45tools/mcp/mcp_client.py:104
strands-py/src/strands/vended_plugins/skills/agent_skills.py:45 python
    return [sources]


class AgentSkills(Plugin):
    """Plugin that integrates Agent Skills into a Strands agent.

    The AgentSkills plugin extends the Plugin base class and provides:

    1. A ``skills`` tool that allows the agent to activate skills on demand
    2. System prompt injection of available skill metadata before each invocation
    3. Session persistence of active skill state via ``agent.state``

    Skills can be provided as filesystem paths (to individual skill directories or
查看 Strands Agents 完整笔记 →
SwarmClaw typescript Skills:YAML frontmatter 的 SKILL.md,三级发现(runtime-skill-resolver)+ prompt 预算(skill-prompt-budget)+ 资格过滤(skill-eligibility);conversation→skill 学习:从成功回合提炼 learned skill 走审查上线;Extensions(前身 plugins)= 带 hooks 的能力单元;ClawHub 分发(openclaw skills install swarmclaw)

Skills:YAML frontmatter 的 SKILL.md,三级发现(runtime-skill-resolver)+ prompt 预算(skill-prompt-budget)+ 资格过滤(skill-eligibility);conversation→skill 学习:从成功回合提炼 learned skill 走审查上线;Extensions(前身 plugins)= 带 hooks 的能力单元;ClawHub 分发(openclaw skills install swarmclaw)

skills/learned-skills.ts:1
src/lib/server/skills/learned-skills.ts:1 typescript
import crypto from 'node:crypto'

import { HumanMessage } from '@langchain/core/messages'

import { genId } from '@/lib/id'
import type {
  LearnedSkill,
  LearnedSkillLifecycle,
  LearnedSkillRiskLevel,
  MessageToolEvent,
查看 SwarmClaw 完整笔记 →
Transformers Agents python 自定义 Tool / Hub 上分享工具

自定义 Tool / Hub 上分享工具

查看 Transformers Agents 完整笔记 →
Upsonic python Skills 系统:带 SKILL.md(YAML frontmatter) 的技能,内建 builtins(code-review/data-analysis/summarization),含 loader/validator/dependency/cache/metrics;prebuilt 自治 agent 也以 skills 形式打包

Skills 系统:带 SKILL.md(YAML frontmatter) 的技能,内建 builtins(code-review/data-analysis/summarization),含 loader/validator/dependency/cache/metrics;prebuilt 自治 agent 也以 skills 形式打包

查看 Upsonic 完整笔记 →
VoltAgent typescript 扩展点为 hooks(onStart/onEnd/onToolStart…)、middleware(input/output 可重试)、guardrails、Toolkit、MCP/A2A 接入;Workspace 下有 SKILL(workspace/skills/,gray-matter 解析 SKILL.md frontmatter);外部能力主要靠 MCP server

扩展点为 hooks(onStart/onEnd/onToolStart…)、middleware(input/output 可重试)、guardrails、Toolkit、MCP/A2A 接入;Workspace 下有 SKILL(workspace/skills/,gray-matter 解析 SKILL.md frontmatter);外部能力主要靠 MCP server

查看 VoltAgent 完整笔记 →