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

0 評論 1239 瀏覽 5 收藏 20 分鐘

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

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

大概是因為AI削薄了業務、產品、技術之間的邊界,至少在現階段很難像過去那樣把這幾者弄的涇渭分明,然后各研究各的,也能成為一個專業領用。想弄清楚就得一會在業務(領域模型)、一會在產品、一會在技術,來回貫穿,所以就麻煩(過去其實也是,沒有網絡的技術特征特征那里有互聯網思維)。

這次我們用一個例子來說明AI應用的各個關鍵環節。

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

當然我們這不是個技術文章,最后還是要回到這種新的應用形式到底要匹配什么樣的思維模式,能夠創造什么樣的價值。

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

現實前提是現在的大模型到不了你和它說一句:給我干一個只有AI的公司,它就把活干了的程度。

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

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

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

現在假設目標干個只有AI的軟件公司,這個公司里面除了你全是智能體,你和它說幾句話,它就幫你把軟件干出來了。

我們看看這事怎么干。

需要注意的是,這個產品是個應用,但也是個公司。

因為是個公司,所以第一步要對軟件公司以及軟件產品開發這事進行分解,這樣才能構建好需要讓大模型理解的東西。

這是業務也是產品。

先是要分解過程,為了簡化我們這里假設就三個步驟:弄清楚要干什么(需求分析),把軟件開發出來(開發和評審),測試發布。

也要分解到底需要幾個角色,比如要有個老板拍板,它要負責發起決定干不干;

  • 要有產品經理,它要負責確定產品到底干成什么樣;
  • 要有程序員,它負責把代碼寫出來并且進行CodeReview;
  • 要有測試,他負責驗證寫出來的產品行為是不是對的。
  • 只有角色還不能充分描述我們的業務(軟件開發),還要有過程和活動。

過程再加上特定的活動(比如任務)負責把角色串起來,讓他們彼此配合完成特定的目的。

單有過程(決定了推進持續),角色(決定有事的時候誰干什么)也還是不夠的,還要有數據的描述,比如當前的任務是什么,每個角色上一步的輸出是什么等。

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

上面這個就是人對領域設定,也可以認為是經常說的領域模型。其實有N總解法,而解法本身的選擇和價值判斷有關。

領域模型連接價值判斷和甕中之腦的純粹智商(大模型)。

這種對領域的分解有什么意義呢?

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

既然就說一句話不行,比如給我生成一個XX軟件產品,甕中之腦的智商又夠了,那就需要讓它清楚現實,好發揮它的智力。

需要輸入什么給它其實的變化的,這種變化需要一種管理體系,這個管理體系需要依賴領域模型。(過程、角色、活動、數據等)

這部分因為作為甕中之腦的大模型只認識提示詞,所以不管你干了多少事最終都要變成它能更好理解的提示詞(當然你可以很長)。

另一部分目的則是重用這些約定俗成的詞,比如程序員,比如產品經理。每個詞后面其實折疊了很多細節?,F在的模型是基于人類累積到現在為止的知識訓練出來的,所以這些詞背后約定俗成的意義也被包含在模型里面了,不需要重頭解釋每個詞了。這也能提高和大模型的交互效率。

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

這一步很詭異的是確實主要是技術的活,但本質卻不是。由于這不是一個技術文章,我們就簡略一些做描述,還是只關注它和過去的差異。

二、打造不同Agent

一個方法是不做抽象就按角色做出一個個Agent,比如總經理的Agent、程序員的Agent。Agent里面要有自己對應的基礎提示詞,還要有按照執行時間點填充的實時信息,比如:

  • 你是誰,要干什么;
  • 要有當前的階段描述,比如現在需求分析階段,有那些事要做。
  • 要有一定的記憶,比如我上一輪到底說什么了,我產出的代碼是什么等。

當然也可以抽象一點,按職能來分比如代表任務的Agent,代表對話的Agent等。

之后任務的Agent要調度各種角色。

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

但基本定位就是聲明自己的角色、以及當前活動的上下文、當前活動的目標。

這里舉個簡單例子:

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

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).”

]

}

對這個步驟做簡單總結就是下面這兩點:最終目標都是要形成一段話(prompt)在不同的步驟上用(現在的大模型只認這個)。

這段話是變的。

根據不同的執行狀態每次需要做出調整。

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

這就是為什么之前總說這次大模型的核心進展是概念理解和判斷能力,沒有這個這種智能體跑不起來。

這步看著確實是技術的活,但底子其實不是。

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

程序員解決效率問題,但理解領域的人才能判斷上限。(智能效能=大模型的智商高度x現實理解的縱深)

也就是說過去說的圖靈測試2.0的判斷人不是程序員,甚至都不是人工智能科學家,而是理解領域的人要自己操練大模型做判斷。要在這個背景下去理解角色中心式計算和圖靈測試2.0。

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

三、啟動整個公司

上面這些都做完了就需要把整個軟件公司啟動起來。等著外面的輸入。

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

比如可以和它說,幫我干出來一個TODO的小應用。

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

啟動程序就需要按照指定過程,先需求再開發然后測試發布,依次給每個角色分配任務,直到最終認為產品合格了,再把產品發布出來。

這時候最終的公司變成了這樣:

一個人:決定到底要干什么軟件產品。用什么樣的過程,用幾個角色,每個角色到底負責什么。

不同角色的智能體:每個的產出可以是一個階段性成果,也可以是代碼,當然復雜了也可以是美工的圖,圖標等。擴展起來還可以加上蜘蛛爬取某些實時的網上信息,讓配圖等更符合最新的風格。

公司就是應用,應用的邊界也就成了公司的邊界。

從公司角度看,和過去不一樣的點是什么呢?

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

從應用的角度看和過去比,不一樣的點是什么呢?

這個應用在一個大邊界下你可以給它設定任何目的。

什么軟件都能開發。過去要依賴平臺化才能張開自己的任務種類,現在靠AI干了。

四、智能原生公司

基于這個例子,我們可以進一步總結一些關于AI智能應用的關鍵特征:

第一,和領域相關的部分是人的活。

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

第二,這種應用是按角色來的(角色中心式計算)。比如程序員的角色可能需要調用一大堆工具Git、Python等才能完成自己的職責。但這些最終要變成提示詞(prompt)才能驅動自己的活動。每個角色到底能不能成立,要看圖靈測試2.0能不能過。

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

所以智能原生化估計得從這類領域先開始。

第三,需要很多的配套措施。Agent要記住自己說了什么,要知道當前在干什么等。這需要一套完備且繁瑣的機制。寫程序好像就記錄代碼就完了。真正的公司需要匯總業務、財務等各種數據,并且保證數據精度。需要的成本很高,挑戰很大。

第四,什么時候可以叫完成工作是個問題。產出內容到底合適不合適,幻覺了怎么辦等,都是關鍵制約。放回到具體場景下智能和想象中的智能好像說的是一個東西,其實是兩碼事。所以之前我們說純數字和幻覺本身不對應過大成本的領域會優先。

過去琢磨事對此進行了一些總結,比如把公司的智能原生式思維提煉為:智能優先,萬物皆、實時反饋、中心決策。這在上面這種應用的基礎上可能更好理解。

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

五、是普通人的機會么?

上面這過程看著需要寫代碼驅動,但本質不是一個技術的事。不寫代碼頂多就笨一點,一步一步寫一堆提示詞。代碼是讓整個事串起來更自動一些,影響效率,不影響價值。

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

也就是說把甕中之腦的能力用起來正需要理解領域的普通人(不是AI科學家)。

所以理論上是普通人的機會,但現在關鍵問題不在這里,而是你把智能放到自己想的那個場景下,它不一定創造價值。

這是判斷的關鍵。

同時這也暗示了一個很多人都關心的問題的答案:

AI會取代對應的崗位么?

這是個必然發生的事。

回到基礎公式:智能效能= 模型的智商x現實理解縱深,就會發現這事取決于模型自身的發展,也取決于給它適配的對現實進行理解的系統(Agent)。在上面那個但上面軟件公司里也還是要人的,只不過這個角色所需要的能力發生了巨大變化。

六、小結

最后要強調的是上面這個過程,做著玩是可以的,但不能創業。做領域拆分然后判斷智能高度,這點會看的比較清楚。也就是說現在的技術成熟度不匹配合適的商業價值。但這不影響這趨勢本身,模型的基本為此提供了源源不斷的動力。

理解這種基礎原型其實提供了一個發現的視角和眼睛。地球上有石油億萬年了,只有嵌入到工業革命的上下文下它才是財富,所以能看到新現實的新視野還是關鍵的。

專欄作家

琢磨事,微信公眾號:琢磨事,人人都是產品經理專欄作家。聲智科技副總裁。著有《終極復制:人工智能將如何推動社會巨變》、《完美軟件開發:方法與邏輯》、《互聯網+時代的7個引爆點》等書。

本文原創發布于人人都是產品經理。未經許可,禁止轉載。

題圖來自 Unsplash,基于 CC0 協議

該文觀點僅代表作者本人,人人都是產品經理平臺僅提供信息存儲空間服務。

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發揮!