四、Agent 開發(fā)通用流程
基于實踐,通常會按照3個階段、10個環(huán)節(jié)開發(fā)一個具備生產(chǎn)機應(yīng)用、商業(yè)化能力的Agent。
①規(guī)劃階段。包括定義應(yīng)用場景、梳理業(yè)務(wù)流程和痛點、梳理功能定位和開發(fā)需求3個環(huán)節(jié)。
②設(shè)計階段。包括繪制運行流程圖、設(shè)置大模型及參數(shù)、設(shè)計提示詞、配置技能、設(shè)計用戶溝通頁面5個環(huán)節(jié)。
③上線階段。包括測試與調(diào)優(yōu)、發(fā)布2個環(huán)節(jié)。
1. 規(guī)劃 Agent
規(guī)劃Agent的階段如同項目立項的可研分析與評估,需要回答以下問題:
①What。這是一個什么樣的Agent?它的使用場景是什么?它的用戶是誰?它能做什么?
②Why。為什么要開發(fā)這個Agent?它能夠解決什么問題?與傳統(tǒng)業(yè)務(wù)流程相比,它的價值是什么?與直接使用大模型對話相比,它的價值是什么?
③How。這個Agent如何實現(xiàn)所定義的功能?
規(guī)劃Agent是開發(fā)Agent的底層思考,用以指導(dǎo)Agent的具體設(shè)計。
定義Agent的應(yīng)用場景
場景,指的是一個特定的空間、時間或情境,包含了某種活動、事件或行為的發(fā)生。定義應(yīng)用場景的主要目的是提高對特定用戶、特定生活或工作情境問題的處理能力,提高產(chǎn)品或服務(wù)滿意度。
Agent是AI技術(shù)的場景化應(yīng)用,天然就帶有場景化的屬性。因此,在設(shè)計Agent之前,有必要對其應(yīng)用場景進(jìn)行定義。
定義Agent的應(yīng)用場景通常包括確定Agent的用戶群體、Agent的用途、Agent的價值等要素。
比如,AI 投標(biāo)助手,是一個檢索并生成投標(biāo)文件的關(guān)鍵信息的 Agent ,其用戶群體是企業(yè)中負(fù)責(zé)投標(biāo)的市場部門、商務(wù)部門的員工,或參與投標(biāo)工作的技術(shù)部門的員工。該 Agent 的用途是快速閱讀用戶上傳的招標(biāo)文件,給用戶生成準(zhǔn)確、全面、結(jié)構(gòu)化的招標(biāo)文件的關(guān)鍵信息,并準(zhǔn)確回答用戶關(guān)于招標(biāo)文件的各種問題。該 Agent 的價值是節(jié)省人工閱讀長達(dá)幾十頁招標(biāo)文件的時間成本,并方便招標(biāo)文件的關(guān)鍵信息在不同人員間準(zhǔn)確、全面?zhèn)鬟f,減少人工檢索信息的缺漏和傳遞的偏差。
可以看出,定義 Agent 的應(yīng)用場景是對規(guī)劃 Agent 中" What "的回答。一個高質(zhì)量的 Agent ,應(yīng)該有明確且具體的用戶群體、有效且精準(zhǔn)的用途。更重要的是, Agent 要能夠具有獨特價值。例如 AI 投標(biāo)助手的獨特價值是相對于傳統(tǒng)人工信息檢索、傳遞的低效率、信息衰減而言的,通過長文檔理解能力,減少人工閱讀和查找招標(biāo)文件的工作量。
梳理業(yè)務(wù)流程和分析痛點
要想實現(xiàn)Agent的功能,就需要針對Agent的應(yīng)用場景進(jìn)行業(yè)務(wù)流程分析,系統(tǒng)化梳理業(yè)務(wù)邏輯,并分析痛點,尋找Agent的獨特價值,以確保能夠有效地解決實際問題。
還是以AI 投標(biāo)助手為例,基于其應(yīng)用場景,可以梳理出如下常規(guī)的業(yè)務(wù)流程:① 購買并獲取招標(biāo)文件;② 把招標(biāo)文件分發(fā)給商務(wù)、業(yè)務(wù)相關(guān)人員;③ 標(biāo)記與解讀招標(biāo)文件的關(guān)鍵信息;④ 制定投標(biāo)策略;⑤ 分模塊制作投標(biāo)文件;⑥ 審核標(biāo)書;⑦ 投標(biāo)。?
對于這樣的業(yè)務(wù)流程,可以識別出兩大痛點:
痛點一,信息查找費時費力。要從冗長的招標(biāo)文件中找到關(guān)鍵信息(如開標(biāo)時間和地點、投標(biāo)人資格要求、投標(biāo)保證金、最高限價、付款條件、投標(biāo)文件組成、評分規(guī)則、合同條款等)需要花費大量的人工時間,并且要足夠耐心和仔細(xì)。
痛點二,信息在傳遞時容易丟失。制作一份投標(biāo)文件,通常需要多方協(xié)作完成,例如技術(shù)人員負(fù)責(zé)制定技術(shù)方案,商務(wù)人員負(fù)責(zé)提供資質(zhì)、業(yè)績等信息,報價人員負(fù)責(zé)測算價格,審核人員對照招標(biāo)評審要點審核投標(biāo)文件等。招標(biāo)文件的關(guān)鍵信息在不同崗位間傳遞,在這個過程中,很容易出現(xiàn)信息丟失、理解偏差等風(fēng)險,導(dǎo)致投標(biāo)文件作廢或者得分不佳,影響中標(biāo)。
通過分析業(yè)務(wù)流程的環(huán)節(jié),我們可以從更細(xì)致的顆粒度理解 Agent 應(yīng)用場景下的業(yè)務(wù)邏輯,確保設(shè)計的 Agent 更貼近真實的業(yè)務(wù)流程,更好地消除用戶痛點,滿足用戶需求。
梳理 Agent 的功能定位和開發(fā)需求
在梳理業(yè)務(wù)流程和分析痛點的基礎(chǔ)上,我們要進(jìn)一步梳理出 Agent 的功能定位和開發(fā)需求,用于指導(dǎo) Agent 的具體設(shè)計。
梳理 Agent 的功能定位和開發(fā)需求要圍繞 Agent 的能力實現(xiàn)展開,包括 Agent 是否需要通過配置專有知識庫增強特定領(lǐng)域的大模型輸出能力, Agent 執(zhí)行的任務(wù)是否需要通過工作流分解為多個子任務(wù), Agent 是否需要調(diào)用插件獲得拓展能力。
例如, AI 投標(biāo)助手需要把人工閱讀投標(biāo)文件識別關(guān)鍵信息的流程,轉(zhuǎn)變?yōu)橛?AI 系統(tǒng)協(xié)助讀取招標(biāo)文件的流程。
經(jīng)過梳理,其功能定位和開發(fā)需求包括:①配置知識庫,掌握招投標(biāo)專業(yè)知識,熟悉各類招投標(biāo)項目的文件結(jié)構(gòu)、術(shù)語、內(nèi)容、關(guān)鍵信息等。②大模型需要具備長文檔理解和輸出能力,一份招標(biāo)文件長達(dá)幾十頁甚至上百頁,必須選擇合適的大模型和 token 參數(shù)(輸入和輸出的文字長度)。③ Agent 的任務(wù)流程較短,不需要使用工作流。④ Agent 需要具備閱讀和檢索用戶上傳的文檔(通常是 pdf 、 doc 、圖片等格式的)的技能,需要配置相關(guān)功能插件。④輸出的結(jié)果要有極高的準(zhǔn)確性和全面性,需要防止大模型出現(xiàn)"幻覺"。
2.設(shè)計 Agent?
在規(guī)劃 Agent 后,就可以使用 Agent 開發(fā)平臺開發(fā) Agent 了。
繪制Agent的運行流程圖
Agent 的運行流程圖對 Agent 執(zhí)行任務(wù)的節(jié)點、節(jié)點的類型、節(jié)點的邏輯關(guān)系、節(jié)點的先后次序等進(jìn)行圖形化呈現(xiàn),作用是讓開發(fā)者根據(jù) Agent 開發(fā)平臺的功能模塊,從整體做好 Agent 的結(jié)構(gòu)化布局和功能路徑規(guī)劃,確保后續(xù)開發(fā) Agent 的效率和 Agent 的可靠性。
?Agent 的運行流程圖就像一張設(shè)計圖,指導(dǎo)整個施工過程。繪制Agent運行流程圖有利于快速開發(fā)Agent。
設(shè)置大模型及參數(shù)
大模型是 Agent 的大腦,無工作流模式的 Agent 通常只會使用單一的大模型進(jìn)行思考和回答,工作流模式的 Agent 則可能會多次使用不同的大模型。
設(shè)置大模型主要包括大模型選型、設(shè)置大模型的參數(shù)兩個方面。
大模型選型是根據(jù) Agent 的任務(wù)需求和應(yīng)用場景,選擇合適的大模型廠商及具體的模型型號。
不同的大模型在處理不同的任務(wù)時會存在性能差異。一些大模型也推出了不同上下文長度的模型產(chǎn)品。例如,扣子的豆包模型分為豆包. Function call 模型32K(指模型一次能夠處理32,000 token 的文。 token 是文本中最小的語義單元,一個 token 通常等于1~1.8個漢字)和豆包角色扮演模型32K, Kimi 模型分為 Kimi (8K)、 Kimi (32K)、 Kimi (128K)。
要想快速了解大模型的回答效果,可以使用扣子的模型廣場功能,進(jìn)行模型 PK ,以便選用合適的大模型。
最大回復(fù)長度則要根據(jù)輸入模型的文本長度和模型輸出的文本長度來判斷,8K、32K模型可以滿足一般的問答對話任務(wù),但對于長文檔的理解和輸出任務(wù),如閱讀報告、撰寫小說等,則需要選擇32K、128K等處理長上下文的模型。
設(shè)置大模型的參數(shù)一般包括生成多樣性、輸入及輸出設(shè)置。
生成多樣性是非常重要的大文件模型參數(shù),它定義大模型的回復(fù)是更精確、更穩(wěn)定,還是更靈活、更有創(chuàng)意。通常而言,專業(yè)問答類、特定領(lǐng)域檢索類的 Agent ,要求大模型回答得更精確、更穩(wěn)定;聊天類、文案創(chuàng)作類 Agent ,要求大模型回答得更靈活、更有創(chuàng)意。
輸入設(shè)置主要是對上下文對話輪數(shù)的設(shè)置。開發(fā)者需要合理設(shè)置大模型的最大回復(fù)長度,特別是對有長文本輸出需求的 Agent ,如創(chuàng)作長文檔、撰寫報告類的 Agent ,需要預(yù)測文本長度。
隨著 Agent 開發(fā)平臺開始收費,選擇大模型需要考慮經(jīng)濟(jì)性問題。合理地設(shè)置這些參數(shù),既能確保大模型的效果,也能減少不必要的token消耗。
設(shè)計提示詞
提示詞是 Agent 調(diào)用大模型執(zhí)行任務(wù)的指令,是 Agent 規(guī)劃、思考能力的體現(xiàn)。在開發(fā) Agent 時,設(shè)計提示詞是很重要的環(huán)節(jié),扣子稱之為人設(shè)與回復(fù)邏輯。
單 Agent 模式下的提示詞設(shè)計和工作流模式下的提示詞設(shè)計有所不同。
在單 Agent 模式下,通常只有一個提示詞, Agent 要靠這個提示詞來調(diào)用大模型、各類插件、知識庫、數(shù)據(jù)庫等功能模塊,并按照預(yù)定義的格式輸出結(jié)果。單 Agent 模式下的提示詞,就像一個系統(tǒng)規(guī)劃師。因此,撰寫單 Agent 模式下的提示詞一般會比撰寫工作流模式下的提示詞更復(fù)雜,難度更大,要求更高。
在工作流模式下,只有大模型節(jié)點才需要提示詞。提示詞的功能是調(diào)用大模型執(zhí)行所在節(jié)點的任務(wù)。與單 Agent 模式下的提示詞指揮全局有所不同,工作流模式下的提示詞只在其所在的節(jié)點起作用,不影響其他節(jié)點運行。如果一個工作流中有多個大模型,就需要配置多個提示詞,每個提示詞都只會匹配各自節(jié)點的大模型。
無論在哪種模式下,設(shè)計提示詞的方法和技巧都是通用的。不同場景的 Agent ,在提示詞結(jié)構(gòu)上有所差異,如角色扮演類 Agent 的提示詞包括人設(shè)/角色、性格特點、語言特點、行為方式、限制/注意事項,工具類 Agent 的提示詞包括人設(shè)/角色、技能、知識、限制/注意事項,圖像創(chuàng)作類 Agent 的提示詞包括人設(shè)/角色、詳細(xì)描述、風(fēng)格、色彩、情感表達(dá)、技能、限制/注意事項。
配置 Agent 技能
配置 Agent 技能是讓 Agent 掌握使用各類工具的能力,從而實現(xiàn) Agent 的能力擴(kuò)展。包括:配置插件/ API 、工作流、知識庫、數(shù)據(jù)庫、變量、卡片等。
設(shè)計用戶溝通頁面
前面環(huán)節(jié)已經(jīng)完成了Agent核心功能開發(fā),設(shè)計用戶溝通頁面是為了便于用戶快速理解、正確使用Agent。包括:設(shè)計開場白、引導(dǎo) / 預(yù)置問題、快捷指令、背景圖片、語音 / 數(shù)字人等。用戶溝通頁面不影響Agent的能力輸出和功能發(fā)揮。
3. 上線 Agent
測試與調(diào)優(yōu)
在上線 Agent 前,通常需要多次測試與調(diào)優(yōu)。
對話調(diào)優(yōu)是所有 Agent 開發(fā)平臺都具備的功能,即在發(fā)布 Agent 前,通過用戶對話測試 Agent 的回答效果,判斷 Agent 功能配置的有效性。
但是對于復(fù)雜工作流的 Agent ,僅通過對話輸入和 Agent 結(jié)果輸出,很難識別和發(fā)現(xiàn) Agent 內(nèi)部運行過程中存在問題的環(huán)節(jié),修正難度較大。所以,扣子平臺提供了調(diào)試臺功能。調(diào)試詳情包括:耗時、調(diào)用樹 / 火焰圖、節(jié)點詳情、輸入、輸出等信息。
發(fā)布
在測試和調(diào)優(yōu)后,就進(jìn)入發(fā)布環(huán)節(jié)。
Agent 一般有3種發(fā)布和使用方式:一是發(fā)布到 Agent 開發(fā)平臺的智能體商店中使用;二是發(fā)布到微信、抖音、飛書等第三方社交或工具平臺中使用;三是通過 API 發(fā)布,這樣可以通過 API 調(diào)用把 Agent 集成到其他產(chǎn)品或服務(wù)中使用。
第一種和第二種方式操作起來非常簡單,單擊 Agent 開發(fā)平臺的"發(fā)布"按鈕,勾選相關(guān)的發(fā)布平臺(也稱為發(fā)布渠道),經(jīng)過審核后就可以上線使用了。
對于第三種方式,在發(fā)布完成后,還需要根據(jù)自身需要完成 API 調(diào)用配置。
五、開發(fā)Agent的策略
1. 懂場景和懂業(yè)務(wù),比懂AI技術(shù)更重要
Agent的本質(zhì)是基于特定場景結(jié)合AI技術(shù)再造業(yè)務(wù)流程。AI技術(shù)只有與業(yè)務(wù)緊密結(jié)合,才能真正發(fā)揮作用。
隨著人機交互頁面的簡化,精通業(yè)務(wù)的人可以零代碼規(guī)劃Agent,制作Demo,甚至完成全流程的Agent開發(fā)。
一個優(yōu)秀的Agent開發(fā)者,首先應(yīng)該是一名業(yè)務(wù)專家,其次才是掌握Agent開發(fā)工具使用方法的開發(fā)者。
Agent開發(fā)者一定要具有業(yè)務(wù)專家的思維,提高業(yè)務(wù)理解能力和設(shè)計能力,從應(yīng)用場景和業(yè)務(wù)分析視角規(guī)劃和設(shè)計Agent,從而提高Agent解決問題的效果。
2. 使用工具拓展能力,是Agent具有價值的關(guān)鍵
Agent = 大模型 ×(規(guī)劃+記憶+使用工具+行動)。要想評估一個Agent的功能是否強大,可以看它在這些方面的配置情況。
如果一個角色聊天類Agent沒有配置知識庫,沒有使用插件,也沒有工作流、數(shù)據(jù)庫、記憶等,僅僅設(shè)計了提示詞,那么它的能力和大模型生成不會有很大差別。
3. 堅持小而美,聚焦特定的應(yīng)用場景和功能
Agent 是針對特定的應(yīng)用場景的輕應(yīng)用,可以和 RPA(機器人流程自動化)結(jié)合。 Agent 可以通過 API 接入日常軟件,也可以和其他 Agent 協(xié)作。因此, Agent 開發(fā)者應(yīng)該堅持小而美的理念,從最小顆粒度的應(yīng)用場景和功能入手,定義 Agent 的應(yīng)用場景,設(shè)計 Agent 。
應(yīng)用場景越具體,用戶越聚焦, Agent 的實現(xiàn)路徑就越明確,其落地性就越強、價值就越大。反之,如果我們用開發(fā)軟件的思維,劃定了復(fù)雜而廣泛的應(yīng)用場景和功能,那么很可能導(dǎo)致在技術(shù)上無法實現(xiàn) Agent ,或者其穩(wěn)定性不佳。
4. 把Agent當(dāng)成助手,而不是一個完全托管的解決方案
無論是 AI 技術(shù),還是 Agent 的發(fā)展,目前都處于探索階段。我們離 AGI(通用人工智能)還有一段距離。 Agent 在智能化、自動化、多功能化、性能穩(wěn)定性等方面都需要提升。
作為 Agent 開發(fā)者,我們必須清楚地認(rèn)識到這一點,對 Agent 過于理想化的想法,可能會給 Agent 的開發(fā),或者 Agent 的應(yīng)用推廣帶來困難和風(fēng)險。另外, Agent 作為 AI 工具,它的設(shè)計初衷是輔助人類,提高效率,而不是取代人類的決策。
因此,在使用 Agent 時,我們應(yīng)該將其視為一個助手,而不是一個完全托管的解決方案。用戶需要對 Agent 輸出的內(nèi)容進(jìn)行判斷、篩選、加工,而不是盲目地接受和直接使用。