假如想做一個(gè)只有AI智能體的公司,那要分幾步?

0 評(píng)論 1462 瀏覽 6 收藏 20 分鐘

從今年開始,智能體的概念火了,各家都開始做自己的智能體。如何構(gòu)建一個(gè)基于AI的公司呢?需要做什么,又需要幾個(gè)步驟?

之前文章《智能原生:AI藍(lán)海世界的關(guān)鍵鑰匙》等里面提到過(guò)幾次智能原生,普遍反饋是有點(diǎn)不好理解。

大概是因?yàn)锳I削薄了業(yè)務(wù)、產(chǎn)品、技術(shù)之間的邊界,至少在現(xiàn)階段很難像過(guò)去那樣把這幾者弄的涇渭分明,然后各研究各的,也能成為一個(gè)專業(yè)領(lǐng)用。想弄清楚就得一會(huì)在業(yè)務(wù)(領(lǐng)域模型)、一會(huì)在產(chǎn)品、一會(huì)在技術(shù),來(lái)回貫穿,所以就麻煩(過(guò)去其實(shí)也是,沒有網(wǎng)絡(luò)的技術(shù)特征特征那里有互聯(lián)網(wǎng)思維)。

這次我們用一個(gè)例子來(lái)說(shuō)明AI應(yīng)用的各個(gè)關(guān)鍵環(huán)節(jié)。

假如我們真想像某些開源項(xiàng)目那樣,構(gòu)建一個(gè)百分百基于AI的公司,那到底需要都干什么?又需要幾個(gè)步驟?

當(dāng)然我們這不是個(gè)技術(shù)文章,最后還是要回到這種新的應(yīng)用形式到底要匹配什么樣的思維模式,能夠創(chuàng)造什么樣的價(jià)值。

一、從自己到底想要干什么開始

現(xiàn)實(shí)前提是現(xiàn)在的大模型到不了你和它說(shuō)一句:給我干一個(gè)只有AI的公司,它就把活干了的程度。

大模型很像一個(gè)有純粹智商的甕中之腦,所以要干什么,怎么干都需要人做引導(dǎo)和價(jià)值判斷,從類似賺不賺錢、有沒有趣這類視角做設(shè)定。

所以所有的工作就簡(jiǎn)化成兩部分:你輸入給這個(gè)甕中之腦(大模型)什么,它回復(fù)了你什么?

最終智能的效能=甕中之腦(大模型)的智商x現(xiàn)實(shí)的理解縱深(表現(xiàn)為prompt)。

現(xiàn)在假設(shè)目標(biāo)干個(gè)只有AI的軟件公司,這個(gè)公司里面除了你全是智能體,你和它說(shuō)幾句話,它就幫你把軟件干出來(lái)了。

我們看看這事怎么干。

需要注意的是,這個(gè)產(chǎn)品是個(gè)應(yīng)用,但也是個(gè)公司。

因?yàn)槭莻€(gè)公司,所以第一步要對(duì)軟件公司以及軟件產(chǎn)品開發(fā)這事進(jìn)行分解,這樣才能構(gòu)建好需要讓大模型理解的東西。

這是業(yè)務(wù)也是產(chǎn)品。

先是要分解過(guò)程,為了簡(jiǎn)化我們這里假設(shè)就三個(gè)步驟:弄清楚要干什么(需求分析),把軟件開發(fā)出來(lái)(開發(fā)和評(píng)審),測(cè)試發(fā)布。

也要分解到底需要幾個(gè)角色,比如要有個(gè)老板拍板,它要負(fù)責(zé)發(fā)起決定干不干;

  • 要有產(chǎn)品經(jīng)理,它要負(fù)責(zé)確定產(chǎn)品到底干成什么樣;
  • 要有程序員,它負(fù)責(zé)把代碼寫出來(lái)并且進(jìn)行CodeReview;
  • 要有測(cè)試,他負(fù)責(zé)驗(yàn)證寫出來(lái)的產(chǎn)品行為是不是對(duì)的。
  • 只有角色還不能充分描述我們的業(yè)務(wù)(軟件開發(fā)),還要有過(guò)程和活動(dòng)

過(guò)程再加上特定的活動(dòng)(比如任務(wù))負(fù)責(zé)把角色串起來(lái),讓他們彼此配合完成特定的目的。

單有過(guò)程(決定了推進(jìn)持續(xù)),角色(決定有事的時(shí)候誰(shuí)干什么)也還是不夠的,還要有數(shù)據(jù)的描述,比如當(dāng)前的任務(wù)是什么,每個(gè)角色上一步的輸出是什么等。

這些設(shè)定比較清楚之后,就可以進(jìn)入下一步打造不同的智能體。

上面這個(gè)就是人對(duì)領(lǐng)域設(shè)定,也可以認(rèn)為是經(jīng)常說(shuō)的領(lǐng)域模型。其實(shí)有N總解法,而解法本身的選擇和價(jià)值判斷有關(guān)。

領(lǐng)域模型連接價(jià)值判斷和甕中之腦的純粹智商(大模型)

這種對(duì)領(lǐng)域的分解有什么意義呢?

簡(jiǎn)單可以理解成:為了更好的全自動(dòng)的和甕中之腦(大模型)交互。

既然就說(shuō)一句話不行,比如給我生成一個(gè)XX軟件產(chǎn)品,甕中之腦的智商又夠了,那就需要讓它清楚現(xiàn)實(shí),好發(fā)揮它的智力。

需要輸入什么給它其實(shí)的變化的,這種變化需要一種管理體系,這個(gè)管理體系需要依賴領(lǐng)域模型。(過(guò)程、角色、活動(dòng)、數(shù)據(jù)等)

這部分因?yàn)樽鳛楫Y中之腦的大模型只認(rèn)識(shí)提示詞,所以不管你干了多少事最終都要變成它能更好理解的提示詞(當(dāng)然你可以很長(zhǎng))。

另一部分目的則是重用這些約定俗成的詞,比如程序員,比如產(chǎn)品經(jīng)理。每個(gè)詞后面其實(shí)折疊了很多細(xì)節(jié)?,F(xiàn)在的模型是基于人類累積到現(xiàn)在為止的知識(shí)訓(xùn)練出來(lái)的,所以這些詞背后約定俗成的意義也被包含在模型里面了,不需要重頭解釋每個(gè)詞了。這也能提高和大模型的交互效率。

上面的工作做完了,就到了第二步,打造不同的Agent。

這一步很詭異的是確實(shí)主要是技術(shù)的活,但本質(zhì)卻不是。由于這不是一個(gè)技術(shù)文章,我們就簡(jiǎn)略一些做描述,還是只關(guān)注它和過(guò)去的差異。

二、打造不同Agent

一個(gè)方法是不做抽象就按角色做出一個(gè)個(gè)Agent,比如總經(jīng)理的Agent、程序員的Agent。Agent里面要有自己對(duì)應(yīng)的基礎(chǔ)提示詞,還要有按照?qǐng)?zhí)行時(shí)間點(diǎn)填充的實(shí)時(shí)信息,比如:

  • 你是誰(shuí),要干什么;
  • 要有當(dāng)前的階段描述,比如現(xiàn)在需求分析階段,有那些事要做。
  • 要有一定的記憶,比如我上一輪到底說(shuō)什么了,我產(chǎn)出的代碼是什么等。

當(dāng)然也可以抽象一點(diǎn),按職能來(lái)分比如代表任務(wù)的Agent,代表對(duì)話的Agent等。

之后任務(wù)的Agent要調(diào)度各種角色。

真做的話,里面會(huì)包含很多細(xì)節(jié),比如檢查生成的代碼是否合適這環(huán)節(jié),那要檢查多少輪次算合格呢?

但基本定位就是聲明自己的角色、以及當(dāng)前活動(dòng)的上下文、當(dāng)前活動(dòng)的目標(biāo)。

這里舉個(gè)簡(jiǎn)單例子:

比如ChatDev把程序員和CodeReviewer角色的prompt弄成了下面這樣({}里面的部分是要根據(jù)執(zhí)行時(shí)情況填寫的。)

Programmer“:[

“{chatdev_prompt}”,

“YouareProgrammer.wearebothworkingatChatDev.Weshareacommoninterestincollaboratingtosuccessfullycompleteataskassignedbyanewcustomer.”,

“Youcanwrite/createcomputersoftwareorapplicationsbyprovidingaspecificprogramminglanguagetothecomputer.Youhaveextensivecomputingandcodingexperienceinmanyvarietiesofprogramminglanguagesandplatforms,suchasPython,Java,C,C++,HTML,CSS,JavaScript,XML,SQL,PHP,etc,.”,

“Hereisanewcustomer’stask:{task}.”,

“Tocompletethetask,youmustwritearesponsethatappropriatelysolvestherequestedinstructionbasedonyourexpertiseandcustomer’sneeds.”

]

CodeReviewer“:[

“{chatdev_prompt}”,

“YouareCodeReviewer.wearebothworkingatChatDev.Weshareacommoninterestincollaboratingtosuccessfullycompleteataskassignedbyanewcustomer.”,

“Youcanhelpprogrammerstoassesssourcecodesforsoftwaretroubleshooting,fixbugstoincreasecodequalityandrobustness,andofferproposalstoimprovethesourcecodes.”,

“Hereisanewcustomer’stask:{task}.”,

“Tocompletethetask,youmustwritearesponsethatappropriatelysolvestherequestedinstructionbasedonyourexpertiseandcustomer’sneeds.”

]

把階段的Prompt模版弄成了下面這樣:

Coding“:{

“assistant_role_name”:”Programmer”,

“user_role_name”:”ChiefTechnologyOfficer”,

“phase_prompt”:[

“Accordingtothenewuser’staskandoursoftwaredesignslistedbelow:”,

“Task:”{task}”.”,

“Taskdescription:”{description}”.”,

“Modality:”{modality}”.”,

“ProgrammingLanguage:”{language}””,

“Ideas:”{ideas}””,

“Wehavedecidedtocompletethetaskthroughaexecutablesoftwarewithmultiplefilesimplementedvia{language}.Asthe{assistant_role},tosatisfythenewuser’sdemands,youshouldwriteoneormultiplefilesandmakesurethateverydetailofthearchitectureis,intheend,implementedascode.{gui}”,

“Thinkstepbystepandreasonyourselftotherightdecisionstomakesurewegetitright.”,

“Youwillfirstlayoutthenamesofthecoreclasses,functions,methodsthatwillbenecessary,aswellasaquickcommentontheirpurpose.”,

“Thenyouwilloutputthecontentofeachfileincludingcompletecode.Eachfilemuststrictlyfollowamarkdowncodeblockformat,wherethefollowingtokensmustbereplacedsuchthat”FILENAME”isthelowercasefilenameincludingthefileextension,”LANGUAGE”intheprogramminglanguage,”DOCSTRING”isastringliteralspecifiedinsourcecodethatisusedtodocumentaspecificsegmentofcode,and”CODE”istheoriginalcode:”,

“FILENAME”,

““`LANGUAGE”,

“”'”,

“DOCSTRING”,

“”'”,

“CODE”,

““`”,

“Youwillstartwiththe”main”file,thengototheonesthatareimportedbythatfile,andsoon.”,

“Pleasenotethatthecodeshouldbefullyfunctional.Ensuretoimplementallfunctions.Noplaceholders(suchas’pass’inPython).”

]

}

對(duì)這個(gè)步驟做簡(jiǎn)單總結(jié)就是下面這兩點(diǎn):最終目標(biāo)都是要形成一段話(prompt)在不同的步驟上用(現(xiàn)在的大模型只認(rèn)這個(gè))。

這段話是變的。

根據(jù)不同的執(zhí)行狀態(tài)每次需要做出調(diào)整。

這和人其實(shí)差不多,人也是每次接受不同的信息(按角色),然后給出自己的判斷和理解。

這就是為什么之前總說(shuō)這次大模型的核心進(jìn)展是概念理解和判斷能力,沒有這個(gè)這種智能體跑不起來(lái)。

這步看著確實(shí)是技術(shù)的活,但底子其實(shí)不是。

程序員的角色是提高效率,但本質(zhì)這事行不行,能搞到什么程度,不是程序員能驗(yàn)證的。

程序員解決效率問(wèn)題,但理解領(lǐng)域的人才能判斷上限。(智能效能=大模型的智商高度x現(xiàn)實(shí)理解的縱深)

也就是說(shuō)過(guò)去說(shuō)的圖靈測(cè)試2.0的判斷人不是程序員,甚至都不是人工智能科學(xué)家,而是理解領(lǐng)域的人要自己操練大模型做判斷。要在這個(gè)背景下去理解角色中心式計(jì)算和圖靈測(cè)試2.0。

隨著使用深入肯定發(fā)生角色的重新定義,而角色的重定義等也不是技術(shù)能定義的事。

三、啟動(dòng)整個(gè)公司

上面這些都做完了就需要把整個(gè)軟件公司啟動(dòng)起來(lái)。等著外面的輸入。

這個(gè)公司里有很多智能體,還保留了一個(gè)可以對(duì)話的入口。

比如可以和它說(shuō),幫我干出來(lái)一個(gè)TODO的小應(yīng)用。

(和真的公司很像,你說(shuō)一句,然后一堆人就把活干了)

啟動(dòng)程序就需要按照指定過(guò)程,先需求再開發(fā)然后測(cè)試發(fā)布,依次給每個(gè)角色分配任務(wù),直到最終認(rèn)為產(chǎn)品合格了,再把產(chǎn)品發(fā)布出來(lái)。

這時(shí)候最終的公司變成了這樣:

一個(gè)人:決定到底要干什么軟件產(chǎn)品。用什么樣的過(guò)程,用幾個(gè)角色,每個(gè)角色到底負(fù)責(zé)什么。

不同角色的智能體:每個(gè)的產(chǎn)出可以是一個(gè)階段性成果,也可以是代碼,當(dāng)然復(fù)雜了也可以是美工的圖,圖標(biāo)等。擴(kuò)展起來(lái)還可以加上蜘蛛爬取某些實(shí)時(shí)的網(wǎng)上信息,讓配圖等更符合最新的風(fēng)格。

公司就是應(yīng)用,應(yīng)用的邊界也就成了公司的邊界。

從公司角度看,和過(guò)去不一樣的點(diǎn)是什么呢?

大量的智能體在干活,人只做原則設(shè)定。

從應(yīng)用的角度看和過(guò)去比,不一樣的點(diǎn)是什么呢?

這個(gè)應(yīng)用在一個(gè)大邊界下你可以給它設(shè)定任何目的。

什么軟件都能開發(fā)。過(guò)去要依賴平臺(tái)化才能張開自己的任務(wù)種類,現(xiàn)在靠AI干了。

四、智能原生公司

基于這個(gè)例子,我們可以進(jìn)一步總結(jié)一些關(guān)于AI智能應(yīng)用的關(guān)鍵特征:

第一,和領(lǐng)域相關(guān)的部分是人的活。

這部分拆分未來(lái)可能模型能做一部分,但是在眾多變量里面判斷那部分有價(jià)值,比如到底干什么,什么樣才叫合格等估計(jì)一直是人的部分。也許方法論部分(比如什么過(guò)程等)未來(lái)可以模型干,但現(xiàn)在模型干這個(gè)費(fèi)勁。這是邊界問(wèn)題。

第二,這種應(yīng)用是按角色來(lái)的(角色中心式計(jì)算)。比如程序員的角色可能需要調(diào)用一大堆工具Git、Python等才能完成自己的職責(zé)。但這些最終要變成提示詞(prompt)才能驅(qū)動(dòng)自己的活動(dòng)。每個(gè)角色到底能不能成立,要看圖靈測(cè)試2.0能不能過(guò)。

很多時(shí)候可能物理約束大于智能約束。我們這個(gè)例子里面沒有物理約束(比如把汽車從北京開到蘇州)。

所以智能原生化估計(jì)得從這類領(lǐng)域先開始。

第三,需要很多的配套措施。Agent要記住自己說(shuō)了什么,要知道當(dāng)前在干什么等。這需要一套完備且繁瑣的機(jī)制。寫程序好像就記錄代碼就完了。真正的公司需要匯總業(yè)務(wù)、財(cái)務(wù)等各種數(shù)據(jù),并且保證數(shù)據(jù)精度。需要的成本很高,挑戰(zhàn)很大。

第四,什么時(shí)候可以叫完成工作是個(gè)問(wèn)題。產(chǎn)出內(nèi)容到底合適不合適,幻覺了怎么辦等,都是關(guān)鍵制約。放回到具體場(chǎng)景下智能和想象中的智能好像說(shuō)的是一個(gè)東西,其實(shí)是兩碼事。所以之前我們說(shuō)純數(shù)字和幻覺本身不對(duì)應(yīng)過(guò)大成本的領(lǐng)域會(huì)優(yōu)先。

過(guò)去琢磨事對(duì)此進(jìn)行了一些總結(jié),比如把公司的智能原生式思維提煉為:智能優(yōu)先,萬(wàn)物皆、實(shí)時(shí)反饋、中心決策。這在上面這種應(yīng)用的基礎(chǔ)上可能更好理解。

模型的技術(shù)特征決定了需要和它匹配的思維模式。

五、是普通人的機(jī)會(huì)么?

上面這過(guò)程看著需要寫代碼驅(qū)動(dòng),但本質(zhì)不是一個(gè)技術(shù)的事。不寫代碼頂多就笨一點(diǎn),一步一步寫一堆提示詞。代碼是讓整個(gè)事串起來(lái)更自動(dòng)一些,影響效率,不影響價(jià)值。

所謂的領(lǐng)域,還真不是模型和代碼能概括的事。

也就是說(shuō)把甕中之腦的能力用起來(lái)正需要理解領(lǐng)域的普通人(不是AI科學(xué)家)。

所以理論上是普通人的機(jī)會(huì),但現(xiàn)在關(guān)鍵問(wèn)題不在這里,而是你把智能放到自己想的那個(gè)場(chǎng)景下,它不一定創(chuàng)造價(jià)值。

這是判斷的關(guān)鍵。

同時(shí)這也暗示了一個(gè)很多人都關(guān)心的問(wèn)題的答案:

AI會(huì)取代對(duì)應(yīng)的崗位么?

這是個(gè)必然發(fā)生的事。

回到基礎(chǔ)公式:智能效能= 模型的智商x現(xiàn)實(shí)理解縱深,就會(huì)發(fā)現(xiàn)這事取決于模型自身的發(fā)展,也取決于給它適配的對(duì)現(xiàn)實(shí)進(jìn)行理解的系統(tǒng)(Agent)。在上面那個(gè)但上面軟件公司里也還是要人的,只不過(guò)這個(gè)角色所需要的能力發(fā)生了巨大變化。

六、小結(jié)

最后要強(qiáng)調(diào)的是上面這個(gè)過(guò)程,做著玩是可以的,但不能創(chuàng)業(yè)。做領(lǐng)域拆分然后判斷智能高度,這點(diǎn)會(huì)看的比較清楚。也就是說(shuō)現(xiàn)在的技術(shù)成熟度不匹配合適的商業(yè)價(jià)值。但這不影響這趨勢(shì)本身,模型的基本為此提供了源源不斷的動(dòng)力。

理解這種基礎(chǔ)原型其實(shí)提供了一個(gè)發(fā)現(xiàn)的視角和眼睛。地球上有石油億萬(wàn)年了,只有嵌入到工業(yè)革命的上下文下它才是財(cái)富,所以能看到新現(xiàn)實(shí)的新視野還是關(guān)鍵的。

專欄作家

琢磨事,微信公眾號(hào):琢磨事,人人都是產(chǎn)品經(jīng)理專欄作家。聲智科技副總裁。著有《終極復(fù)制:人工智能將如何推動(dòng)社會(huì)巨變》、《完美軟件開發(fā):方法與邏輯》、《互聯(lián)網(wǎng)+時(shí)代的7個(gè)引爆點(diǎn)》等書。

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

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

該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺(tái)僅提供信息存儲(chǔ)空間服務(wù)。

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