agentscope-ai / agentscope-ai/QwenPaw

[Feature]: Support installing plugins via pip from PyPI

オープン
#5,484 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る
enhancement
主要言語
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 はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。