一、
我曾經想過,未來遊戲裏面的 NPC(非玩家角色)一定是 AI,你可以跟它互動,甚至命令它幫你做任務。
萬萬沒想到,第一個實現這個想法的居然是騰訊雲,但不是讓 NPC 玩遊戲,而是讓 NPC 幫你寫代碼、做開發。
它推出了 AI 編碼工具 CodyBuddy 的 一個全新升級 [1] ,名字就叫 CodeBuddy NPC。
你登錄它的平臺,就可以指揮一羣 NPC(即各種 AI 模型)幫你做任務。
上圖就是你同時 喚起四個 NPC [2] ,給它們派任務,每個 NPC 做一遍,一共做四遍。
可以看到,每個 NPC 的名字後面,會附上本次任務消耗的 Token 和對應的費用,好像在提醒你別超標。
雖然官方不說自己借鑑了遊戲的思路,只說這是 開發者的雲端“AI 隊友” 。但是我覺得,它本質就是一個雲端的“開放世界”,你登錄後進行“編碼遊戲”,允許任意調用 NPC。
而且,它是“雲端遊戲”,所有操作都在雲端完成,跟本地機器和環境都無關。你完全可以跟 NPC 交待清楚以後,機器一關就離開,後面隨便找臺電腦,查看任務進展。
經過試用,我覺得這是目前最簡單的 AI 開發方案。 不需要任何配置或安裝,只需一個瀏覽器 ,雲端功能超完整。而且, 只要選擇免費模型,還不花錢 。
二、
使用 CodeBuddy NPC 目前只能通過騰訊雲的 CNB 平臺 [3] 。
CNB 平臺是“雲原生構建”(cloud native build)的縮寫,但是你不要管它的名字,它其實就是騰訊雲的 GitHub 替代品,用作代碼託管平臺。
上面就是它的 倉庫主頁 [4] ,是不是看上去跟 GitHub 一模一樣。
據說騰訊內部就用這個平臺管理代碼,現在開放了,做了一個公開版本給外部使用。
它以前可能沒有 GitHub 那樣強大,但是現在多了 CodeBuddy NPC,我覺得至少在 AI 方面比 GitHub 好用。大家看了後面的例子,就會知道我沒誇張。
CodeBuddy NPC 相當於允許你用自然語言,操作底層代碼平臺的所有功能 :提交代碼、管理 Issue、合併 PR、持續構建等等。它會完全改變你使用代碼平臺的方式。
三、
CodyBuddy NPC 使用自然語言喚起 NPC,需要有一個輸入提示詞的地方,當前倉庫的 issue 就是天然的操作入口。
下面是最簡單的 Hello World 示例。你先在網頁創建一個空的倉庫,然後進入該倉庫,打開一個新的 issue,寫下你的意圖,比如“新建一個介紹北京旅遊的網站”。
然後,你指派一個 NPC 去完成這個任務。
系統內置多種 NPC(AI 模型),只要輸入符號
@
,就會有一個彈出窗口,列出可供選擇的 NPC。
上圖中,可以看到官方的編程助手
CodyBuddy
,目前可以免費使用。
另外,官方還提供一個
npc/CodeBuddy
的羣組,裏面有各種國產模型可供選擇。
其中,騰訊的 Hy3 是免費使用,其他都附上了費率。我們就選擇免費的 Hy3。
選好 NPC 以後,就可以提交 issue 了。NPC 會自動運行,生成結果後,就在當前 issue 創建一個回覆,加以說明。
上圖劃線處是本次 NPC 消耗的 Token 和費用。點擊進去,就會看到 NPC 的詳細日誌。
這時, 生成的代碼文件 [5] 已經自動提交到倉庫了。
整個過程只需要新建一個 issue,接下來的事情都會自動幫你搞好。如果有需要,還能生成發佈腳本,幫你發佈,是不是簡單到不能再簡單了?更別說這一切還免費。
四、
CNB 平臺集成了多種能力,跟 CodeBuddy 配套,能夠滿足各種需求,幾乎不需要用到其他工具。
倉庫主頁的右上角有一個“雲原生開發”按鈕,提供 IDE 環境,供你手動閱讀或修改代碼,如果你需要的話。
點擊這個按鈕,會顯示一個彈窗(下圖)。
彈窗的內容分成三排,第一排是 Web IDE(手動操作),第二排是雲端 Agent(AI 操作),第三排是打開獨立的外部 IDE 應用(CodeBuddy IDE / VSCode / Cursor)。
選擇第一個選項“Web IDE”,就會進入一個類似 VSCode 的線上編輯器。
它的右上角有預覽按鈕(上面截圖沒有包括),點擊後,就會打開一個新的瀏覽器窗口,可以預覽剛纔生成的結果。
五、
CodeBuddy NPC 可以做的事情非常多,基本上,你在 GitHub 的常用操作,都可以讓 NPC 去做。
(1)權限
發佈 issue 的時候,菜單欄有一個“替我上班”開關。
默認是打開的,表示 NPC 會使用你的權限,替你上班。也就是說,如果你有代碼提交權限,生成結果將會直接提交到倉庫。
關閉這個開關,生成結果將自動生成 PR(下圖),需要手動批准合併。
上圖就是 AI 生成的 issue 回覆,因爲沒有權限,它提示已經提交爲 PR,並給出了 PR 和預覽的鏈接。
(2)代碼衝突
提交 PR 後,有可能出現代碼衝突。你可以直接讓 NPC 去解決(下圖)。
(3)開發功能
你也可以在 issue 提出新的功能需求,讓 NPC 去實現(下圖)。
(4)分工協作
多個 NPC 還可以分工協作,大家參考 這個倉庫 [6] 。
它定義了8個 NPC,協作完成了一款遊戲。
關鍵的角色是“項目經理”,它自動拆分 issue 裏面的 PRD,把任務細分給其他角色,然後通過系統事件,挨個喚起對應的 NPC 幹活,直至所有任務完成。
上圖是系統的看板試圖,可以實時查看所有細分任務的進展。
六、
我已經用了兩天,覺得 CodyBuddy NPC 很有創意,將 AI 當作 NPC 使用,還蠻貼切。確實很像開發者的一個虛擬隊友,從輔助工具的角色到獨立承擔研發任務。
更重要的是, 它與代碼託管平臺 CNB 深度結合,將開發自動化提高到一個全新的層次 。GitHub 的主要功能,幾乎都可以用自然語言喚起 NPC 完成,比如開發、Git 操作、issue、PR、CI\CD 等等。
CodyBuddy NPC 自動把當前倉庫當作上下文,提交在模型,在獨立的沙箱環境中運行,最大程度方便開發者。根據官方文檔,系統內置了 Token 優化工具,會盡量壓縮倉庫的上下文,控制 Token 消耗。
大家可以去玩玩這個最新形態的“雲端遊戲”,嚐嚐使喚 NPC 的感覺。
(完)
References
[1]
一個全新升級:
https://www.oschina.net/news/477664
[2]
喚起四個 NPC:
https://cnb.cool/npc/CodeBuddy/-/issues/57
[3]
CNB 平臺:
https://cnb.cool/
[4]
倉庫主頁:
https://cnb.cool/yifeng.ruan/codebuddy-test-webpage
[5]
生成的代碼文件:
https://cnb.cool/yifeng.ruan/codebuddy-test-webpage
[6]
這個倉庫:
https://cnb.cool/examples/twine-team-demo