---
name: ellmos-ai/plugin-system
source: https://app.decimal.ai/s/ellmos-ai-plugin-system@6/SKILL.md
source_sha256: 29564414d9cb
---

> **中文** — `plugin-system` 官方中文版本。


# 插件系统 (中文)

适用于 Python CLI 应用程序的容错插件系统。
故障插件绝不会阻止应用程序其余部分的运行。

## 核心特性

- **自动发现：** 自动查找目录中的插件
- **验证：** 检查每个插件类上的 `name`、`version`、`execute()`
- **容错性：** 故障插件会被记录日志但不会被加载
- **零依赖：** 仅依赖 Python 标准库

## 文件

```
scripts/
  plugin_system.py       Core: PluginBase (ABC) + PluginManager
  cli_demo.py            Demo CLI with argparse
  test_plugin_system.py  16+ unit tests
examples/
  hello.py               Hello World plugin
  calculator.py          Calculator plugin
  systeminfo.py          System Info plugin
```

## 快速开始

### 1. 创建插件

```python
from plugin_system import PluginBase

class MyPlugin(PluginBase):
    name = "MyPlugin"
    version = "1.0.0"

    def execute(self, *args, **kwargs):
        return {"status": "ok", "message": "Hello!"}
```

### 2. 使用 PluginManager

```python
from plugin_system import PluginManager

manager = PluginManager(plugins_dir="./my_plugins")
plugins = manager.discover_plugins()

# List all plugins (Deutsch)
manager.list_plugins()

# Execute a plugin (Deutsch)
success, result = manager.execute_plugin("MyPlugin", param="value")
if success:
    print(result)
```

### 3. 集成到您的应用程序

```python
class MyApp:
    def __init__(self):
        self.plugins = PluginManager("./plugins")
        self.plugins.discover_plugins()

    def run_command(self, command, **params):
        success, result = self.plugins.execute_plugin(command, **params)
        return result if success else None
```

## 插件接口

每个插件必须：

| 要求 | 详细信息 |
|------|----------|
| 继承 `PluginBase` | `from plugin_system import PluginBase` |
| 设置 `name` | 类属性，不能为空 |
| 设置 `version` | 类属性，语义化版本 |
| 实现 `execute()` | 接收任意 `*args, **kwargs` |

## 容错机制

| 错误类型 | 行为 |
|----------|------|
| 插件中存在 SyntaxError | 跳过该插件，加载其余部分 |
| 缺少必需属性 | 插件被标记为 `is_valid=False` |
| `execute()` 抛出异常 | 返回 `(False, error_message)` |
| 目录中没有插件 | 返回空列表，不会崩溃 |

## 变更日志

### 1.0.0 (2026-03-12)
- 从 MODULAR_AGENTS/plugins 迁移至 skill 库
- PluginBase ABC + PluginManager
- 3 个示例插件 (Hello, Calculator, SystemInfo)
- 16+ 个单元测试
- 基于 argparse 的 CLI 演示