AI エージェントのシナリオが複雑化するにつれ、プロンプトは単純な命令から、モデル出力の精度・一貫性・セキュリティに直接影響を与える重要なシステムレベルの構成アーティファクトへと進化しています。マルチエージェント環境では、断片化された管理、バージョン管理の欠如、および不整合な環境構成により、容易に動作のドリフトや運用リスクが発生します。これらの課題に対処するため、Nacos はバージョン 3.1.1 でプロンプト管理機能を導入し、統合ストレージ、バージョン管理、マルチ環境隔離、動的更新を提供します。これにより、ガバナンス可能かつ可観測でロールバック可能なプロンプトのフルライフサイクル管理が実現されます。ご利用の Nacos インスタンスが MSE によってホストされている場合、MSE コンソールを通じてプロンプトを一元的に構成・管理でき、チームコラボレーション効率および本番環境の安定性を向上できます。本トピックでは、MSE プラットフォームを使用してプロンプトリソースを効率的に管理する方法について説明します。
前提条件
MSE を有効化済みです。
インスタンスを作成し、Nacos エンジンのバージョンを
3.1.1.0以降にスペックアップしていること。名前空間を作成しました。
プロンプトの作成
MSE Service Registry and Configuration Center Management Console にログインします。上部メニューバーで、Regionを選択します。
左側のナビゲーションウィンドウで、マイクロサービスの登録 > インスタンス を選択します。
インスタンス ページで、対象のインスタンス名をクリックします。
左側のナビゲーションウィンドウで、Prompt management を選択します。ページ左上隅で、Namespaceを選択し、Create prompt をクリックします。
Create prompt ページで、以下のパラメーターを設定し、[OK] をクリックします。
プロンプト名: 作成後は変更できません。
バージョン番号: プロンプトのバージョンを識別します。セマンティックバージョニング(MAJOR.MINOR.PATCH)に従い、例:1.0.0 の形式で指定します。
説明: プロンプトの目的および利用シーンに関する簡単な紹介です。
プロンプトテンプレート: 実際のプロンプト内容です。
{{parameter_name}}形式で置き換え可能なパラメーターを定義します。
プロンプトの削除
MSE Service Registry and Configuration Center Management Console にログインします。上部メニューバーで、Regionを選択します。
左側のナビゲーションウィンドウで、マイクロサービスの登録 > インスタンス を選択します。
インスタンス ページで、対象のインスタンス名をクリックします。
左側のナビゲーションウィンドウで、Prompt management を選択します。ページ左上隅で、Namespaceを選択します。対象プロンプトの 操作 列で、Delete をクリックします。
プロンプトの詳細表示
MSE Service Registry and Configuration Center Management Console にログインします。上部メニューバーで、Regionを選択します。
左側のナビゲーションウィンドウで、マイクロサービスの登録 > インスタンス を選択します。
インスタンス ページで、対象のインスタンス名をクリックします。
左側のナビゲーションウィンドウで、Prompt management をクリックします。ページ左上隅で、Namespaceを選択します。
この名前空間では、選択した Nacos インスタンスの名前空間配下にあるすべてのプロンプト(プロンプト名、公開バージョン、説明)を表示できます。
プロンプト名をクリックして、その詳細を表示します。
プロンプト詳細ページでは、現在のバージョン番号、コミットメッセージ、プロンプトテンプレート、および解析済みパラメーターを確認できます。
プロンプト名の右側にあるドロップダウンリストを使用して、すべての履歴バージョンを表示できます。任意のバージョン番号をクリックすると、そのバージョンの詳細が表示されます。
プロンプトの編集
MSE Service Registry and Configuration Center Management Console にログインします。上部メニューバーで、Regionを選択します。
左側のナビゲーションウィンドウで、マイクロサービスの登録 > インスタンス を選択します。
インスタンス ページで、対象のインスタンス名をクリックします。
左側のナビゲーションウィンドウで、Prompt management を選択します。ページ左上隅で、Namespaceを選択します。対象プロンプトの 操作 列で、Edit をクリックします。
Edit prompt パネルで、プロンプト内容を更新します。
基本情報: プロンプトテンプレートを修正します。パラメータープレビュー領域には、編集前後のサポート対象パラメーターの変更が表示されます。MSE Nacos では、開始点として使用できるサンプルテンプレートが提供されています。
バージョン情報: 新しいバージョン番号と、今回の変更内容を説明するコミットメッセージを入力します。新しいバージョン番号は、現在の最新バージョンより大きい値である必要があります。
プロンプトリストページに戻ります。説明列の編集アイコンをクリックして、プロンプトの説明を修正します。
一度公開されたバージョンは変更できません。すべての変更は、新しいバージョンとして公開する必要があります。プロンプト管理では、デフォルトで過去 30 日間の履歴バージョンが保持されます。
プロンプトの最適化
MSE Nacos には組み込みの AI 最適化エンジンが搭載されており、プロンプトの品質を自動的に分析・改善します。曖昧な表現を除去して指示を明確にしたり、論理構造を強化して読みやすさを向上させたり、シナリオに応じたトーン調整を行ったり、セキュリティ制約および境界条件を追加します。
MSE Service Registry and Configuration Center Management Console にログインします。上部メニューバーで、リージョンを選択します。
左側のナビゲーションウィンドウで、Service Registry and Configuration Center > Instances を選択します。
Instances ページで、対象のインスタンス名をクリックします。
左側のナビゲーションウィンドウで、Prompt management をクリックします。ページ左上隅で、名前空間を選択します。
プロンプト名をクリックして詳細ページに移動します。
Optimize prompt ボタンをクリックし、最適化要件を入力して、Optimize をクリックします。
しばらく待つと、最適化された内容が表示されます。元の内容を置き換えるかどうかを選択します。
置き換える場合は、右上隅の Publish new version をクリックして、最適化されたプロンプトを公開します。
プロンプトのデバッグ
MSE Nacos では、迅速な検証および反復を支援するプロンプトデバッグ機能を提供しています。コンソール上で直接質問を入力することで、デプロイメントなしに即座に AI の応答を確認できます。また、テンプレート変数を動的に調整して出力の変化を観察し、最適なパラメーター組み合わせを迅速に特定することも可能です。
MSE Service Registry and Configuration Center Management Console にログインします。上部メニューバーで、リージョンを選択します。
左側のナビゲーションウィンドウで、Service Registry and Configuration Center > Instances を選択します。
Instances ページで、対象のインスタンス名をクリックします。
左側のナビゲーションウィンドウで、Prompt management をクリックします。ページ左上隅で、名前空間を選択します。
プロンプト名をクリックして詳細ページに移動します。
調整後、右側のデバッグパネルでプロンプトをデバッグします。
ユーザー入力を入力し、プロンプトテンプレート内で参照されているパラメーターを入力します。
デバッグ用のモデルを選択します。
必要に応じてモデルパラメーターを調整します。
右上隅の Generate response ボタンをクリックします。
モデルの応答が応答セクションに表示されます。
プロンプトの検索
MSE Service Registry and Configuration Center Management Console にログインします。上部メニューバーで、Regionを選択します。
左側のナビゲーションウィンドウで、マイクロサービスの登録 > インスタンス を選択します。
インスタンス ページで、対象のインスタンス名をクリックします。
左側のナビゲーションウィンドウで、Prompt management を選択します。ページ左上隅で、Namespaceを選択します。
プロンプトリスト上部の検索ボックスに検索したいプロンプト名を入力し、
ボタンをクリックするか Enter キーを押します。あいまい検索がサポートされています。
Nacos クライアントを使用したプロンプトの照会およびサブスクライブ
Python
依存関係のインストール
pip install nacos-sdk-pythonクライアント構成
from v2.nacos import NacosNamingService, NacosConfigService, NacosAIService, ClientConfigBuilder, GRPCConfig, \
Instance, SubscribeServiceParam, RegisterInstanceParam, DeregisterInstanceParam, \
BatchRegisterInstanceParam, GetServiceParam, ListServiceParam, ListInstanceParam, ConfigParam
client_config = (ClientConfigBuilder()
.access_key(os.getenv('NACOS_ACCESS_KEY'))
.secret_key(os.getenv('NACOS_SECRET_KEY'))
.server_address(os.getenv('NACOS_SERVER_ADDR', 'localhost:8848'))
.log_level('INFO')
.grpc_config(GRPCConfig(grpc_timeout=5000))
.build())プロンプトの照会およびサブスクライブ
config_client = await NacosConfigService.create_config_service(client_config)
# Query prompt
prompt = await config_client.get_config(ConfigParam(
data_id=f"{promptKey}.json",
group="nacos-ai-prompt"
))
# Subscribe to prompt
async def config_listener(tenant, data_id, group, prompt):
print("listen, tenant:{} data_id:{} group:{} prompt:{}".format(tenant, data_id, group, prompt))
await config_client.add_listener(f"{promptKey}.json", "nacos-ai-prompt", config_listener)
# Prompt format
# {
# "promptKey": "assistant",
# "version": "1.0.1",
# "template": "You are a professional {{language}} code generation assistant. Generate {{type}} code based on user requirements.\nRequirements:\n1. Code style: {{style}}\n2. Comment language: {{comment_lang}}\n3. Complexity: {{complexity}}\n",
# "commitMsg": "Initial version"
# }Java
依存関係の追加
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
<version>${version}</version>
</dependency>クライアント構成
String serverAddr = "localhost:8848";
ConfigService configService = NacosFactory.createConfigService(serverAddr);プロンプトの照会およびサブスクライブ
# Query the prompt
String prompt = configService.getConfig("{promptKey}.json", "nacos-ai-prompt", 5000);
# Subscribe to the prompt
configService.addListener("{promptKey}.json", "nacos-ai-prompt", new Listener() {
@Override
public void receiveConfigInfo(String prompt) {
System.out.println("Received prompt: " + prompt);
}
@Override
public Executor getExecutor() {
return null;
}
});