全部產品
Search
文件中心

Microservices Engine:AgentScope接入Nacos Prompt管理

更新時間:Jan 20, 2026

在AI Agent應用開發中,Prompt的管理往往分散在代碼中,難以實現統一維護和動態調整。當需要最佳化Prompt或進行A/B測試時,往往需要修改代碼並重新部署。為解決這一痛點,agentscope-extension-nacos向外延展群組件提供了NacosPromptListener能力,支援將Prompt託管至MSE Nacos,實現Prompt的集中管理、變數渲染和熱更新,無需重啟應用即可動態調整Agent行為。

前提條件

安裝向外延展群組件

pip install agentscope-extension-nacos

配置 Nacos 串連

方式一:環境變數配置(推薦)

# Nacos 伺服器位址(必需)
export NACOS_SERVER_ADDRESS=mse-xxx.nacos.mse.aliyuncs.com:8848

# Nacos 命名空間(必需)
export NACOS_NAMESPACE_ID=your-namespace-id

# 阿里雲 MSE 認證(必需)
export NACOS_ACCESS_KEY=your-access-key
export NACOS_SECRET_KEY=your-secret-key

方式二:代碼配置

from v2.nacos import ClientConfigBuilder
from agentscope_extension_nacos.utils.nacos_service_manager import NacosServiceManager

client_config = (ClientConfigBuilder()
                 .server_address("mse-xxx.nacos.mse.aliyuncs.com:8848")
                 .namespace_id("your-namespace-id")
                 .access_key("your-access-key")
                 .secret_key("your-secret-key")
                 .build())

# 設定為全域配置
NacosServiceManager.set_global_config(client_config)

在 MSE Nacos 控制台建立 Prompt

  1. 登入MSE註冊配置中心管理主控台,在頂部功能表列選擇地區

  2. 在左側導覽列,選擇Prompt管理,在頁面左上方選擇命名空間,然後單擊建立Prompt

  3. 建立Prompt頁面,完成以下參數配置:

    參數

    樣本值

    說明

    Prompt 名稱

    my-assistant

    用於在代碼中通過 prompt_key 引用該 Prompt

    版本號碼

    1.0.0

    遵循語義化版本號碼規範(主要版本.次版本.修訂版本)

    功能描述

    技術助手提示詞

    對 Prompt 作用和使用情境的簡單介紹

    Prompt模板

    見下方樣本

    Prompt 的具體內容,支援 {{參數名}} 變數文法

Prompt 模板樣本

你是{{role}},一個專註於{{domain}}領域的智能助手。請使用{{language}}回複使用者問題。
說明

Prompt 模板支援 {{變數名}} 文法定義可替換參數。在 Agent 代碼中,通過 args 參數傳入對應的變數值,向外延展群組件會自動完成渲染。

在AgentScope中使用NacosPromptListener

基礎用法

import asyncio
from agentscope.agent import ReActAgent
from agentscope.model import DashScopeChatModel
from agentscope.formatter import DashScopeChatFormatter
from agentscope.memory import InMemoryMemory
from agentscope_extension_nacos.prompt.nacos_prompt_listener import NacosPromptListener


async def main():
    # 1. 建立 NacosPromptListener
    # prompt_key 對應 MSE Nacos 控制台中建立的 Prompt 名稱
    # args 用於渲染 Prompt 模版中的 {{變數名}}
    prompt_listener = NacosPromptListener(
        prompt_key="my-assistant",  # 對應控制台中的 Prompt 名稱
        args={
            "role": "技術專家",
            "domain": "雲端運算和微服務",
            "language": "中文",
        },
    )

    # 2. 建立 Agent(sys_prompt 初始為空白,將由 Listener 設定)
    agent = ReActAgent(
        name="TechExpert",
        sys_prompt="",
        model=DashScopeChatModel(
            model_name="qwen-max",
            api_key="your-api-key",
        ),
        formatter=DashScopeChatFormatter(),
        memory=InMemoryMemory(),
    )

    # 3. 將 Agent 綁定到 PromptListener
    prompt_listener.attach_agent(agent)

    # 4. 初始化 Listener(從 Nacos 載入 Prompt 並註冊變更監聽)
    await prompt_listener.initialize()

    # 此時 agent 的 sys_prompt 已被設定為:
    # "你是技術專家,一個專註於雲端運算和微服務領域的智能助手。請使用中文回複使用者問題。"

    # 5. 使用 Agent 進行對話
    from agentscope.message import Msg
    response = await agent(Msg(name="user", content="什麼是微服務架構?", role="user"))
    print(response.content)

    # 6. 清理資源
    prompt_listener.detach_agent()


if __name__ == "__main__":
    asyncio.run(main())
    

核心功能說明

功能

說明

變數渲染

模板中的 {{變數名}} 會被 args 字典中對應的值替換

熱更新

在 Nacos 控制台修改 Prompt 後,Agent 會自動擷取最新配置並更新,無需重啟

懶初始化

支援顯式調用 initialize() 或在首次使用時自動初始化

動態更新與灰階發布

情境一:Prompt 熱更新

當需要最佳化 Prompt 時,只需在 MSE Nacos 控制台編輯 Prompt 並發布新版本,所有綁定的 Agent 會自動擷取最新配置:

  1. Prompt 管理中找到目標 Prompt,點擊編輯

  2. 修改Prompt模板內容。

  3. 填寫新的版本號碼(如 1.0.1)和提交資訊。

  4. 點擊發布

重要

版本發布後無法修改,所有變更都需要發布新版本。Prompt 管理預設儲存 30 天內的歷史版本,支援快速復原。

情境二:多角色 Agent 配置

通過args參數,同一個Prompt模板可以渲染為不同角色的Agent:

# 模板: "你是{{role}},專註於{{domain}}領域。"

# 支援人員 Agent
tech_listener = NacosPromptListener(
    prompt_key="support-agent",
    args={"role": "支援人員工程師", "domain": "雲產品技術問題"},
)

# 銷售顧問 Agent
sales_listener = NacosPromptListener(
    prompt_key="support-agent",
    args={"role": "銷售顧問", "domain": "產品選型和報價"},
)

API參考

NacosPromptListener

參數

類型

必填

說明

prompt_key

str

對應MSE Nacos控制台中建立的Prompt名稱

nacos_client_config

ClientConfig

Nacos用戶端配置,不傳則使用全域配置

args

dict

用於渲染模板變數的字典

方法

說明

attach_agent(agent)

將Agent綁定到Listener,Prompt更新時自動同步

detach_agent()

解除Agent綁定

initialize()

顯示初始化,載入Prompt並註冊變更監聽

最佳實務

  1. Prompt 版本管理:為每次Prompt變更發布新版本,便於追溯和復原。

  2. 環境隔離:使用不同的命名空間隔離開發、測試、生產環境的Prompt。

  3. 變數複用:將可變部分(如角色、領域、語言)抽取為模板變數,提高Prompt複用性。

相關文檔