隨著AI Agent應用情境的持續深化,Prompt已從簡單的提示演化為關鍵的系統級配置資產,直接影響模型輸出的準確性、一致性和安全性。在多Agent協同環境下,分散管理、缺乏版本控制及環境配置不一致等問題,易引發行為偏差與營運風險。為解決此類問題,Nacos在3.1.1版本中正式引入Prompt管理能力,提供統一儲存、版本控制、多環境隔離和動態更新機制,支援對Prompt實現可治理、可觀測和可復原的全生命週期管理。當Nacos執行個體由MSE託管時,使用者可通過MSE控制台對Prompt進行集中化配置與管理,提升研發協作效率與生產環境穩定性。本文介紹如何通過MSE平台高效管理Prompt資源。
前提條件
已開通MSE服務。
已建立執行個體並且升級Nacos引擎版本至
3.1.1.0及以上版本。已建立命名空間。
建立Prompt
登入MSE註冊配置中心管理主控台,在頂部功能表列選擇地域。
在左側導覽列,選擇注册配置中心 > 实例列表。
在实例列表頁面,單擊目標執行個體名稱。
在左側導覽列,選擇Prompt管理,在頁面左上方選擇命名空间,然後單擊建立Prompt。
在建立Prompt頁面,完成以下參數配置,然後單擊確定。
Prompt名稱:建立後不可修改。
版本號碼:標識Prompt的版本,遵循語義化版本號碼規範(主要版本.次版本.修訂版本),例如 1.0.0。
功能描述:對Prompt作用和使用情境的簡單介紹。
Prompt模板:Prompt的具體內容,支援使用
{{參數名}}的格式定義可替換參數。
刪除Prompt
登入MSE註冊配置中心管理主控台。在頂部功能表列選擇地域。
在左側導覽列,選擇注册配置中心 > 实例列表。
在实例列表頁面,單擊目標執行個體名稱。
在左側導覽列,選擇Prompt管理,在頁面左上方選擇命名空间,單擊目標Prompt操作列下方的刪除。
查看Prompt詳情
登入MSE註冊配置中心管理主控台,在頂部功能表列選擇地域。
在左側導覽列,選擇注册配置中心 > 实例列表。
在实例列表頁面,單擊目標執行個體名稱。
在左側導覽列,單擊Prompt管理,並在頁面左上方,選擇命名空间。
在該命名空間下,可以查看該Nacos執行個體上對應命名空間下的所有Prompt的資訊,包括Prompt名稱、發布版本以及描述資訊。
單擊Prompt名稱查看Prompt詳情。
在Prompt詳情頁面,使用者可以查看對應Prompt目前的版本的版本號碼、提交資訊、Prompt模板和其中解析的參數等資訊。
在Prompt名稱右側,通過下拉框查看該Prompt所有歷史版本號碼。點擊對應的歷史版本號碼,可查看對應版本資訊。
編輯Prompt
登入MSE註冊配置中心管理主控台,並在頂部功能表列選擇地域。
在左側導覽列,選擇注册配置中心 > 实例列表。
在实例列表頁面,單擊目標執行個體名稱。
在左側導覽列,選擇Prompt管理。在頁面左上方,選擇命名空间,然後單擊目標Prompt操作列下方的編輯。
在編輯Prompt面板,對Prompt的內容進行編輯。
基本資料:對Prompt模板進行修改,參數預覽模組可以比較修改前後的Prompt支援的參數的變化。MSE Nacos提供填寫模板樣本,可基於樣本進行修改。
版本資訊:填寫新的版本號碼和版本提交資訊,對本次版本變更進行描述。要求新版本的版本號碼必須大於現有的最新的版本號碼。
前往Prompt列表頁,點擊描述資訊列的編輯表徵圖,可對Prompt描述進行修改。
版本發布後無法再進行修改,所有的修改都需要發布新的版本,目前Prompt管理預設儲存 30天內的歷史版本。
最佳化Prompt
MSE Nacos內建AI最佳化引擎,自動分析和改進Prompt品質。可以消除歧義表達使指令更清晰,改善邏輯結構增強可讀性,根據應用情境調整表達風格,自動添加安全約束和邊界條件。
登入MSE註冊配置中心管理主控台,在頂部功能表列選擇地區。
在左側導覽列,選擇註冊配置中心 > 執行個體列表。
在執行個體列表頁面,單擊目標執行個體名稱。
在左側導覽列,單擊Prompt管理,並在頁面左上方,選擇命名空間。
單擊Prompt名稱進入Prompt詳情頁。
單擊最佳化Prompt按鈕,輸入最佳化要求並單擊最佳化。
等待一段時間後返回最佳化後的內容,可以選擇是否替換。
替換後,單擊右上方發布新版本即可發布最佳化後的Prompt。
調試Prompt
MSE Nacos提供Prompt調試功能,支援快速驗證和迭代。可以在控制台直接輸入問題即時查看AI響應,無需部署即可驗證效果。支援動態調整模板變數觀察輸出變化,快速找到最優參數組合。
登入MSE註冊配置中心管理主控台,在頂部功能表列選擇地區。
在左側導覽列,選擇註冊配置中心 > 執行個體列表。
在執行個體列表頁面,單擊目標執行個體名稱。
在左側導覽列,單擊Prompt管理,並在頁面左上方,選擇命名空間。
單擊Prompt名稱進入Prompt詳情頁。
完成調整後,在右側調試Prompt分欄進行Prompt調試:
填充使用者輸入和Prompt模版中對應的參數。
選擇調試的模型。
根據需要調整模型的參數。
點擊右上方模型產生回答按鈕。
模型回答一欄中返回模型的響應內容。
搜尋Prompt
登入MSE註冊配置中心管理主控台,在頂部功能表列選擇地域。
在左側導覽列,選擇注册配置中心 > 实例列表。
在实例列表頁面,單擊目標執行個體名稱。
在左側導覽列,選擇Prompt管理。在頁面左上方,選擇命名空间。
在Prompt列表上方搜尋方塊內輸入需要搜尋的目標Prompt名稱,然後單擊
按鈕或單擊斷行符號鍵進行搜尋,支援模糊搜尋。
通過Nacos用戶端對Prompt進行查詢和訂閱
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())查詢和訂閱Prompt
config_client = await NacosConfigService.create_config_service(client_config)
#查詢 Prompt
prompt = await config_client.get_config(ConfigParam(
data_id=f"{promptKey}.json",
group="nacos-ai-prompt"
))
#訂閱 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 格式
# {
# "promptKey": "assistant",
# "version": "1.0.1",
# "template": "你是一個專業的{{language}}代碼產生助手,請根據使用者需求產生{{type}}的代碼。要求:\n1. 代碼風格:{{style}}\n2. 注釋語言:{{comment_lang}}\n3. 複雜度:{{complexity}}\n",
# "commitMsg": "這是一個初始版本"
# }Java
依賴引入
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
<version>${version}</version>
</dependency>用戶端配置
String serverAddr = "localhost:8848";
ConfigService configService = NacosFactory.createConfigService(serverAddr);查詢和訂閱Prompt
# 查詢 prompt
String prompt = configService.getConfig("{promptKey}.json", "nacos-ai-prompt", 5000);
# 訂閱 Prompt
configService.addListener("{promptKey}.json", "nacos-ai-prompt", new Listener() {
@Override
public void receiveConfigInfo(String prompt) {
System.out.println("recieve prompt:" + configInfo);
}
@Override
public Executor getExecutor() {
return null;
}
});