智能體 Agent 與工作流構(gòu)建實(shí)戰(zhàn)指南:從選型決策到高效實(shí)施
作者 | fred
歷經(jīng)多個(gè)業(yè)務(wù)系統(tǒng)的構(gòu)建,我深感Anthropic的《Build effective agents》一文與自身實(shí)戰(zhàn)經(jīng)歷高度契合。本文在詳解工作流與Agent的技術(shù)選型標(biāo)準(zhǔn)、設(shè)計(jì)模式應(yīng)用及實(shí)施要點(diǎn)的同時(shí),也融入了我的實(shí)戰(zhàn)心得與實(shí)踐經(jīng)驗(yàn)總結(jié)。無(wú)論您正考慮構(gòu)建工作流系統(tǒng)還是Agent系統(tǒng),都能在此找到適合場(chǎng)景的最佳實(shí)踐方案。特別值得關(guān)注的是文末的工具提示工程部分,這是Agent成功實(shí)施的關(guān)鍵因素。
本文從Anthropic的文章《Build effective agents》出發(fā),為構(gòu)建高效的工作流、Agent提出實(shí)戰(zhàn)指南。我在保留原文精華的基礎(chǔ)上增強(qiáng)了三個(gè)核心方面:
核心內(nèi)容:
- 技術(shù)選型指南:明確工作流/Agent選用標(biāo)準(zhǔn)。
- 設(shè)計(jì)模式解析:通過(guò)實(shí)際業(yè)務(wù)場(chǎng)景展示復(fù)雜工作流模式的應(yīng)用。
- 實(shí)踐要點(diǎn)擴(kuò)展:增添詳細(xì)的實(shí)施建議和操作要點(diǎn),將理論轉(zhuǎn)化為可執(zhí)行方案。
本文適合AI Agent技術(shù)管理者、開(kāi)發(fā)者、產(chǎn)品經(jīng)理及愛(ài)好者閱讀,通過(guò)實(shí)踐層面的指導(dǎo),幫您實(shí)現(xiàn)更合理的方案與更高效的實(shí)施。
一、Agent概述
1. 什么是Agent?
"Agent"有多種定義方式。部分客戶將其視為完全自主系統(tǒng),能在較長(zhǎng)時(shí)間內(nèi)獨(dú)立運(yùn)行,使用各種工具完成復(fù)雜任務(wù)。也有人用此術(shù)語(yǔ)描述更固定的、預(yù)定義的工作流。Anthropic將這些變體歸類為類Agent系統(tǒng),但在工作流和智能體間做了重要區(qū)分:
2. Workflow V.S Agent
在附錄1("Agent實(shí)戰(zhàn)")中,Anthropic描述了客戶在使用這類系統(tǒng)時(shí)發(fā)現(xiàn)特別有價(jià)值的兩個(gè)應(yīng)用領(lǐng)域。
二、何時(shí)使用Agent
簡(jiǎn)單性原則:適用場(chǎng)景評(píng)估
Anthropic強(qiáng)烈建議:在構(gòu)建LLM應(yīng)用時(shí),尋找盡可能簡(jiǎn)單的解決方案,只在必要時(shí)增加應(yīng)用復(fù)雜性。
關(guān)鍵權(quán)衡:類Agent系統(tǒng)通常以延遲和成本為代價(jià)換取更高性能,應(yīng)謹(jǐn)慎評(píng)估這種取舍。
復(fù)雜性增加的指導(dǎo)原則:
- 選擇工作流:當(dāng)任務(wù)明確定義,需要可預(yù)測(cè)性和一致性
- 選擇Agent:當(dāng)任務(wù)需要靈活性和模型驅(qū)動(dòng)的動(dòng)態(tài)決策
重要提示:對(duì)許多應(yīng)用而言,優(yōu)化單個(gè)LLM調(diào)用(通過(guò)檢索增強(qiáng)和上下文示例)通常已足夠有效。
三、何時(shí)、如何使用“Agent框架”
1. 框架使用的權(quán)衡考量
開(kāi)發(fā)框架雖然便捷,但常存在過(guò)度抽象問(wèn)題,使底層提示詞和LLM調(diào)用被隱藏。這導(dǎo)致兩個(gè)主要風(fēng)險(xiǎn):
- 使用框架開(kāi)發(fā)的Agent系統(tǒng)難以有效調(diào)試
- 簡(jiǎn)化的搭建流程使開(kāi)發(fā)者容易過(guò)度增加系統(tǒng)復(fù)雜性
2. 實(shí)用開(kāi)發(fā)建議
Anthropic建議采取漸進(jìn)式開(kāi)發(fā)方法:
- 優(yōu)先直接使用LLM API:大多數(shù)模式可通過(guò)幾行代碼實(shí)現(xiàn)
- 深入理解框架底層:如選擇框架,確保理解其內(nèi)部工作機(jī)制
- 避免錯(cuò)誤假設(shè):對(duì)框架底層工作原理的誤解是項(xiàng)目失敗的常見(jiàn)原因
“我們建議開(kāi)發(fā)者直接使用LLM API:許多模式可以用幾行代碼實(shí)現(xiàn)。如果你使用框架,請(qǐng)確保理解底層代碼。對(duì)底層工作的錯(cuò)誤假設(shè)是客戶錯(cuò)誤的常見(jiàn)來(lái)源?!?/p>
參考Anthropic的cookbook[1]獲取示例實(shí)現(xiàn)。
四、Agent系統(tǒng)設(shè)計(jì)模式
本節(jié)探討生產(chǎn)環(huán)境中常見(jiàn)的類Agent系統(tǒng)模式。Anthropic從基礎(chǔ)構(gòu)建模塊——增強(qiáng)型大語(yǔ)言模型(LLM)開(kāi)始,逐步增加復(fù)雜性,從簡(jiǎn)單組合工作流到自主Agent。
1. 增強(qiáng)型LLM模式
定義:類Agent系統(tǒng)最基礎(chǔ)的模塊是"增強(qiáng)的LLM",即具備檢索、工具使用和記憶等功能的語(yǔ)言模型。Anthropic當(dāng)前的模型能夠主動(dòng)使用這些功能——生成搜索查詢、選擇合適工具以及確定需要記憶的信息。
增強(qiáng)型LLM
工程實(shí)現(xiàn)的關(guān)鍵要點(diǎn):
- 為特定應(yīng)用場(chǎng)景定制增強(qiáng)能力
- 確保為L(zhǎng)LM提供簡(jiǎn)單、文檔完善的接口
雖然實(shí)現(xiàn)這些增強(qiáng)功能的方法很多,一種推薦方式是通過(guò)Anthropic最近發(fā)布的模型上下文協(xié)議(MCP),該協(xié)議允許開(kāi)發(fā)者通過(guò)簡(jiǎn)單的客戶端實(shí)現(xiàn)與不斷擴(kuò)展的第三方工具生態(tài)系統(tǒng)集成。
2. 工作流模式
(1) 提示鏈
定義:提示鏈將任務(wù)分解為一系列有序步驟,每個(gè)LLM調(diào)用處理前一個(gè)調(diào)用的輸出。可在任何中間步驟添加程序檢查("門控")以確保流程保持在正確軌道上。
提示鏈工作流
適用場(chǎng)景:
- 任務(wù)可以輕松且清晰地分解為固定子任務(wù)時(shí)
- 主要目標(biāo)是通過(guò)犧牲延遲來(lái)提高準(zhǔn)確性,使每個(gè)LLM調(diào)用處理更簡(jiǎn)單的子任務(wù)
應(yīng)用示例:
- 生成營(yíng)銷文案,然后將其翻譯成不同的語(yǔ)言。
- 編寫文檔大綱,檢查大綱是否符合特定標(biāo)準(zhǔn),然后基于大綱撰寫文檔。
(2) 路由
定義:路由工作流對(duì)輸入進(jìn)行分類并將其引導(dǎo)到專門的后續(xù)任務(wù)。這種工作流實(shí)現(xiàn)關(guān)注點(diǎn)分離,并構(gòu)建更專門化的提示。不使用路由時(shí),為某一類輸入優(yōu)化可能會(huì)降低其他類型輸入的處理效果。
路由工作流
適用場(chǎng)景:
- 復(fù)雜任務(wù)包含明顯不同類別需要單獨(dú)處理
- 分類可由LLM或傳統(tǒng)分類模型/算法準(zhǔn)確完成
應(yīng)用示例:
- 引導(dǎo)不同類型客戶服務(wù)查詢(一般問(wèn)題、退款請(qǐng)求、技術(shù)支持)進(jìn)入不同的下游流程、提示和工具。
- 將簡(jiǎn)單/常見(jiàn)問(wèn)題路由到較小模型(如Claude 3.5 Haiku),將困難/不常見(jiàn)問(wèn)題路由到更強(qiáng)大模型(如Claude 3.5 Sonnet),優(yōu)化成本和響應(yīng)速度。
(3) 并行化
定義:并行化工作流讓LLM同時(shí)處理多個(gè)任務(wù),并通過(guò)程序化方式聚合輸出。分為兩種關(guān)鍵形式:
- 任務(wù)拆分(Sectioning):將任務(wù)拆分為獨(dú)立的子任務(wù)并行運(yùn)行
- 投票(Voting):多次運(yùn)行相同任務(wù)以獲得不同的結(jié)果
并行化工作流
適用場(chǎng)景:
- 當(dāng)拆分的子任務(wù)可以并行處理以提高速度
- 需要多種視角或不同嘗試來(lái)獲得更高置信度的結(jié)果時(shí)
- 復(fù)雜任務(wù)涉及多種考慮因素時(shí),由獨(dú)立LLM調(diào)用分別處理各因素效果更佳。
應(yīng)用示例:
①任務(wù)拆分(Sectioning)
- 安全防護(hù)機(jī)制:一個(gè)模型處理用戶查詢,另一個(gè)篩選不合規(guī)內(nèi)容,比單模型同時(shí)處理兩項(xiàng)功能效果更好。
- 自動(dòng)化評(píng)估LLM性能:設(shè)置多個(gè)并行分支,評(píng)估模型在不同方面的表現(xiàn)。
②投票(Voting)
- 代碼漏洞審查:多個(gè)并行LLM分支審查代碼并標(biāo)記問(wèn)題。
- 內(nèi)容審核:并行評(píng)估內(nèi)容合規(guī)性,不同提示專注于不同評(píng)估維度,通過(guò)差異化投票閾值平衡誤報(bào)率與漏報(bào)率。
應(yīng)用案例:內(nèi)容審核系統(tǒng)
假設(shè)我們正在構(gòu)建一個(gè)社交媒體平臺(tái)的內(nèi)容審核系統(tǒng),需要評(píng)估用戶發(fā)布的以下內(nèi)容是否適當(dāng):
用戶發(fā)布內(nèi)容示例:
"這些政客都是垃圾,應(yīng)該被扔進(jìn)海里喂鯊魚。大家都應(yīng)該去抗議這個(gè)荒謬的新政策,讓他們知道我們的憤怒!"
實(shí)現(xiàn)方案:
① 并行LLM提示(專注不同維度)
- 提示1:評(píng)估暴力內(nèi)容
- 提示2:評(píng)估仇恨言論
- 提示3:評(píng)估不文明用語(yǔ)
- 提示4:評(píng)估合法政治表達(dá)
- 提示5:評(píng)估煽動(dòng)抗議
② 差異化投票閾值設(shè)置
暴力威脅:低閾值(高敏感度)
- 提示1為"是"→內(nèi)容立即標(biāo)記
- 理由:潛在危害大,寧可誤報(bào)也不能漏報(bào)
仇恨言論:中等閾值
- 提示2和提示3都為"是"→內(nèi)容標(biāo)記
- 理由:需更多證據(jù)確認(rèn)真正仇恨言論
政治表達(dá):高閾值(寬容度高)
- 提示4為"是"且提示1、2不為"是"→允許內(nèi)容
- 理由:保護(hù)合法政治表達(dá),避免過(guò)度審查
③ 決策流程示例
并行評(píng)估結(jié)果:
- 提示1(暴力):"是"(提到"扔進(jìn)海里喂鯊魚")
- 提示2(仇恨):"否"(針對(duì)政客非受保護(hù)群體)
- 提示3(不文明):"是"(使用"垃圾"等貶義詞)
- 提示4(政治表達(dá)):"是"(政策批評(píng))
- 提示5(煽動(dòng)抗議):"是"(鼓勵(lì)和平抗議)
規(guī)則應(yīng)用:
- 暴力威脅閾值觸發(fā)(提示1為"是")
- 政治表達(dá)規(guī)則也滿足
- 系統(tǒng)標(biāo)記為"邊緣案例",轉(zhuǎn)人工審核
系統(tǒng)優(yōu)勢(shì):平衡誤報(bào)和漏報(bào)
這種多方面并行評(píng)估系統(tǒng)能夠:
- 減少漏報(bào):低閾值捕獲嚴(yán)重違規(guī)(如明確暴力威脅)
- 減少誤報(bào):多角度評(píng)估避免過(guò)度審查合法內(nèi)容
- 細(xì)粒度分析:識(shí)別具體問(wèn)題方面,非簡(jiǎn)單二分法
- 差異化風(fēng)險(xiǎn)應(yīng)對(duì):對(duì)不同類型違規(guī)設(shè)置不同敏感度
這種并行投票系統(tǒng)能同時(shí)考慮內(nèi)容多個(gè)維度,根據(jù)不同維度的嚴(yán)重性設(shè)置差異化決策標(biāo)準(zhǔn),實(shí)現(xiàn)更平衡、更細(xì)致的內(nèi)容適當(dāng)性評(píng)估,特別適合處理復(fù)雜邊界案例。
(4) 編排者-工作者
定義:在編排者-工作者工作流中,編排者(LLM)動(dòng)態(tài)分解任務(wù),將其委派給工作者LLM,并綜合其結(jié)果。
編排者-工作者工作流
適用場(chǎng)景:
- 適合無(wú)法預(yù)測(cè)所需子任務(wù)的復(fù)雜任務(wù)
- 與并行化的關(guān)鍵區(qū)別在于靈活性——子任務(wù)不是預(yù)定義的,而是由編排者根據(jù)任務(wù)輸入動(dòng)態(tài)確定
應(yīng)用示例:
- 需要對(duì)多個(gè)代碼文件進(jìn)行編輯的編碼項(xiàng)目
- 涉及從多個(gè)來(lái)源收集和分析信息的搜索任務(wù)
應(yīng)用案例:醫(yī)療研究助手
假設(shè)我們正在構(gòu)建一個(gè)醫(yī)療研究助手,研究人員輸入了以下查詢:
用戶查詢:
"我需要了解最近三年內(nèi)關(guān)于長(zhǎng)新冠與認(rèn)知障礙關(guān)聯(lián)的研究結(jié)果,特別是那些包含臨床試驗(yàn)數(shù)據(jù)的研究。"
編排者-工作者工作流實(shí)現(xiàn):
① 編排者規(guī)劃階段
編排者LLM接收查詢并制定搜索計(jì)劃:搜索計(jì)劃
- 識(shí)別關(guān)鍵搜索術(shù)語(yǔ)和相關(guān)概念
- 確定需要搜索的最佳來(lái)源
- 為每個(gè)來(lái)源設(shè)計(jì)特定搜索策略
- 分配多名工作者執(zhí)行不同來(lái)源的搜索
- 匯總和綜合所有發(fā)現(xiàn)的信息
- 確定是否需要進(jìn)一步搜索
- 準(zhǔn)備最終報(bào)告
② 工作者執(zhí)行階段
編排者將任務(wù)分配給多個(gè)專門的工作者LLM:
工作者1:醫(yī)學(xué)文獻(xiàn)搜索
- 任務(wù):在PubMed和醫(yī)學(xué)期刊數(shù)據(jù)庫(kù)中搜索長(zhǎng)新冠與認(rèn)知障礙相關(guān)論文
- 搜索條件:發(fā)表于2022-2025年間,包含臨床試驗(yàn)數(shù)據(jù)
- 工具:使用API接口查詢醫(yī)學(xué)數(shù)據(jù)庫(kù)
- 產(chǎn)出:找到15篇相關(guān)論文,包含初步結(jié)果摘要
工作者2:研究機(jī)構(gòu)報(bào)告搜索
- 任務(wù):搜索CDC、WHO、NIH等機(jī)構(gòu)發(fā)布的長(zhǎng)新冠研究報(bào)告
- 搜索條件:關(guān)注認(rèn)知障礙相關(guān)發(fā)現(xiàn)
- 工具:機(jī)構(gòu)網(wǎng)站API和網(wǎng)頁(yè)抓取
- 產(chǎn)出:找到3份官方報(bào)告和2個(gè)正在進(jìn)行的研究項(xiàng)目
工作者3:臨床試驗(yàn)數(shù)據(jù)庫(kù)搜索
- 任務(wù):在ClinicalTrials.gov等數(shù)據(jù)庫(kù)中搜索相關(guān)臨床試驗(yàn)
- 搜索條件:長(zhǎng)新冠與認(rèn)知功能相關(guān),已完成或有初步數(shù)據(jù)
- 工具:臨床試驗(yàn)注冊(cè)數(shù)據(jù)庫(kù)API
- 產(chǎn)出:識(shí)別7個(gè)相關(guān)臨床試驗(yàn),包括3個(gè)有初步結(jié)果的試驗(yàn)
工作者4:醫(yī)學(xué)會(huì)議與預(yù)印本資料搜索
- 任務(wù):在研究預(yù)印本服務(wù)器和近期會(huì)議記錄中搜索
- 搜索條件:最新未正式發(fā)表的研究
- 工具:預(yù)印本服務(wù)器API和會(huì)議數(shù)據(jù)庫(kù)
- 產(chǎn)出:找到5篇預(yù)印本論文和2個(gè)會(huì)議演講
③ 信息分析與綜合
編排者接收所有工作者的搜索結(jié)果,然后:
- 識(shí)別重復(fù)信息:消除不同來(lái)源的重復(fù)研究
- 評(píng)估證據(jù)質(zhì)量:按照研究設(shè)計(jì)、樣本量、期刊影響因子等標(biāo)準(zhǔn)評(píng)估每篇研究
- 識(shí)別共同主題:分析跨多個(gè)研究的一致性發(fā)現(xiàn)
- 發(fā)現(xiàn)研究差距:識(shí)別缺乏研究的領(lǐng)域
- 權(quán)衡相互矛盾的結(jié)果:評(píng)估不同研究之間的差異原因
④ 動(dòng)態(tài)迭代(可選)
編排者可能發(fā)現(xiàn)需要進(jìn)一步信息:
- "注意到大多數(shù)研究未考慮年齡分層效應(yīng),需要專門搜索老年群體中的長(zhǎng)新冠認(rèn)知影響"
- 分配工作者5進(jìn)行補(bǔ)充搜索,聚焦老年人群研究
⑤ 最終報(bào)告生成
編排者綜合所有信息生成最終報(bào)告:
- 總結(jié)主要發(fā)現(xiàn)
- 按證據(jù)強(qiáng)度和一致性水平組織信息
- 提供研究限制和未來(lái)研究方向
- 附上所有來(lái)源的完整引用
工作流優(yōu)勢(shì):
- 全面性:多渠道信息收集確保研究覆蓋面廣
- 專業(yè)化:各工作者專注于特定來(lái)源和搜索策略
- 適應(yīng)性:能根據(jù)初步發(fā)現(xiàn)調(diào)整搜索策略
- 深度分析:綜合多源信息進(jìn)行對(duì)比分析
- 效率提升:并行搜索不同來(lái)源大幅節(jié)省時(shí)間
(5) 評(píng)估-優(yōu)化
定義:一個(gè)LLM調(diào)用生成響應(yīng),而另一個(gè)在循環(huán)中提供評(píng)估和反饋。
評(píng)估-優(yōu)化工作流
適用場(chǎng)景:當(dāng)我們有明確的評(píng)估標(biāo)準(zhǔn),且迭代優(yōu)化能提供可量化價(jià)值的情境
適合場(chǎng)景的兩個(gè)標(biāo)志:
- 人類反饋能明顯改進(jìn)LLM響應(yīng)質(zhì)量
- LLM本身能提供類似人類的有效反饋
應(yīng)用示例:
- 文學(xué)翻譯:初譯(生成) → 評(píng)估細(xì)微差別 → 根據(jù)反饋優(yōu)化 → 循環(huán)至達(dá)標(biāo)
- 復(fù)雜信息搜索:初步搜索(生成) → 評(píng)估完整性 → 指出信息缺口 → 補(bǔ)充搜索 → 循環(huán)至完整(例如,DeepRearch)
應(yīng)用案例:文學(xué)翻譯優(yōu)化系統(tǒng)
目標(biāo):將《了不起的蓋茨比》翻譯成保留原著文學(xué)風(fēng)格和情感的中文版
角色分工:
- 優(yōu)化者LLM:負(fù)責(zé)生成翻譯
- 評(píng)估者LLM:評(píng)估質(zhì)量并提供改進(jìn)建議
評(píng)估維度:準(zhǔn)確性、風(fēng)格一致性、文化適應(yīng)性
最大迭代:3次(防止循環(huán))
流程示例:
原文:
"In my younger and more vulnerable years my father gave me some advice that I've been turning over in my mind ever since. 'Whenever you feel like criticizing anyone,' he told me, 'just remember that all the people in this world haven't had the advantages that you've had.'"
① 迭代1
初次翻譯:
"在我年輕、更加脆弱的歲月里,父親給了我一些建議,我自那以后一直在腦海中回味。'每當(dāng)你想批評(píng)任何人的時(shí)候,'他對(duì)我說(shuō),'請(qǐng)記住,這個(gè)世界上的所有人都沒(méi)有得到過(guò)你所擁有的那些優(yōu)勢(shì)。'"
評(píng)估(7/10):
- ? 整體準(zhǔn)確,主要含義傳達(dá)
- ? "turning over in my mind"→"回味"不準(zhǔn)確
- ? "advantages"→"優(yōu)勢(shì)"過(guò)于直白
- ? 語(yǔ)氣平淡,缺少情感色彩
- ? 需要更流暢的過(guò)渡詞
② 迭代2
修改版:
"在我年少輕狂、尚且脆弱的歲月里,父親給了我一條忠告,此后我一直在心中反復(fù)思量。'每當(dāng)你想要批評(píng)任何人的時(shí)候,'他對(duì)我說(shuō)道,'請(qǐng)記住,這世上并非所有人都擁有過(guò)你所享有的那些機(jī)遇和條件。'"
評(píng)估(9/10):
- ? 關(guān)鍵詞翻譯更準(zhǔn)確
- ? 文學(xué)色彩增強(qiáng)
- ? 過(guò)渡更自然
- ? "年少輕狂"略帶貶義
- ? 最后一句可更精煉
③ 迭代3(最終版):
最終翻譯:
"在我年少青澀、心思易傷的歲月里,父親給了我一條忠告,此后我便一直在心中反復(fù)思量。'每當(dāng)你想要批評(píng)任何人,'他告誡我道,'請(qǐng)記住,這世上并非所有人都有幸獲得你所享有的那些機(jī)遇。'"
最終評(píng)估(10/10):
- ? 完美捕捉原文情感和風(fēng)格
- ? 用詞準(zhǔn)確且富有文學(xué)性
- ? 結(jié)構(gòu)精煉,符合中文閱讀習(xí)慣
- ? 平衡了忠于原文與文化適應(yīng)性
工作流優(yōu)勢(shì):
- 質(zhì)量提升:通過(guò)專門評(píng)估角色和多輪迭代提高輸出質(zhì)量
- 自我改進(jìn):系統(tǒng)識(shí)別不足并主動(dòng)優(yōu)化
- 透明度:評(píng)估標(biāo)準(zhǔn)和反饋可被清晰記錄
- 減少人工干預(yù):在保持高質(zhì)量的同時(shí)減少人類參與
- 適應(yīng)性:可根據(jù)特定領(lǐng)域定制評(píng)估標(biāo)準(zhǔn)
實(shí)施建議:
- 明確定義評(píng)估標(biāo)準(zhǔn)和質(zhì)量指南
- 設(shè)置合理迭代次數(shù)上限
- 保持優(yōu)化者和評(píng)估者角色分離
- 跟蹤記錄每次迭代的變化
- 在關(guān)鍵應(yīng)用中保留人類最終審核
這種工作流特別適合需要高質(zhì)量、精心斟酌輸出的場(chǎng)景,模擬了人類專業(yè)人士的迭代改進(jìn)過(guò)程。
3. 完整Agent模式
(1) Agent設(shè)計(jì)要點(diǎn)
隨著大模型核心能力的成熟(理解復(fù)雜輸入、推理規(guī)劃、工具使用、錯(cuò)誤恢復(fù)),智能體正在生產(chǎn)環(huán)境中嶄露頭角。智能體的典型工作流程為:
- 啟動(dòng)階段:接收用戶命令或通過(guò)交互確定任務(wù)
- 規(guī)劃執(zhí)行:任務(wù)明確后獨(dú)立規(guī)劃操作,必要時(shí)向人類請(qǐng)求更多信息
- 環(huán)境感知:每步驟從環(huán)境獲取"基礎(chǔ)事實(shí)"(工具調(diào)用結(jié)果或代碼執(zhí)行)評(píng)估進(jìn)展
- 反饋循環(huán):在檢查點(diǎn)或遇障礙時(shí)可暫停等待人類反饋
- 任務(wù)終止:通常在完成時(shí)終止,包含停止條件(如最大迭代次數(shù))以保持控制
Agents can handle sophisticated tasks, but their implementation is often straightforward. They are typically just LLMs using tools based on environmental feedback in a loop. It is therefore crucial to design toolsets and their documentation clearly and thoughtfully.
智能體可以處理復(fù)雜任務(wù),但其實(shí)現(xiàn)通常很直接 - 本質(zhì)上是在循環(huán)中基于環(huán)境反饋使用工具的LLMs。
因此,清晰且合理的工具集及其說(shuō)明文檔至關(guān)重要。
我們?cè)诟戒?中詳述了工具開(kāi)發(fā)的最佳實(shí)踐。
工具集及其文檔質(zhì)量直接決定智能體的成功率和速度,體現(xiàn)在:
- Agent選擇合適工具及調(diào)用順序的能力
- Agent正確填寫工具參數(shù)的能力
- Agent有效利用工具結(jié)果的能力
自主Agent
① 何時(shí)使用Agent:
Agent適用于開(kāi)放性問(wèn)題,這些問(wèn)題特點(diǎn)是:
- 難以或不可能預(yù)測(cè)所需步驟數(shù)量
- 無(wú)法硬編碼固定解決路徑
在這類場(chǎng)景中,LLM可能需要多輪操作,您必須對(duì)其決策過(guò)程有一定信任度。
需要注意的是,Agent的自主性意味著:
- 可能產(chǎn)生更高成本
- 存在錯(cuò)誤累積的潛在風(fēng)險(xiǎn)
建議在實(shí)際部署前在沙盒環(huán)境中進(jìn)行廣泛測(cè)試,并設(shè)置適當(dāng)?shù)谋Wo(hù)措施。
② Agent應(yīng)用舉例:
以下是來(lái)自Anthropic實(shí)際實(shí)現(xiàn)的示例:
- 編程Agent:解決SWE-bench任務(wù),根據(jù)任務(wù)描述對(duì)多個(gè)文件進(jìn)行編輯
- 計(jì)算機(jī)使用Agent:computer use,Claude使用計(jì)算機(jī)完成復(fù)雜任務(wù)
編碼Agent的流程
4. 模式組合與定制
正如文章開(kāi)頭所強(qiáng)調(diào),"最成功的實(shí)現(xiàn)采用簡(jiǎn)單、可組合的模式,而非復(fù)雜的框架"。這些設(shè)計(jì)模式是靈活的構(gòu)建模塊,可以根據(jù)具體應(yīng)用需求進(jìn)行組合和定制。
(1) 關(guān)鍵原則
- 這些模式是可自由組合的構(gòu)建塊,非固定框架
- 通過(guò)量化性能評(píng)估和迭代確定最佳組合
- 重要提示:僅在能顯著提升效果時(shí)才增加復(fù)雜性
(2) 五種高效組合模式
① 提示鏈 + 路由:
- 機(jī)制:路由分類任務(wù),然后應(yīng)用專用提示鏈
- 示例:客服系統(tǒng)先分類問(wèn)題(賬單/技術(shù)/退款),再應(yīng)用對(duì)應(yīng)專業(yè)處理鏈。
② 路由 + 并行化:
- 機(jī)制:先分類任務(wù),對(duì)特定類別應(yīng)用并行處理
- 示例:內(nèi)容審核系統(tǒng)分類內(nèi)容后,對(duì)復(fù)雜案例啟用多評(píng)估者并行投票。
③ 編排者-工作者 + 評(píng)估者-優(yōu)化者:
- 機(jī)制:編排者分解分配任務(wù),工作者執(zhí)行,評(píng)估者提供反饋優(yōu)化
- 示例:代碼系統(tǒng)中編排者確定修改文件,工作者生成代碼,評(píng)估者檢查提供改進(jìn)建議
④ 提示鏈 + 評(píng)估者-優(yōu)化者:
- 機(jī)制:在提示鏈關(guān)鍵節(jié)點(diǎn)使用評(píng)估-優(yōu)化循環(huán)提升質(zhì)量
- 示例:內(nèi)容創(chuàng)作流程生成大綱→細(xì)化大綱→基于大綱創(chuàng)作→評(píng)估優(yōu)化
⑤ 混合Agent系統(tǒng):
- 機(jī)制:整合多種模式,不同任務(wù)階段使用最適合的模式
- 示例:全功能客服Agent先路由分類查詢,簡(jiǎn)單問(wèn)題用提示鏈,復(fù)雜問(wèn)題用編排者-工作者,全程通過(guò)評(píng)估者-優(yōu)化者保證質(zhì)量
(3) 實(shí)施建議
- 從簡(jiǎn)單開(kāi)始,基于性能數(shù)據(jù)增加復(fù)雜性
- 關(guān)注每個(gè)組合的接口設(shè)計(jì),確保信息順暢傳遞
- 設(shè)置明確的評(píng)估指標(biāo),量化每種組合的效果提升
- 注意模式組合可能增加成本和延遲,權(quán)衡利弊
- 建立有效的監(jiān)控和失敗恢復(fù)機(jī)制
(4) 組合設(shè)計(jì)的優(yōu)勢(shì)
- 靈活應(yīng)對(duì)不同復(fù)雜度的任務(wù)需求
- 結(jié)合各個(gè)模式的優(yōu)勢(shì)創(chuàng)造協(xié)同效應(yīng)
- 隨著需求變化可漸進(jìn)式擴(kuò)展系統(tǒng)能力
- 各組件可獨(dú)立優(yōu)化,提高整體系統(tǒng)可維護(hù)性
五、實(shí)踐指南
1. 核心建議
「在LLM領(lǐng)域,最成功的實(shí)現(xiàn)不是構(gòu)建最復(fù)雜的系統(tǒng),而是為特定需求構(gòu)建最合適的系統(tǒng)?!故紫葟暮?jiǎn)單的提示詞開(kāi)始,通過(guò)全面評(píng)估進(jìn)行優(yōu)化,僅在簡(jiǎn)單解決方案不足時(shí)才添加更多步驟的類Agent系統(tǒng)。
2. Agents開(kāi)發(fā)原則
在實(shí)現(xiàn)Agent時(shí),我們盡量遵循三個(gè)核心原則:
- 保持簡(jiǎn)單性:只在能夠明顯改善結(jié)果時(shí)增加復(fù)雜性
- 透明性:明確展示Agent的規(guī)劃步驟來(lái)保證透明度
- 精心設(shè)計(jì)工具接口:通過(guò)詳細(xì)的工具文檔和充分的測(cè)試創(chuàng)建良好的Agent-計(jì)算機(jī)接口(ACI)
雖然開(kāi)發(fā)框架可幫助快速入門,但轉(zhuǎn)向生產(chǎn)環(huán)境時(shí),應(yīng)減少抽象層級(jí),直接使用基本組件構(gòu)建。遵循上述原則,你可以創(chuàng)建強(qiáng)大、可靠、可維護(hù)且受用戶信賴的智能體系統(tǒng)。
六、附錄1: Agent實(shí)戰(zhàn)
1. 智能體的實(shí)踐價(jià)值與應(yīng)用條件
基于客戶合作經(jīng)驗(yàn),AI智能體在同時(shí)滿足以下條件的任務(wù)中能創(chuàng)造最大價(jià)值:
- 需要對(duì)話與行動(dòng)相結(jié)合
- 具有明確的成功衡量標(biāo)準(zhǔn)
- 能夠形成有效反饋循環(huán)
- 整合有意義的人類監(jiān)督機(jī)制
2. 成功案例分析
案例一:智能客服
優(yōu)勢(shì)契合點(diǎn):
- 自然對(duì)話流程:客服交互天然符合會(huì)話模式,同時(shí)需要信息檢索和行動(dòng)執(zhí)行
- 工具集成能力:可接入客戶數(shù)據(jù)、訂單歷史和知識(shí)庫(kù)資源
- 行動(dòng)自動(dòng)化:退款處理、工單更新等可程序化執(zhí)行
- 清晰成功指標(biāo):通過(guò)用戶問(wèn)題解決率直接衡量成效
商業(yè)驗(yàn)證:
多家企業(yè)采用基于成功解決的定價(jià)模型(僅對(duì)成功解決的案例收費(fèi)),證明了Agent在客戶支持領(lǐng)域的實(shí)際價(jià)值和可靠性。
案例二:編程Agent
應(yīng)用優(yōu)勢(shì):
- 解決方案可驗(yàn)證:代碼輸出可通過(guò)自動(dòng)化測(cè)試客觀驗(yàn)證
- 反饋驅(qū)動(dòng)優(yōu)化:測(cè)試結(jié)果提供明確反饋,支持Agent迭代改進(jìn)
- 問(wèn)題域結(jié)構(gòu)化:軟件開(kāi)發(fā)問(wèn)題通常有明確邊界和結(jié)構(gòu)
- 輸出質(zhì)量可量化:代碼性能和質(zhì)量可通過(guò)既定指標(biāo)評(píng)估
實(shí)際成果:
在實(shí)際實(shí)現(xiàn)中,AI智能體能夠僅基于拉取請(qǐng)求描述解決SWE-bench Verified 基準(zhǔn)測(cè)試中的真實(shí)GitHub問(wèn)題,展示了在結(jié)構(gòu)化問(wèn)題解決中的實(shí)際能力。
人類監(jiān)督價(jià)值:
盡管自動(dòng)化測(cè)試能驗(yàn)證功能正確性,人類審查仍在確保解決方案符合更廣泛系統(tǒng)要求方面發(fā)揮關(guān)鍵作用。
3. 實(shí)施要點(diǎn)
- 明確定義任務(wù)范圍:設(shè)置清晰的Agent職責(zé)邊界和權(quán)限
- 精心設(shè)計(jì)工具集:提供Agent所需的全部工具并優(yōu)化其文檔
- 建立反饋機(jī)制:確保Agent能接收并利用執(zhí)行結(jié)果改進(jìn)行動(dòng)
- 設(shè)置監(jiān)督檢查點(diǎn):在關(guān)鍵決策節(jié)點(diǎn)引入人類監(jiān)督
- 量化成功指標(biāo):建立客觀評(píng)估Agent表現(xiàn)的指標(biāo)體系
七、附錄2:工具提示工程
1. 定義
工具提示工程指的是:像編寫提示詞一樣設(shè)計(jì)工具定義,使大模型能清晰理解工具的用途、使用方法和結(jié)果含義。
2. 基本原則
清晰表達(dá):
- 使用精確的術(shù)語(yǔ)描述工具功能
- 明確說(shuō)明輸入?yún)?shù)的要求和格式
- 詳細(xì)解釋輸出結(jié)果的結(jié)構(gòu)和意義
- 包含使用限制和邊界條件
推薦參考我的另一篇文章從模糊到具體:高效使用DeepSeek-R1等推理型模型的前置步驟,使用問(wèn)題定義優(yōu)化器提示詞,輔助完成清晰表達(dá)。
壓縮表達(dá):
- 避免冗余信息,保持描述簡(jiǎn)潔
- 使用結(jié)構(gòu)化格式提高可讀性
- 關(guān)注必要信息,減少不相關(guān)細(xì)節(jié)
- 確保核心用途和用法一目了然
3. 工具系統(tǒng)設(shè)計(jì)詳解
(1) 工具在Agent系統(tǒng)中的核心地位
在任何Agent系統(tǒng)中,工具都是關(guān)鍵組成部分,它們使Claude能夠通過(guò)API中定義的確切結(jié)構(gòu)與外部服務(wù)交互。當(dāng)Claude決定調(diào)用工具時(shí),會(huì)在API響應(yīng)中包含工具使用代碼塊。工具定義的提示工程與主提示同等重要。
(2)「工具形式」設(shè)計(jì)指南
對(duì)于同一個(gè)目的,有不同的實(shí)現(xiàn)方式,考慮選擇何種方式的決定因素是:
- LLM實(shí)現(xiàn)的準(zhǔn)確性、難易度
- LLM是否擅長(zhǎng)這種方式,格式是否為L(zhǎng)LM友好的
(3) 多種實(shí)現(xiàn)方式對(duì)比
同一操作通常有多種實(shí)現(xiàn)方式,例如:
操作類型 | 可選表達(dá)方式 |
文件編輯 | ? 差異(diff)格式 ? 整文件重寫 |
結(jié)構(gòu)化輸出 | ? Markdown代碼塊 ? JSON格式 |
雖然這些差異在技術(shù)上可以無(wú)損轉(zhuǎn)換,但對(duì)LLM而言難度差異顯著:
- 編寫diff需要預(yù)先計(jì)算變更行數(shù)
- JSON中的代碼需要處理“引號(hào)”和“換行符轉(zhuǎn)義”
(4) 格式選擇三原則
- 思考空間充足:為模型在輸出前思考提供足夠token(即,壓縮工具的token消耗)
- 貼近自然語(yǔ)料:選擇接近互聯(lián)網(wǎng)文本中常見(jiàn)的格式(Markdown、Txt)
- 最小化格式負(fù)擔(dān):避免需要精確計(jì)數(shù)或復(fù)雜轉(zhuǎn)義的格式(例如,需要準(zhǔn)確統(tǒng)計(jì)數(shù)千行代碼的數(shù)量、json中的換行符轉(zhuǎn)義字符)
4. Agent-計(jì)算機(jī)接口優(yōu)化
正如人機(jī)接口(HCI)設(shè)計(jì)重要,Agent計(jì)算機(jī)接口(ACI)需同樣重視:
(1) 設(shè)計(jì)策略
- 模型視角思考:從模型角度評(píng)估工具使用的直觀性。對(duì)于人來(lái)說(shuō),根據(jù)工具描述和參數(shù),使用這個(gè)工具是否很容易、清晰,還是需要仔細(xì)思考?如果是這樣,那么模型可能也是如此。
- 完整文檔設(shè)計(jì):好的工具定義通常包括使用示例、邊界情況、輸入格式要求以及與其他工具的清晰界限
- 命名優(yōu)化:像為初級(jí)開(kāi)發(fā)者寫文檔一樣精心設(shè)計(jì)參數(shù)名稱
- 實(shí)證測(cè)試迭代:通過(guò)多樣化輸入觀察模型使用模式
- 防錯(cuò)設(shè)計(jì)實(shí)施:重構(gòu)參數(shù)結(jié)構(gòu)減少錯(cuò)誤可能性
(2) 實(shí)戰(zhàn)案例
在SWE-bench Agent開(kāi)發(fā)中,工具優(yōu)化占用了大量精力:
- 問(wèn)題:當(dāng)智能體離開(kāi)根目錄后,相對(duì)路徑引用導(dǎo)致錯(cuò)誤
- 解決方案:強(qiáng)制要求使用絕對(duì)路徑
- 效果:模型能夠完美執(zhí)行文件操作
在為SWE-bench構(gòu)建我們的Agent時(shí),Anthropic實(shí)際上花了更多的時(shí)間優(yōu)化我們的工具,而不是整體提示詞。
5. 實(shí)踐建議
設(shè)計(jì)原則:
- 將工具文檔視為API設(shè)計(jì)的關(guān)鍵環(huán)節(jié)
- 精簡(jiǎn)必要參數(shù),提供合理默認(rèn)值
- 為復(fù)雜工具添加使用示例
使用場(chǎng)景界定:
- 定義與其他工具的區(qū)分方法:清晰界定工具的適用場(chǎng)景和不適用場(chǎng)景
- 使用模型能理解的語(yǔ)言和格式
持續(xù)優(yōu)化策略:
- 定期檢查工具使用日志,識(shí)別改進(jìn)機(jī)會(huì)
- 平衡靈活性和防錯(cuò)性,適應(yīng)智能體能力水平
優(yōu)良的工具定義能顯著提升Agent的工具利用效率,減少錯(cuò)誤調(diào)用,并提高整體系統(tǒng)性能。
技術(shù)的力量在于分享,希望這篇總結(jié)能成為他人開(kāi)發(fā)之路上的指南針。如果您希望持續(xù)獲取工作流、Agent技術(shù)及大模型應(yīng)用的最新動(dòng)態(tài)和深度解析,歡迎關(guān)注我的公眾號(hào)硅基世界指北。智能體的未來(lái)已來(lái),這不僅是去發(fā)現(xiàn),更是去創(chuàng)造。期待與更多志同道合的朋友們共同探索AI的無(wú)限可能。