調(diào) Agent 的 Prompt 太痛苦了?這套“寫法 + 測(cè)評(píng)”救了我

0 評(píng)論 1908 瀏覽 5 收藏 14 分鐘

開發(fā)導(dǎo)購 Agent 過程中 “翻車” 不斷?Anthropic 發(fā)布的視頻詳細(xì)講解如何寫好 Agent 的 Prompt 與測(cè)評(píng)。Agent 并非更聰明的聊天機(jī)器人,而是在工具回路中自主推進(jìn)任務(wù)的系統(tǒng)。何時(shí)該用 Agent?復(fù)雜、高價(jià)值任務(wù)更適配。怎么寫好 Prompt?要像 Agent 思考,賦予合理啟發(fā)式等。測(cè)評(píng)又該怎么做?從 “小而真” 開始,評(píng)測(cè)結(jié)果與過程。本文將深入分享視頻中的關(guān)鍵觀點(diǎn),為 Agent 開發(fā)排憂解難。

最近在做導(dǎo)購Agent,工程側(cè)已經(jīng)開發(fā)完畢,但調(diào)Prompt、做測(cè)評(píng),每一個(gè)都令我痛苦萬分,因?yàn)榈教幎际恰胺嚞F(xiàn)場(chǎng)”:要么“思維太發(fā)散”,繞著用戶的問題走;要么“工具亂點(diǎn)”,命中一個(gè)tool就一條道走到黑;要么“跑不完”,說著說著卡住了,再?zèng)]了下文……

因此搜了一些Agent相關(guān)的論文、文章、視頻,企圖從技術(shù)底層抱抱佛腳…

正巧看到了Anthropic 8月1日在YouTube上發(fā)布了一個(gè)視頻《Prompting for Agents | Code w/ Claude》,詳細(xì)講了如何寫好Agent 的 Prompt、如何測(cè)評(píng)。

正好是我現(xiàn)在非常需要的內(nèi)容,因此今天的文章主要分享下該視頻的觀點(diǎn)。

這支視頻講了啥?(速覽版)

  • Agent的正確定義:不是“更聰明的聊天機(jī)器人”,而是“在工具回路中自主推進(jìn)任務(wù)的系統(tǒng)”:給定目標(biāo)→選擇/調(diào)用工具→觀察→決定下一步→直到達(dá)成停止條件。
  • 什么時(shí)候該用Agent:適合復(fù)雜、不確定路徑、且高價(jià)值的任務(wù);能被固定流程吃掉的,優(yōu)先Workflow。這個(gè)判斷框架與Anthropic的工程文《Buildingeffectiveagents》完全一致。
  • 如何寫好提示詞:要寫清目標(biāo)與成功標(biāo)準(zhǔn)、工具選擇原則、思考—行動(dòng)—反思節(jié)奏、啟發(fā)式(預(yù)算/不可逆動(dòng)作/停機(jī)條件)、輸出契約等;否則只是在給模型加戲。
  • 測(cè)評(píng)從簡(jiǎn)單、小批量開始:先把最小可用工具集跑通,再逐步加復(fù)雜度。

什么是Agent?

Agent = 在一個(gè)循環(huán)回路中使用工具的模型。給定目標(biāo)后,它會(huì)自主地:選擇/調(diào)用合適工具 → 觀察反饋 → 更新決策 → 繼續(xù)推進(jìn),直到滿足停止條件。它所依賴的“環(huán)境”包括:運(yùn)行環(huán)境、可用工具清單、提示詞(任務(wù)與邊界)。

Agent的組成

  • 目標(biāo)與停止條件。
  • 工具回路(Action–Observation):每一步都基于工具返回更新計(jì)劃。
  • 環(huán)境三件套:運(yùn)行環(huán)境/工具/系統(tǒng)提示(明確“Agent要完成什么”)。
  • “越簡(jiǎn)單越好”:提示與工具說明要清晰克制,別給花里胡哨的語言描述。

什么是“提示詞工程(prompt engineering)”?

Anthropic AI團(tuán)隊(duì)成員Hannah認(rèn)為“提示詞工程是一種系統(tǒng)性改進(jìn)用于大模型應(yīng)用的提示詞的方法——通過測(cè)試、評(píng)估、分析與對(duì)提示詞及工具的優(yōu)化,用自然語言進(jìn)行編程!

一個(gè)好的提示詞工程是所需能力包含:

  • 清晰、無歧義、精確的寫作;
  • 以科學(xué)思維制作評(píng)測(cè),不斷測(cè)試;
  • 產(chǎn)品化思維:對(duì)你的產(chǎn)品來說,理想的模型行為是什么;
  • 理解大模型的傾向與局限;
  • 匯總并分析失敗模式,并思考修復(fù)方法;
  • 思考邊界場(chǎng)景,讓提示在廣泛輸入下都穩(wěn)健。

寫提示詞 = 寫操作流程

Anthropic 的核心觀點(diǎn):Prompt 不是文案,是規(guī)則和流程。它要解決的不是“說得漂亮”,而是如何讓 Agent 在真實(shí)環(huán)境里把事辦完。這份規(guī)程至少包含五部分:

  • 角色與高層目標(biāo)(1–2句話說清你是誰、為啥而來)
  • 動(dòng)態(tài)上下文(檢索到的資料、用戶偏好、會(huì)話歷史)
  • 詳細(xì)任務(wù)指令(做什么、不做什么、成敗標(biāo)準(zhǔn))
  • 示例n-shot(可選,用于邊界提醒,不是“寫死流程”)
  • 重復(fù)關(guān)鍵指令(長(zhǎng)提示里尤其重要,防遺忘)

一個(gè)示例:

你是一名AI 旅行顧問(AI travel agent),任務(wù)是根據(jù)用戶輸入創(chuàng)建一份個(gè)性化旅行行程。你的目標(biāo)是:產(chǎn)出一份有吸引力、結(jié)構(gòu)清晰、切實(shí)可行的行程,既符合用戶偏好,也匹配指定的目的地與出行天數(shù)。

你將獲得以下信息:目的地、天數(shù)、用戶偏好。

在制定行程時(shí),請(qǐng)遵循以下指南:

  • 調(diào)研目的地及其熱門景點(diǎn),并結(jié)合用戶偏好。
  • 為每一天規(guī)劃活動(dòng),確保觀光—放松—本地體驗(yàn)之間的良好平衡。
  • 給出用餐建議,考慮當(dāng)?shù)孛朗?;如用戶提到飲食偏好,?qǐng)一并考慮。
  • 推薦住宿選項(xiàng),需與用戶偏好與預(yù)算相匹配。
  • 提供實(shí)用信息,如交通方式與預(yù)估花費(fèi)。
  • 注意可用天數(shù),制定現(xiàn)實(shí)可行的時(shí)間安排。

請(qǐng)按以下格式呈現(xiàn)你的行程:

  • 以目的地的簡(jiǎn)要介紹開頭。
  • 提供按天拆分的活動(dòng)、用餐與住宿安排。
  • 以額外提示/出行建議結(jié)尾。

現(xiàn)在,請(qǐng)基于提供的目的地、天數(shù)和用戶偏好,創(chuàng)建一份個(gè)性化旅行行程。你的建議應(yīng)當(dāng)既有創(chuàng)意又充分詳盡,確保行程既體現(xiàn)用戶興趣,也凸顯目的地的獨(dú)特之處。

什么時(shí)候該用 Agent?

不是所有場(chǎng)景都需要 Agent(很多時(shí)候反而不該用 Agent),它最適合復(fù)雜且高價(jià)值的任務(wù)。人可以按“固定步驟”一步步做完的工作,用工作流(workflow)可能更合適、更省資源。

判斷方法: 1)任務(wù)是否復(fù)雜到只知道終點(diǎn),不清楚具體怎么走、需要哪些信息與工具; 2)完成后是否“高價(jià)值”?低價(jià)值流程別浪費(fèi) Agent 的資源; 3)工具與數(shù)據(jù)是否可用?若給不了足夠工具/信息就讓它辦成事,那就先縮小范圍; 4)容錯(cuò)與糾錯(cuò)成本:難以發(fā)現(xiàn)/糾正的錯(cuò)誤,不適合讓 Agent 全自動(dòng)去跑。

2個(gè)適合Agent的例子:

寫代碼:你知道目標(biāo)是“把設(shè)計(jì)文檔落實(shí)成 PR”,但并不確定具體路徑、要如何迭代修改——高價(jià)值、強(qiáng)杠桿,適合 Agent。

數(shù)據(jù)分析:你清楚希望得到哪些洞見/可視化,但數(shù)據(jù)形態(tài)、清洗過程并不確定——這類探索式任務(wù)非常適配 Agent。

如何寫好Agent的Prompt?

原則一:像 Agent 那樣思考

模擬“Agent 身處的環(huán)境”——它能看到什么工具、工具會(huì)返回什么;甚至可以在腦內(nèi)模擬一遍:如果你站在 Agent 的角度,拿到這份工具說明,你會(huì)不會(huì)困惑?人類都看不懂的工作流,模型更不可能做對(duì)。

原則二:賦予“合理的啟發(fā)式(Heuristics)”

提示工程不是“寫字”,而是決定模型該擁有哪些概念與行為準(zhǔn)則。例如:我們給 Agent 一個(gè)重要概念——“不可逆性(irreversibility)”:避免做不可逆、可能傷害用戶或環(huán)境的動(dòng)作。再比如,給“檢索”Agent 設(shè)停止條件與預(yù)算:找到答案就停;簡(jiǎn)單問題<5次工具調(diào)用,復(fù)雜問題可到10或50;不要為“完美來源”無限搜索。這類“合理啟發(fā)式”都要在提示里清晰明確地寫出來。

原則三:明確“何時(shí)用哪種工具”

前沿模型一次能掛非常多的工具,但模型并不知道在你的組織里哪個(gè)工具對(duì)哪個(gè)任務(wù)更關(guān)鍵。必須在提示中寫出選擇原則:比如公司信息優(yōu)先搜 Slack、代碼問題查 GitHub/Sentry、業(yè)務(wù)報(bào)表走 DataDog……別只給一串簡(jiǎn)短描述就指望它自己悟透。

原則四:引導(dǎo)“思考—行動(dòng)”的過程

不要只“打開思考”,而要具體引導(dǎo):

  • 讓它先規(guī)劃:這個(gè)查詢復(fù)雜度如何?預(yù)期用幾次工具??jī)?yōu)先查哪些來源?如何判定成功?
  • 在工具調(diào)用之間穿插反思:網(wǎng)頁結(jié)果不必然正確,需要質(zhì)量評(píng)估/二次求證/必要的免責(zé)聲明。
  • 提前寫上副作用與停止條件:比如“若找不到完美來源,最多N次搜索后停止”。

原則五:管理上下文窗口

Agent 容易撞到上下文上限。做法包括:

  • 壓縮:臨近窗口上限時(shí)自動(dòng)把上下文濃縮為高密度摘要,交給新的會(huì)話繼續(xù)跑。
  • 外部記憶:把關(guān)鍵過程/狀態(tài)寫入外部文件,需要時(shí)再讀取。
  • 子Agent:把搜索等“吃上下文”的工作分給子代理,壓縮后再交給主代理整合、撰寫報(bào)告。

原則六:讓 Claude 發(fā)揮所長(zhǎng) + 工具要“少而精”

先用一套最小可用的提示和工具跑起來,再逐步加復(fù)雜度。避免給一堆名字相似/職責(zé)重疊的工具(例如 6 個(gè)“搜索”工具查不同庫),會(huì)讓模型混淆——能合并就合并,并把用途說清清楚楚。

測(cè)評(píng)怎么做:從“小而真”開始

效果量越大,樣本越可?。浩鸩讲恍枰习贄l,只要幾條真實(shí)用例,每次改 Prompt/工具文檔都能看到顯著變化。

用真實(shí)任務(wù)評(píng)測(cè):盡量讓評(píng)測(cè)題就像用戶會(huì)問的那種,且能用現(xiàn)有工具找到標(biāo)準(zhǔn)答案。

LLM 評(píng)審 + 量表(rubric) 很有用:只要規(guī)則清楚,模型能勝任“打分官”。

人評(píng)無法被完全替代:每周都要有人“猛懟 + 手感校驗(yàn) + 真實(shí)用戶試用”,人類最能摸到“硌手的邊角”。

評(píng)測(cè)都評(píng)什么:結(jié)果 & 過程

1)結(jié)果向(Outcome)

  • 答案正確性:用LLM-judge判定回答是否正確、是否覆蓋關(guān)鍵點(diǎn)。
  • 最終狀態(tài)達(dá)成:看Agent是否到達(dá)正確的最終狀態(tài)(例如:外部系統(tǒng)里確實(shí)發(fā)生了期望變更)。

2)過程向(Process)

  • 工具使用正確性:評(píng)估是否選對(duì)工具與參數(shù),以及遇錯(cuò)能否恢復(fù)(圖示中“從參數(shù)錯(cuò)誤恢復(fù)”的示例)。
  • 其他常見過程量化:步驟數(shù)/時(shí)延、無效調(diào)用、異常與回退等——這些直接從對(duì)話與調(diào)用日志即可統(tǒng)計(jì)。

LLM-as-judge 的最小做法:給評(píng)審模型一份量表和結(jié)構(gòu)化輸出格式,它就能穩(wěn)定工作。

示例量表要點(diǎn):

  • 是否滿足硬性約束(0/1/2)
  • 證據(jù)質(zhì)量與可追溯性(0/1/2)
  • 取舍與理由是否清晰(0/1/2)
  • 是否給出風(fēng)險(xiǎn)/不確定性(0/1/2)
  • 輸出契約是否遵守(0/1/2)
  • 合計(jì)0–10分,并給一句話短評(píng)

測(cè)評(píng)起步流程:

  • 選10–20條真實(shí)任務(wù)樣例(最好能用現(xiàn)有工具找到明確答案/標(biāo)準(zhǔn))。
  • 為每條樣例寫明期望結(jié)果/最終狀態(tài)(方便做τ-bench)。
  • 準(zhǔn)備一份rubric,用LLM-as-judge打分;必要處穿插人評(píng)抽檢。
  • 觀察結(jié)果+過程兩套指標(biāo)的變化;對(duì)失敗樣例做回放,定位是選擇錯(cuò)工具、參數(shù)錯(cuò)誤、步驟冗長(zhǎng)還是停止條件/啟發(fā)式不當(dāng)。
  • 小改就復(fù)測(cè):每次只調(diào)整一個(gè)維度(如Prompt的啟發(fā)式或某個(gè)工具文檔),再跑同一小集合對(duì)比效果。

本文由 @AI產(chǎn)品泡騰片 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)作者許可,禁止轉(zhuǎn)載

題圖來自Unsplash,基于CC0協(xié)議

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 目前還沒評(píng)論,等你發(fā)揮!