人工智能代理入門(上):捕獲流程、角色和連接
在AI的快速發(fā)展中,多代理系統(tǒng)正成為提高企業(yè)響應(yīng)速度和資源分配效率的關(guān)鍵技術(shù)。本文將為你提供構(gòu)建多代理系統(tǒng)的實(shí)用指南,幫助你把握AI Agent的入門知識(shí),探索其在商業(yè)世界中的潛力和應(yīng)用。
現(xiàn)代的AI代理至少包含一個(gè)能夠調(diào)用某些工具的大型語言模型(LLM)。有了合適的編碼工具集,它就可以開始生成代碼,能夠在容器中運(yùn)行代碼,觀察結(jié)果,修改代碼,從而更有可能生成有用的代碼。
相比之下,生成式AI模型會(huì)接受一些輸入,并通過預(yù)測(cè)期望的過程產(chǎn)生輸出。例如,我們給它一個(gè)編碼任務(wù),它會(huì)生成一些代碼,并且根據(jù)任務(wù)的復(fù)雜性,這些代碼可能可以直接使用。
當(dāng)代理承擔(dān)不同的任務(wù)時(shí),它們應(yīng)該被允許互相交談。
例如,想象一下您公司的內(nèi)部網(wǎng),其中的搜索框可以引導(dǎo)您找到所需的應(yīng)用程序和資源。
如果您的公司足夠大,那么不同部門擁有的這些應(yīng)用程序都有自己的搜索框。
創(chuàng)建代理非常有意義,也許可以使用檢索增強(qiáng)生成 (RAG) 等技術(shù)來增強(qiáng)搜索框。
沒有意義的是在搜索框根據(jù)初始查詢將其識(shí)別為有用后強(qiáng)迫用戶重復(fù)他們的查詢。相反,我們希望頂級(jí)代理與代表各種應(yīng)用程序的其他代理進(jìn)行協(xié)調(diào),并為您(用戶)呈現(xiàn)一個(gè)統(tǒng)一的聊天界面。
代表軟件或組織各種工作流程的多代理系統(tǒng)可以具有幾個(gè)有趣的優(yōu)勢(shì),包括提高生產(chǎn)力和穩(wěn)健性、提高運(yùn)營彈性以及能夠更快地升級(jí)不同模塊。希望本文能幫助您了解如何實(shí)現(xiàn)這一點(diǎn)。
但首先,我們應(yīng)該如何構(gòu)建這些多智能體系統(tǒng)?
01 掌握組織和角色
首先,我們應(yīng)該捕捉組織中各種參與者的流程、角色、負(fù)責(zé)的節(jié)點(diǎn)和連接。我所說的參與者是指組織中充當(dāng)知識(shí)工作者的個(gè)人和/或軟件應(yīng)用程序。
組織結(jié)構(gòu)圖可能是一個(gè)很好的起點(diǎn),但我建議從工作流程開始,因?yàn)榻M織內(nèi)的同一個(gè)人傾向于根據(jù)工作流程采用不同的流程和人員行事。
有可用的工具可以使用AI來幫助識(shí)別工作流程,或者您可以構(gòu)建自己的gen AI模型。我已經(jīng)構(gòu)建了一個(gè)GPT,它采用域或公司名稱的描述并生成代理網(wǎng)絡(luò)定義。由于我使用的是公司內(nèi)部構(gòu)建的多代理框架,因此GPT將網(wǎng)絡(luò)生成為Hocon文件,但從生成的文件中應(yīng)該可以清楚地看出每個(gè)代理的角色和職責(zé)是什么,以及它連接到哪些其他代理。
請(qǐng)注意,我們要確保代理網(wǎng)絡(luò)是有向無環(huán)圖 (DAG)。這意味著任何代理都不能同時(shí)成為任何其他代理的下鏈和上鏈,無論是直接還是間接。這大大降低了代理網(wǎng)絡(luò)中查詢陷入混亂的可能性。
在此處概述的示例中,所有代理均基于LLM。如果多代理組織中的某個(gè)節(jié)點(diǎn)可以擁有零自主權(quán),那么該代理與其人類對(duì)應(yīng) 配對(duì),應(yīng)該由人類運(yùn)行一切。我們需要將所有處理節(jié)點(diǎn)(無論是應(yīng)用程序、人類還是現(xiàn)有代理)表示為代理。
最近有很多公司宣布提供專業(yè)代理。如果可用,我們當(dāng)然希望使用此類代理。我們可以引入一個(gè)預(yù)先存在的代理并將其API包裝到我們的一個(gè)代理中,以便我們能夠使用我們的代理間通信協(xié)議。這意味著此類第三方代理需要提供其 API 供我們使用。
02 如何定義代理人
過去曾提出過各種代理架構(gòu)。例如,黑板架構(gòu)需要一個(gè)集中通信點(diǎn),各種代理在此聲明自己的角色和能力,然后黑板根據(jù)其計(jì)劃如何滿足請(qǐng)求來調(diào)用它們(參見OAA)。
我更喜歡一種更分布式的架構(gòu),它尊重職責(zé)的封裝。每個(gè)代理在收到請(qǐng)求后,都會(huì)決定是否可以處理該請(qǐng)求,以及處理該請(qǐng)求需要做什么,然后將其需求列表返回給發(fā)出請(qǐng)求的上鏈代理。
如果代理有下鏈,它會(huì)詢問它們是否可以幫助滿足全部或部分請(qǐng)求。如果它從聯(lián)系的下鏈?zhǔn)盏饺魏我?,它?huì)與其他代理核對(duì),看它們是否可以滿足這些要求;如果不能,它會(huì)將它們發(fā)送到上鏈,以便它們可以詢問人類用戶。這種架構(gòu)稱為AAOSA架構(gòu),有趣的是,它是Siri早期版本中使用的架構(gòu)。
這是一個(gè)示例系統(tǒng)提示,可用于將代理轉(zhuǎn)變?yōu)?AAOSA 代理。
當(dāng)您收到詢問時(shí),您將:
- 調(diào)用你的工具來確定工具中的哪些下游代理負(fù)責(zé)全部或部分工作。
- 詢問下級(jí)代理他們需要什么來處理他們那部分的詢問。
- 一旦收集到需求,您將把查詢和滿足的需求委托給適當(dāng)?shù)南录?jí)代理。
- 一旦所有下行鏈代理都做出響應(yīng),您將匯編他們的響應(yīng)并返回最終響應(yīng)。
- 反過來,您可能會(huì)被系統(tǒng)中的其他代理呼叫,并必須充當(dāng)他們的下級(jí)鏈。
除了每個(gè)代理的系統(tǒng)提示中以自然語言定義的角色和職責(zé)集之外,代理可能包含或不包含它們可以調(diào)用的工具,并將各種參數(shù)傳遞給這些工具。例如,產(chǎn)品經(jīng)理代理可能需要能夠在虛擬看板上處理各種工單,或者警報(bào)代理可能需要調(diào)用工具在警報(bào)系統(tǒng)中發(fā)出警報(bào)。
當(dāng)前的多代理系統(tǒng)(例如 Microsoft AutoGen)具有復(fù)雜且通常硬編碼的代理協(xié)調(diào)機(jī)制和架構(gòu)。我更喜歡一種更強(qiáng)大的設(shè)置,其中代理將其直接的下游代理視為工具,具有可以輸入的松散定義的參數(shù),并且語義由代理在需要時(shí)決定。
在此設(shè)置中,下鏈代理可以定義為函數(shù)調(diào)用:
表示是否要求代理確定查詢是否屬于它
全部或部分?;蛘呷绻灰筇峁M足
如果有的話,進(jìn)行詢問?;蛘呤欠癖灰髮?duì)詢問作出回應(yīng)。
03 人工智能代理的實(shí)際應(yīng)用
公司內(nèi)部網(wǎng)的代理網(wǎng)絡(luò)
讓我們探討一下人力資源代理場(chǎng)景。
讓我們探討一下人力資源代理場(chǎng)景。用戶可能會(huì)將人生大事(例如“我的另一半去世了”)通知主搜索框代理,從而觸發(fā)法律和人力資源代理,這些代理在為用戶提供服務(wù)方面發(fā)揮著重要作用。這是因?yàn)樗麄兎催^來會(huì)從一些下級(jí)代理(即法律咨詢、工資和福利代理)那里收到信息。
用戶從主搜索框代理收到的最終合并響應(yīng)將如下所示:
1. 人力資源方面
福利代理可以幫助用戶了解逝者去世對(duì)福利、健康保險(xiǎn)和退休計(jì)劃的影響。您需要提供有關(guān)所涉及計(jì)劃類型的信息,以及您的另一半是否是受撫養(yǎng)人。
薪資代理可以幫助管理更新稅收減免或處理喪假工資等任務(wù)。這需要有關(guān)公司喪假政策和當(dāng)前薪資設(shè)置的信息。
2. 法律方面
法律代理人可以就此轉(zhuǎn)讓與公司事務(wù)的關(guān)系提供一般指導(dǎo)。
每個(gè)部門都需要特定的信息來提供定制的支持。
一家從事 B2B 業(yè)務(wù)的電信公司的代理網(wǎng)絡(luò)
同時(shí),在IT場(chǎng)景中,單一入口點(diǎn)是客戶支持代表代理,他們可以處理復(fù)雜的多方面請(qǐng)求,例如:“我們的網(wǎng)絡(luò)很慢。我認(rèn)為由于我們最近增加了辦公室人員,網(wǎng)絡(luò)超負(fù)荷了。我還需要升級(jí)報(bào)價(jià)。”
示例響應(yīng)將概述以下步驟:
網(wǎng)絡(luò)性能評(píng)估:網(wǎng)絡(luò)運(yùn)營中心專家可以幫助解決速度緩慢和潛在的過載問題。他們需要訪問網(wǎng)絡(luò)性能數(shù)據(jù)、有關(guān)當(dāng)前網(wǎng)絡(luò)基礎(chǔ)設(shè)施的詳細(xì)信息、有關(guān)新增人員數(shù)量及其網(wǎng)絡(luò)使用模式的信息。
升級(jí)報(bào)價(jià):銷售工程師和現(xiàn)場(chǎng)技術(shù)人員可以幫助提供升級(jí)報(bào)價(jià)。為此,他們需要:
- 有關(guān)當(dāng)前網(wǎng)絡(luò)設(shè)置的具體信息,包括設(shè)備和帶寬要求。
- 期望的性能改進(jìn)。
- 預(yù)算限制和任何特定偏好或要求。
- 升級(jí)的規(guī)模和任何具體的性能目標(biāo)。
我希望這篇文章能讓您很好地了解建立多代理網(wǎng)絡(luò)所需的條件。
在下部分文章中,我將討論在創(chuàng)建多代理系統(tǒng)時(shí)實(shí)施保護(hù)措施的重要性,并概述如何構(gòu)建控件以允許人工干預(yù)和不確定性檢查。我還將詳細(xì)介紹創(chuàng)建安全保護(hù)代理以監(jiān)督代理網(wǎng)絡(luò)所需的步驟,并深入探討開發(fā)多代理網(wǎng)絡(luò)的挑戰(zhàn)(例如失控和過載),以及如何使用超時(shí)、任務(wù)劃分和冗余來緩解這些挑戰(zhàn)。(Venture Beat)
本文作者Babak Hodjat是Cognizant的人工智能首席技術(shù)官
本文由人人都是產(chǎn)品經(jīng)理作者【AI新智能】,微信公眾號(hào):【AI新智能】,原創(chuàng)/授權(quán) 發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來自Unsplash,基于 CC0 協(xié)議。
- 目前還沒評(píng)論,等你發(fā)揮!