踐(26):Prompt Management)
系列AI Agent 工程實(shí)踐上一篇第 25 篇《Memory Service》下一篇第 27 篇《日志系統(tǒng)Logging》一、開(kāi)場(chǎng)一次改提示詞引發(fā)的雪崩一個(gè)團(tuán)隊(duì)把系統(tǒng)提示詞寫(xiě)在代碼常量里SYSTEM_PROMPT 你是...。某天運(yùn)營(yíng)要微調(diào)語(yǔ)氣開(kāi)發(fā)改了常量、發(fā)版、回滾兩次才對(duì)。更糟的是沒(méi)人知道線上跑的到底是哪一版提示詞——因?yàn)樘崾驹~和代碼綁死沒(méi)有版本記錄。上篇25講記憶收口這篇講提示詞收口——Prompt Management。提示詞不是文本是會(huì)被頻繁調(diào)、要可回溯、要能 A-B 的生產(chǎn)資產(chǎn)。二、問(wèn)題背景prompt.txt vs Prompt Registry裸寫(xiě)版SYSTEM_PROMPT 你是一個(gè)客服語(yǔ)氣專業(yè)。 # 改語(yǔ)氣改代碼、發(fā)版、祈禱管理版from prompt.registry import get_prompt prompt get_prompt(customer_system, versionv3) # 按版本取 rendered prompt.render(user_name張三) # 注入變量差別提示詞從代碼里的字符串變成有版本、有變量、可測(cè)試的資產(chǎn)。三、錯(cuò)誤嘗試三種提示詞管理翻車錯(cuò)誤 1寫(xiě)死成常量如上。改提示 改代碼 發(fā)版運(yùn)營(yíng)無(wú)法自助且無(wú)法回溯昨天線上是哪版。錯(cuò)誤 2用字符串拼接prompt 你是 role 服務(wù) user 。 # 拼接易錯(cuò)、難測(cè)拼接出的最終 prompt 不可見(jiàn)、難單測(cè)出問(wèn)題時(shí)不知道是哪段拼壞的。錯(cuò)誤 3不區(qū)分模板和變量把角色設(shè)定和用戶名字混在一個(gè)字符串里想改角色要改整段想換用戶要改整段——兩件變化原因綁死了。四、關(guān)鍵觀察Prompt 模板 變量 版本好的 Prompt Management 把提示詞拆成Template固定骨架角色、規(guī)則可版本化。Variables動(dòng)態(tài)注入用戶名、上下文運(yùn)行時(shí)填。Version每次改模板存一版可回滾、可 A-B。Registry按名字版本取調(diào)用方不寫(xiě)死字符串。A-B Test同一場(chǎng)景兩版提示按比例流量對(duì)比效果。提示詞是生產(chǎn)資產(chǎn)不是開(kāi)發(fā)隨手寫(xiě)的字符串。它會(huì)被運(yùn)營(yíng)調(diào)、會(huì)被 A-B、會(huì)被審計(jì)當(dāng)時(shí)線上是哪版——所以必須像代碼一樣版本化、像配置一樣可注入。五、最終方案Prompt Management 長(zhǎng)什么樣prompt/ ├── registry.py # get_prompt(name, version) ├── templates/ │ ├── customer_system.v3.yaml # 模板 變量聲明 │ └── customer_system.v2.yaml └── ab.py # A-B 分流邏輯模板YAMLname: customer_system version: v3 template: | 你是{{role}}服務(wù)用戶{{user_name}}。 規(guī)則 - 不承諾具體賠付金額 variables: [role, user_name]調(diào)用p get_prompt(customer_system, versionv3) text p.render(role客服, user_name張三) # A-B50% 流量用 v350% 用 v4 variant ab.pick(customer_system) # 返回 v3 或 v4分流結(jié)構(gòu)Mermaid六、設(shè)計(jì)權(quán)衡什么時(shí)候上 Prompt Management場(chǎng)景建議理由原型、提示詞一次寫(xiě)好不再動(dòng)常量即可管理是負(fù)債提示詞常調(diào)、多人協(xié)作Template Version Registry回溯A-B 剛需要優(yōu)化效果 A-B Test數(shù)據(jù)驅(qū)動(dòng)改提示反過(guò)度工程不要為一條永不改的提示上整套帶 UI 的 Prompt 平臺(tái)。核心是模板 / 變量 / 版本三件事形式可簡(jiǎn)。七、總結(jié)? 提示詞寫(xiě)死成常量 改語(yǔ)氣要發(fā)版 無(wú)法回溯線上版本。? 三種翻車常量寫(xiě)死、字符串拼接、模板變量不分。? Prompt Template骨架/版本 Variables注入 Version回滾/A-B Registry按名取。? 提示詞是生產(chǎn)資產(chǎn)要像代碼一樣版本化、像配置一樣可注入。? 反過(guò)度工程核心是模板/變量/版本三件事不必上重型平臺(tái)。下一篇進(jìn)入看不見(jiàn)就優(yōu)化不了的底座——日志系統(tǒng) Logging。27參考資料帶用途說(shuō)明本系列25Memory Service本文與25同構(gòu)——把散落資產(chǎn)收口成可管理的服務(wù)。本系列22AI Agent 項(xiàng)目應(yīng)該如何分層本文對(duì)應(yīng)config/周邊的提示詞治理也可歸入 agent/ 的定義。本系列04Review——為什么 AI Agent 必須每天復(fù)盤(pán)提示詞版本回溯是復(fù)盤(pán)的一部分。Anthropic Prompt Engineering 文檔docs.anthropic.com模板/變量化提示詞設(shè)計(jì)的最佳實(shí)踐參考。本文是 AI Agent 工程實(shí)踐系列的第 26 篇第四階段第六篇。系列導(dǎo)航上一篇第 25 篇《Memory Service》下一篇第 27 篇《日志系統(tǒng)Logging》