国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

一文講透AI Agent開發(fā)中的human-in-the-loop

人工智能
我們必須謹慎地選擇,把哪些信息放到序列化的數(shù)據(jù)之中,哪些不放。通常來說,應(yīng)該只序列化那些必要的、動態(tài)的數(shù)據(jù),而其他信息可以盡量保留在代碼中。以后有機會了我們再仔細展開這個話題。

前段時間確實有點忙,好久沒有發(fā)文了。不過最近有好多AI技術(shù)方面的想法要跟大家分享:-)

今天我們主要聊一聊在AI Agent開發(fā)中非常重要的一個特性:human-in-the-loop。

為什么需要human-in-the-loop?

我們在以前的文章中曾經(jīng)討論過在AI Agent開發(fā)中確定性和自主性的關(guān)系問題。自主性帶來智能的行為和新的可能性,但軟件的交付需要為客戶提供確定性。這兩者可以說是一對矛盾。

于是,在Agent的執(zhí)行過程中引入人工確認,就成了消除不確定性的一種思路。想象一個做自動化運維的Agent,它在決定往生產(chǎn)環(huán)境部署一個服務(wù)之前,很可能需要獲得管理員的核準(zhǔn)才能繼續(xù)運行。再想象一個做客戶關(guān)系維護的Agent,它自動閱讀了客戶郵件,然后撰寫了一封回復(fù)郵件,這個時候它在真正發(fā)送這封郵件之前,可能也需要先經(jīng)過人工審核才能發(fā)送。而且,審核人員如果覺得郵件內(nèi)容有欠妥的地方,可能還會給出具體的修改建議。Agent就可以根據(jù)人類建議對郵件內(nèi)容進行修改,然后再繼續(xù)執(zhí)行。

AI的產(chǎn)品形式早已不再局限于chat式的一問一答。很多Agent可以長時間運行,比如,在連續(xù)運行幾分鐘甚至幾小時后向人類交付結(jié)果。在企業(yè)環(huán)境下,你可以把這種新型的AI Agent想象成一個數(shù)字員工。它在業(yè)務(wù)水平上可能只有實習(xí)生的水平,但明顯的優(yōu)勢就是不怕累,可以不眠不休地干著重復(fù)性的工作。

當(dāng)然,它在行為方式上也跟實習(xí)生類似。想象公司里來了一名實習(xí)生,領(lǐng)導(dǎo)讓你帶著他干活。于是你交給了他一項任務(wù),他就跑到旁邊默默地去干了。在干的過程中,他碰到了一個棘手的問題,卡住了。他就會來找你請教,這個情況應(yīng)該怎么處理。這個時候,你只需要給他一些指導(dǎo),他就又重新投入到工作中去了。你要做的,只是提供必要的指導(dǎo),而不用親自動手去完成所有的事情,負擔(dān)果然減輕了不少啊。如果這名實習(xí)生是一個虛擬的AI Agent呢?那么,它主動來找你提供指導(dǎo),就是一種human-in-the-loop。作為一名虛擬的“實習(xí)生”,這個AI Agent在運行過程中如果碰到棘手的問題,或者待決斷的問題,它就會停下來,然后通過各種渠道(比如IM、郵件)來找你。等到你有空了,回復(fù)它一下,并提供必要的處理指令,它就繼續(xù)干活兒去了。

從抽象層面來看,在這樣的一個處理過程中,人類被AI Agent牽涉其中,成為了Agent為了完成其自主操作的其中一環(huán)。這也是為什么這個機制稱為human-in-the-loop。人類在提供核準(zhǔn)或者指導(dǎo)意見的時候,我們一方面可以看做是,人類為AI Agent的運行提供了更具體、更準(zhǔn)確的上下文;另一方面也可以看做是,AI把人當(dāng)做了“工具”,它在必要的時候(通常是比較難處理的時候),把人類當(dāng)做一個工具來調(diào)用了(而且這個工具相當(dāng)智能和權(quán)威)。

跟實現(xiàn)有關(guān)的技術(shù)因素

現(xiàn)在,我們來思考一下,如何在技術(shù)層面來實現(xiàn)這種human-in-the-loop的機制。有哪些關(guān)鍵的技術(shù)因素需要考慮?

根據(jù)上一節(jié)的描述,AI Agent需要在執(zhí)行過程中“停下來”,然后在跟人類完成交互后,再繼續(xù)運行。有人可能會說,很多編程語言都有await的機制,是不是用await就能實現(xiàn)“停下來再繼續(xù)運行”的效果?

這當(dāng)然不是問題的全部。我們需要到真正的生產(chǎn)環(huán)境中去考慮這個問題。在生產(chǎn)環(huán)境中,有一些復(fù)雜的系統(tǒng)架構(gòu)方面的因素需要考慮。其中有兩個因素,對于如何實現(xiàn)human-in-the-loop有關(guān)鍵的影響:

  • 第一個是分布式。
  • 第二個是用戶和AI Agent之間的通道性質(zhì)。

我們先來討論第一個因素——“分布式”架構(gòu)的影響。一般來說,生產(chǎn)環(huán)境都不止一臺服務(wù)器,很可能是一個包含多個機器節(jié)點的Agent集群。如下圖,左邊是server端,右邊是client端。

圖片圖片

從上圖我們發(fā)現(xiàn),一個human-in-the-loop交互是由server端主動發(fā)起的。這跟傳統(tǒng)的互聯(lián)網(wǎng)應(yīng)用開發(fā)不太一樣。

假設(shè)一個AI Agent運行在節(jié)點A上。它在執(zhí)行過程中發(fā)生了某種特殊事件,于是發(fā)起了一個human-in-the-loop的交互。也就是說,它通過某種通道向client端發(fā)送request,請求人類的介入。假設(shè)用戶收到了來自Agent的這個請求,并給出了自己的反饋 (feedback) 。接下來,client端需要把這個feedback發(fā)送回server端。由于server端有多個服務(wù)器節(jié)點,一般來說,來自client端的網(wǎng)絡(luò)請求會被隨機分配到某個服務(wù)器節(jié)點上。這樣就會導(dǎo)致,來自client的feedback信息,未必會落在當(dāng)初發(fā)起human-in-the-loop請求的節(jié)點A上;同時,節(jié)點A由于收不到feedback而沒法把human-in-the-loop繼續(xù)下去。

之所以會出現(xiàn)上面的問題,除了分布式集群帶來的影響之外,還有一個原因是,用戶和AI Agent之間的通信通道沒有能夠做到會話保持 (session sticky) 。根據(jù)場景和運行環(huán)境的不同,用戶和AI Agent之間的通道性質(zhì)可能呈現(xiàn)很大的差異。下面是幾種典型的情況:

  • 第一種情況,client端和server端之間使用HTTP協(xié)議通信。這種情況下,請求必須由client端主動發(fā)起,server端才能夠執(zhí)行并做出響應(yīng)。顯然這種情況是沒法支持上圖中AI Agent主動向client端發(fā)起請求的。
  • 第二種情況,client端和server端之間使用某種長連接進行通信(比如WebSocket)。這種情況下,不管是client端還是server端,都可以隨時向?qū)Ψ街鲃影l(fā)起請求。而且,在上圖中client端發(fā)回server端的feedback,仍然會沿著長連接發(fā)到節(jié)點A。用戶和AI Agent之間,很容易在一條長連接上做到會話保持,也就比較容易支持human-in-the-loop這種由Agent主動發(fā)起的交互。下圖展示了這種情況下的human-in-the-loop交互。

圖片圖片

針對以上兩種情況,還有一些技術(shù)實現(xiàn)上需要注意的地方。

首先對于第一種情況,我們在AI應(yīng)用開發(fā)中經(jīng)常使用的SSE技術(shù) (Server-Sent Events) ,它屬于HTTP協(xié)議,也具備一定的「server push」的能力,但仍然支持不了讓AI Agent主動發(fā)起請求。原因在于,SSE依賴client端先建立起同server端的連接之后,server端才能向這個連接進行push。換句話說,SSE本質(zhì)上其實還是由client主動發(fā)起交互的,用于實現(xiàn)一些流式的效果,但server端不能隨時發(fā)起一個交互(至少在一個常規(guī)的實現(xiàn)中是這樣的)。

還有一個需要注意的地方是,Agent集群外面可能存在一個網(wǎng)關(guān),所有client都通過這個網(wǎng)關(guān)與后面的server建立連接。這時候,要實現(xiàn)server主動發(fā)起交互并且做到會話保持,首先要求client和網(wǎng)關(guān)之間是某種長連接,其次還要求網(wǎng)關(guān)具備會話保持的能力,有能力將server主動發(fā)起的request和來自client的feedback保持在一個會話內(nèi)。這樣,整個human-in-the-loop的流程才能由節(jié)點A來全部完成。

不管怎么說,在以上這兩種情況下,用戶和AI Agent之間的通信通道對于開發(fā)者來說,還是可控的。但還有第三種情況,這個通道是由第三方提供的,它的性質(zhì)是開發(fā)人員控制不了的。如下圖:

圖片圖片

  • 第三種情況,client端和server端之間通過某種異步通信網(wǎng)絡(luò)進行通信。這種通信網(wǎng)絡(luò),一般來說是由第三方提供的。比如說,用戶可能通過IM窗口跟Agent進行交互。這時候,client端和server端之間自然建立不起長連接。節(jié)點A發(fā)起的human-in-the-loop的request,其對應(yīng)的feedback也大概率無法保證仍然由節(jié)點A接收到。

考慮到以上這些因素,服務(wù)端對于human-in-the-loop的實現(xiàn),就需要不同的技術(shù)方案。

兩種技術(shù)方案

我們把前面幾種情況分成兩類:

(1)client端和server端之間具備長連接的條件,且能夠做到會話保持的。主要是第二種情況。

(2)client端和server端之間無法保持會話的。包括第一種情況和第三種情況。

對于(1),我們可以利用長連接和會話保持的優(yōu)勢,讓server端的一個節(jié)點完成human-in-the-loop的整個交互過程。這樣server端的實現(xiàn)就會簡單很多。以Python語言為例,human-in-the-loop的機制可以這樣實現(xiàn):

  • Agent通過長連接向用戶發(fā)送一個交互請求。
  • Agent使用await機制等待在一個future對象上,即,等待client端響應(yīng)。
  • 用戶處理這個請求,給出核準(zhǔn)或指導(dǎo)意見,client端以feedback的形式,通過長連接發(fā)回給Agent所在的server節(jié)點。
  • server節(jié)點的上層代碼為前面的future對象設(shè)置結(jié)果。
  • Agent從等待future對象的狀態(tài)中恢復(fù),并從future對象中拿到用戶的feedback。
  • Agent基于用戶的feedback繼續(xù)執(zhí)行。一個human-in-the-loop的過程結(jié)束。

當(dāng)然,這種實現(xiàn)方式對于基礎(chǔ)設(shè)施存在比較高的要求,維護長連接和保持會話,通常不是那么容易的事。而且,系統(tǒng)本身維持長連接也是有成本的。

對于(2),client端和server端無法保持會話,來自用戶的feedback可能落在任意server節(jié)點上。這時只有一種辦法:對Agent的整個運行狀態(tài)進行序列化、持久化、反序列化。整個技術(shù)處理流程較復(fù)雜,如下:

  • Agent向用戶發(fā)送一個交互請求。
  • Agent將內(nèi)部運行狀態(tài)進行序列化,并停止運行。
  • server節(jié)點的上層代碼將Agent序列化后的數(shù)據(jù)存入DB,完成持久化。同時,已經(jīng)停止的Agent實例,不再需要保持在內(nèi)存中。
  • 用戶處理這個請求,給出核準(zhǔn)或指導(dǎo)意見,client端以feedback的形式,發(fā)回到server端任意一個節(jié)點上。
  • 收到feedback的節(jié)點從DB中加載前面序列化的數(shù)據(jù),并在內(nèi)存中反序列化,重新創(chuàng)建出Agent實例。注意,這個Agent實例保持了運行狀態(tài),它知道自己下一步該從哪里繼續(xù)運行。
  • 反序列化后的Agent從之前中斷的地方恢復(fù),并拿到來自用戶的feedback。
  • Agent基于用戶的feedback繼續(xù)執(zhí)行。一個human-in-the-loop的過程結(jié)束。

關(guān)于序列化和反序列化

有人可能會問,什么是序列化和反序列化呢?簡單來說,序列化是把一個內(nèi)存對象轉(zhuǎn)成一串bytes或string的過程;而反序列化是從一串bytes或string中恢復(fù)一個內(nèi)存對象的過程。

不得不說的是,把一個復(fù)雜對象進行序列化和反序列化,不是一件容易的事。為什么這么說呢?難度來源于對象之間的關(guān)系:

  • 一個復(fù)雜的對象,可能引用了其他對象;而其他對象又引用了更多對象。
  • 面向?qū)ο缶幊處淼膍ethod和對象實例之間的綁定關(guān)系,也為序列化和反序列化帶來了諸多麻煩。

假設(shè)僅僅是對于某個數(shù)據(jù)對象進行序列化和反序列化,情況可能尚在可控范圍內(nèi)。數(shù)據(jù)對象通常只包含數(shù)據(jù)字段,數(shù)據(jù)對象之間的引用關(guān)系一般也呈現(xiàn)單向的引用關(guān)系。但讓問題更復(fù)雜的是,Agent對象不僅僅是一個數(shù)據(jù)對象,它更是一個包含運行行為的運行時對象。運行時對象之間,可能存在錯綜復(fù)雜的引用關(guān)系。

總之,我們必須謹慎地選擇,把哪些信息放到序列化的數(shù)據(jù)之中,哪些不放。通常來說,應(yīng)該只序列化那些必要的、動態(tài)的數(shù)據(jù),而其他信息可以盡量保留在代碼中。以后有機會了我們再仔細展開這個話題。

小結(jié)

今天我們探討了human-in-the-loop這種機制,它出現(xiàn)的技術(shù)背景、兩種不同的實現(xiàn)思路,以及中間的成本和難點。

責(zé)任編輯:武曉燕 來源: 張鐵蕾
相關(guān)推薦

2025-10-17 09:17:19

AgentLangGraphAI

2025-01-13 12:00:00

反射Java開發(fā)

2020-03-26 09:18:54

高薪本質(zhì)因素

2020-08-04 10:56:09

進程線程協(xié)程

2025-12-04 09:14:06

2020-07-16 09:02:45

aPaaS云計算aPaaS平臺

2024-08-13 17:09:00

架構(gòu)分庫分表開發(fā)

2020-12-01 11:34:14

Elasticsear

2023-11-09 08:41:25

DevOpsAIOps軟件

2021-01-18 13:05:52

Serverless Serverfull FaaS

2025-03-28 11:47:38

2023-05-04 08:24:52

ChatGPT產(chǎn)品經(jīng)理工業(yè)革命

2025-12-03 08:59:00

2024-08-07 10:54:59

正則表達式Java RegexJava

2024-05-31 13:23:19

OceanBase單機版架構(gòu)

2025-10-14 09:01:20

2024-07-10 12:00:42

2025-08-28 02:15:00

CAPMySQL架構(gòu)

2020-05-20 09:55:42

Git底層數(shù)據(jù)

2025-07-10 02:25:00

點贊
收藏

51CTO技術(shù)棧公眾號

欧美最新另类人妖| 日韩在线观看一区二区| 欧美日韩在线观看一区二区| 男人c女人视频| 欧洲一区在线| 日本丰满少妇一区二区三区| 久久久久免费看黄a片app| 午夜国产欧美理论在线播放| 久久综合伊人77777蜜臀| 91网在线播放| 国产精品三级av| 久久青青草综合| 综合国产视频| 国产亚洲精品一区二区| 国产毛片在线| 中文字幕一区二区三区在线不卡 | 91天堂在线| 99精品久久只有精品| 蜜桃91精品入口| 久久在线免费| 69**夜色精品国产69乱| 台湾佬中文娱乐久久久| 欧美三级日韩在线| 最猛黑人系列在线播放| 欧美激情一区三区| 日本人体一区二区| 国产乱色国产精品免费视频| 免费看污久久久| 国产精品a级| 国产精品人人做人人爽| 亚洲一区二区欧美| 欧美黑人在线观看| 毛片av中文字幕一区二区| 精品欧美国产| 亚洲人www| 国产另类自拍| 欧美成人午夜| 成人免费大片黄在线播放| 国产一区二区三区91| 国外成人在线直播| 久久夜色电影| 97人人爽人人喊人人模波多| 日本一区二区三区播放| 色中色综合影院手机版在线观看| 国产麻豆一区| 久久亚洲精品一区二区| 精品视频一区二区三区| 欧美极品xxxx| 国产成人高清精品免费5388| 久久青草福利网站| 精品国产亚洲一区二区三区大结局| 日韩在线一区二区三区免费视频| 777午夜精品电影免费看| 亚洲视频一区二区三区| 欧美天堂一区二区| 久久成人免费视频| 亚欧日韩另类中文欧美| 久久久久久久999精品视频| 欧美偷窥清纯综合图区| 国产在线观看不卡| 亚洲人成人一区二区三区| 久久这里精品国产99丫e6| 麻豆免费看一区二区三区| 美女av免费观看| 国产欧美一区二区精品性色| 韩国版免费三体| 在线视频一区二区三| 欧美黄色视屏| 久久99久久99精品免观看粉嫩| 免费看日本一区二区| 国产精品一区二区三区在线| 韩国欧美一区二区| 午夜宅男在线视频| 欧美日韩亚洲网| 欧美videosex性欧美黑吊| 日日噜噜噜夜夜爽亚洲精品| 亚洲另类av| 国产激情一区二区三区在线观看| 日韩avvvv在线播放| 大陆极品少妇内射aaaaa| 亚洲精品日日夜夜| h网站久久久| 久久久999精品免费| 日韩在线观看一区| 大地资源第二页在线观看高清版| 久久综合色婷婷| 在线一区观看| 日韩精品视频免费专区在线播放 | 日韩影院在线观看| 国产一级做a爰片久久毛片男| 国产精品久久久久久久岛一牛影视 | 亚洲视屏在线播放| 欧美日韩精品一区二区三区在线观看| 91麻豆国产精品| 蜜臀av一区二区| 一本久道综合色婷婷五月| 欧美日韩中文字幕| 日本中文字幕一区二区| 国产精品亚洲综合天堂夜夜| 国产一区二区成人久久免费影院| 91麻豆福利| 日韩av网站在线| 亚洲人成伊人成综合图片| 伊人久久大香线蕉综合75| 亚洲最大成人综合| 成人免费在线观看视频| http;//www.99re视频| 91视视频在线观看入口直接观看www | 一本一道久久a久久综合精品| 久久香蕉国产线看观看99| 国际av在线| 亚洲天堂av网| 欧美日韩1080p| 天天色综合社区| 91国产免费观看| 精品一区二区三区欧美| 亚洲日韩中文字幕在线播放| 国产亚洲欧美日韩在线观看一区二区 | 成人啊v在线| 欧美性资源免费| 先锋影音久久| 又黄又www的网站| 欧美极品欧美精品欧美图片| 资源网第一页久久久| 久久se这里有精品| 亚洲裸体视频| 欧美美女18p| 久久99深爱久久99精品| 青青操在线视频| 97在线免费观看| 不卡av在线网| sis001亚洲原创区| 国产不卡一区二区在线观看| 中文字幕日韩欧美一区二区三区| 婷婷激情一区| 日韩一二三区不卡在线视频| 色综合视频在线观看| 曰本一区二区三区视频| 亚洲 中文字幕 日韩 无码| 亚洲欧美中文另类| 日韩国产欧美在线观看| 调教视频免费在线观看| 51国偷自产一区二区三区| 亚洲美女视频在线观看| 岛国精品一区| 国产福利影院在线观看| 北条麻妃在线一区二区| 国产69精品久久久久毛片| 国产盗摄精品一区二区酒店| 精品欧美日韩在线| 在线成人小视频| 性高湖久久久久久久久| 18视频免费网址在线观看| 97超碰资源| 欧美日韩www| 久久久久久黄| 国产精品一区二区日韩| 激情五月五月婷婷| 国产视频欧美视频| 国产福利一区在线观看| 久久天堂影院| 天堂在线资源视频| 欧美在线视频观看| **欧美大码日韩| 成人av资源电影网站| 四虎影视在线播放| 精品午夜一区二区| 亚洲国产精彩中文乱码av在线播放| 久久国内精品视频| 成人豆花视频| 免费在线观看羞羞视频| 国产欧美一区二区| 精品视频免费看| 精品一区二区免费在线观看| 搜成人激情视频| 国产精品入口免费软件| 欧洲s码亚洲m码精品一区| 天天综合天天综合色| 一本色道精品久久一区二区三区| 日韩精品亚洲人成在线观看| 亚洲av综合色区| 久久免费福利视频| 色综合久久99| 久久亚洲色图| 欧美成人毛片| 精品剧情v国产在线观看| 99国产高清| 亚洲人成电影网站| 超清福利视频| 亚洲一区第一页| 中国色在线观看另类| 精品中文一区| 成人免费高清| 超碰网在线观看| 91传媒在线免费观看| 国产婷婷成人久久av免费高清| 国产欧美一区二区精品仙草咪 | 色综合电影网| 日韩有码视频在线| 精品久久久久久久大神国产|