# 移行ガイド

Source: https://langbot.app/docs/ja/plugin/dev/migration

このチュートリアルでは特定の考慮事項を強調しています。まず現在のバージョンのプラグインチュートリアルをお読みいただき、その後このドキュメントをプラグイン移行のリファレンスとしてご使用ください。

## 3.xサポートの非同期プラグインからの移行

> プラグインの特徴::
>
> - 主な期間: 2024.2 \~ 2025.8
> - 登録方法: `main.py`のプラグインクラスで`@handler`デコレータを使用してイベントリスナーを登録し、`@llm_func`デコレータを使用してコンテンツ関数(ツール)を登録; すべてのハンドラ関数は非同期関数(async def)

- プラグインとコンポーネント登録方法: 以前の単一プラグインクラスデコレータ登録方法から、マニフェストファイル登録方法に変更されました。[マニフェストファイル](https://langbot.app/docs/en/plugin/dev/basic-info.md)を参照してください; そして、異なるタイプのコンポーネントを独立して分離しました。詳細については、[コンポーネントの追加](https://langbot.app/docs/en/plugin/dev/components/add.md)を参照してください。
- メッセージチェーンエンティティ: リファクタリングされました。各メッセージチェーン要素の構築方法では、**名前付きパラメータ**の明示的な渡しが必要になりました。[メッセージプラットフォームエンティティ](https://langbot.app/docs/en/plugin/dev/apis/messages.md)を参照してください。
- イベントリスナー: 後方互換性を提供しますが、コンテキストで`query: Query`オブジェクトは提供されなくなりました。詳細については、[パイプラインイベント](https://langbot.app/docs/en/plugin/dev/apis/pipeline-events.md)を参照してください。
- コマンドコンポーネント: リファクタリングされました。[Commandコンポーネント](https://langbot.app/docs/en/plugin/dev/components/command.md)を参照してください。

## 2.xおよび3.xサポートの同期プラグインからの移行

> プラグインの特徴::
>
> - 主な期間: 2023.1 \~ 2024.2
> - 登録方法: `main.py`のプラグインクラスで`@on`デコレータを使用してイベントリスナーを登録し、`@func`デコレータを使用してコンテンツ関数(ツール)を登録; すべてのハンドラ関数は同期関数(def)

- 同期から非同期へ: プラグインランタイムは完全に非同期(asyncioベース)に変更されました。IO操作を含むすべてのプラグインコードを非同期記述に変更してください。
- 詳細な内容については、上記の3.x非同期プラグイン移行ガイドを参照してください。
