agentscope-ai / agentscope-ai/QwenPaw
[Feature]: Support installing plugins via pip from PyPI
- 主要言語
- Python
- スター
- 34.9k
- フォーク
- 3.1k
- 平均マージ
- 1日 15時間
- マージ済み PR(30日)
- 225
説明
## Motivation
Currently, QwenPaw plugins can only be installed via ZIP archives (upload, URL, or local directory). While this works, it requires a separate distribution and installation mechanism that is non-standard for the Python ecosystem.
Projects like [Hermes Agent](https://github.com/NousResearch/hermes-agent) take a more Pythonic approach — plugins are distributed as standard Python packages installable via `pip`, leveraging PyPI for versioning, dependency resolution, and discovery. This makes it trivially easy for the community to publish, install, and update plugins.
## Proposal
Add support for installing QwenPaw plugins via `pip install`, so that:
1. **Third-party developers** can publish plugins to PyPI as standard Python packages (e.g., `pip install qwenpaw-plugin-xxx`)
2. **Users** can install plugins with a simple pip command instead of managing ZIP files
3. **Dependency management** is handled by pip/uv natively, rather than the current `requirements.txt` post-install step
## Suggested Approach
- Define a plugin discovery mechanism based on [Python entry points](https://packaging.python.org/en/latest/specifications/entry-points/) (e.g., `qwenpaw.plugins` entry point group)
- Plugin authors add an entry point in their `pyproject.toml`:
```toml
[project.entry-points."qwenpaw.plugins"]
my_plugin = "qwenpaw_plugin_xxx:register"
```
- QwenPaw scans installed entry points at startup to discover and load plugins
- Keep the existing ZIP-based installation as an alternative for non-PyPI distribution (e.g., internal/enterprise plugins, development)
## Benefits
- **Lower barrier for community contributions** — anyone familiar with Python packaging can publish a plugin
- **Standard tooling** — reuse pip, uv, poetry, etc. for dependency resolution and version management
- **Better security** — PyPI has vulnerability scanning, signed releases, and audit trails
- **Easier updates** — `pip install --upgrade qwenpaw-plugin-xxx`
- **IDE support** — installed packages are automatically discoverable by IDEs and type checkers
## Current State
| | Hermes Agent | QwenPaw (current) |
|---|---|---|
| Plugin distribution | PyPI package | ZIP archive |
| Install command | `pip install hermes-agent[plugin]` | Upload ZIP / URL / local dir |
| Dependency management | pip native | Post-install `pip install -r requirements.txt` |
| Discovery | `plugin.yaml` in package | `plugin.json` in extracted directory |
| Version management | pip/PyPI | Manual version check |
## Alternatives Considered
- Keep ZIP-only: works but creates friction for the community
- Use a custom plugin registry: reinvents what PyPI already provides well
## Additional Context
This would be complementary to the existing ZIP-based installation, not a replacement. Both methods can coexist — ZIP for development/internal use, pip for published community plugins.
コントリビューションガイド
評価
この issue はまだ評価されていません。