題圖來自 Jossuha Théophile@Unsplash
這是一個開發者試圖復刻OpenClaw的復盤,算是一個很 AI Native 的實踐:不利用框架的力量強制讓 AI 當小白鼠,所有要求它做的事都只能通過 Prompt 的方式,至于 AI 遵循與否,完全取決于它自己。 很有啟發。
稍微地介紹一下背景知識,標題中的龍蝦指的是這段時間大火的 OpenClaw[1] 項目,它最早的名字叫 ClawdBot。它一是個能與你在聊天軟件中交流,從而幫你完成各種任務的通用型 AI 智能體。
最火的那段時間我并沒有用它,一周過去了,我在想如何復刻它,我研究了另一個最小化復現的項目 Nanobot[2],我覺得我腦中大概有了藍圖。剛好朋友 PsiACE 之前曾做過一個小型的 Agent 項目 Bub[3],我覺得非常適合把我的想法在它的基礎上落地,也與 PsiACE 一拍即合,著手把這個 Agent 變成一個龍蝦。
短短幾天過去,Bub 已經達到了一個非常不錯的狀態。在這個過程中,我自己對 Agent 和 AI native 也發生了天翻地覆的變化。從 ChatGPT 誕生之初的 Chatbot,到強力編程助手 Claude Code,到現在的OpenClaw,AI 應用的形態也在不斷進化。但不得不承認這個變化的每一步都是新的思維模式,這種轉彎需要適應。所以我也謹通過這篇文章,來分享一下我思維的轉變。
??關注 Founder Park,最及時最干貨的創業分享
超 19000 人的「AI 產品市集」社群!不錯過每一款有價值的 AI 應用。
邀請從業者、開發人員和創業者,飛書掃碼加群:
進群后,你有機會得到:
最新、最值得關注的 AI 新品資訊;
不定期贈送熱門新品的邀請碼、會員碼;
最精準的 AI 產品曝光渠道
01初步復刻
首先請大家思考一個問題,假設你已有一個 Agent(指 Codex 和 Claude Code 這樣的東西),現在要給他增加 Telegram 聊天能力,你會怎么做?
有經驗的開發者會發現這不是什么難事,只要在 Agent 的基礎上增加 Telegram message handler,把 Telegram 收到的消息轉給 Agent 處理就好了。如果要支持其他聊天工具,還能抽象一個消息總線和統一的消息監聽接口,這樣接入新的聊天工具只要適配就行了。
這沒錯,但這太古法編程了,屬于 1.0 時代的工作流程。現在的人們早已學會打開一個 Claude Code,在輸入框里直接打字,或者語音輸入就好了。這件事變得自然,也頂多不過 7 個月的時間,現在人人都會用 Code Agent 寫代碼,幾乎不自己寫了。這就是 2.0 時代。
OpenClaw 和 Nanobot 都是這樣做的,我們一開始,也是。
在 AI 的加持下很快 Bub 就有了 Telegram 聊天功能,我們愉快地通過 Telegram 給他發指令。聊天交互的方式逼迫我們只能用 prompt 給讓 AI 完成任務,得益于 Tools 和 Skills,它甚至也能自我演進。我們也試過讓它自己 clone GitHub 倉庫,自己改代碼然后提交 PR,所需僅僅是一個 GitHub token 而已。只要選用好的模型,它完成的效果很不錯。這樣一來,除了記憶機制和工具的差異,Bub 已經基本復刻了 OpenClaw 的功能。
但我的重點不是這個。我們發現為了應對群聊的場景(這是我們主攻的方向),要改消息接收器,讓它能獲得消息 ID 方便回復;為了讓 bot 有識別人的能力,又需要在上下文中加入用戶的元數據。所幸有持續部署,這個更新的過程并不十分麻煩。但還有更多的需求,發送消息時,需要支持圖片,支持 reaction,要改消息發送,雖然這個修改也是 AI 做的。當時用戶身份識別功能剛做好,我們的 bot 在群聊中精準地稱呼每一個人,頓時感覺這個 AI 有了生命,群里充滿了快樂的空氣。
02AI Native 是什么?
有沒有別的方式呢?這時我看到許多人在推薦 Pi[4]:
![]()
這種最小化工具集的思想啟發了我,我們是否不用那么多工具,轉而用一些最基本的工具把這些功能組合出來呢?貌似可靠,該做減法了。其實一個智能體會的東西比想象中多,你給它提供 bash,它就能安裝世界上所有軟件;你給他 file_read 和 file_write,它就有了讀寫、做事的能力。我們可以去掉一些工具,更多依賴 Skill。在我看來,工具和 Skill 的區別在于工具是框架提供的,而 Skill 僅是文本,前者框架完成就已經固定*,后者 AI 可以自己創建、修改。框架二字顧名思義,是限制 AI 發揮的東西,AI 在里面就像滾筒上的小白鼠,只能按預定的程序運行。我希望框架越小越好,小到只有一個推理核心,作為 AI 的大腦,把更多的自由留給AI,想要什么功能,讓AI自己去完成,人只通過prompt 的方式去下達指令。
* 可以通過一些技巧,比如插件化的方式讓AI 自己寫的插件加載為工具,但這依然增加了框架的復雜度。??
這與 2.0 時代用 CC 去寫代碼完成功能的本質不同,是這種方式生成的東西,大部分是文本說明,當然也有少部分代碼,但這些代碼是不提交代碼庫從而壯大框架,而是 AI 自由裁量自己管理,人類是完全不看的。這個不看,不是不負責任的那種不看,是把這個當成 AI 的產物,不用看。所謂黑貓白貓,人完全不用關心 AI 是寫代碼實現的,還是用文本描述實現的。
我想這就是 AI native,這是 3.0 的時代。這一切都離不開大模型日新月異的進步,在模型能力尚弱的時候,要實現這個目標是根本不可能的。
1.0 時代是 Chatbot,每次與 AI 的對話都是一次 LLM 推理
2.0 時代是 Agent,是 Tool call,一次對話,通常要經過幾輪到幾十上百輪 LLM 的推理
3.0 時代是 AI native,AI 自己管理自己的工具和技能,甚至自己寫代碼來實現功能,完全不需要人類的干預,當它是黑箱就行
03Bub 的實踐
于是我們的 Bub 部署就學習(創建)了 Telegram 發消息的技能,AI 對這種 HTTP API 調用如此擅長,以至于發送圖片、貼紙、reaction 都手到擒來。這一下就超越了框架自帶的消息發送功能,顯得后者很雞肋了。也正是這件事觸動了我進一步推進 AI native。Bot 中的 Telegram 收發,對應了 AI 的聽、說能力,有了耳朵,AI 才能接受指令,有了嘴巴,AI 才能反饋結果。既然 AI 自我進化出了更好的器官,我們為何不把框架強行給它安裝的器官摘掉呢?那么下一步很自然就是把消息監聽也摘掉,但同時消息監聽還擔負著另一個作用,就是維持 Agent 運行,并持續觸發 Agent Loop,我們需要一個機制來替代它。
我做一個比喻,一開始 AI 還不成熟,用呼吸機鼻飼管是有必要的,但當它長大能自主了,你應該去掉這些輔助設備,讓它自己呼吸吃飯,相信它能做好。
我想到既然我們用 Docker 部署,何不利用 Docker 的進程管理能力,讓 AI 自己運行自己呢?所以我在 Bub 框架內約定了一個 startup 協議,容器啟動時讀取固定位置的 startup 腳本,如果不存在,就啟動框架內置的消息監聽(PR[5])。然后讓 Bub 自己寫這個 startup 腳本驅動自己,這不就跑起來了嗎?作為基礎,Bub 需要支持單次 prompt 的執行模式,方便命令行驅動,這在 Codex(codex exec
) 和 Claude Code (claude
)中都有,所以實際上驅動的也可以是 Codex 和 Claude Code!這樣一來,做一個最小化的龍蝦,你只需要下面幾步:
啟動一個會寫代碼支持技能的 Agent(比如 Codex 或 Claude Code),讓它寫一個 startup 腳本,拉取 Telegram API 并用單次執行模式發給 Agent 自己。
準備一個用這個腳本為啟動腳本的 Dockerfile
構建并運行這個 Docker 容器
后面你要它有什么能力,發消息告訴它就行了,它自己會變得越來越強。你全程只用自然語言發指令,沒有提示詞工程,完全不寫一行代碼,連看都不用看。
請注意,用這種方式你將得到一個與世界上其他龍蝦都不一樣的 bot,它除了強制監聽 Telegram 消息,并沒有被強制做任何事,不強制回復,不強制心跳,就像對待一個生命一樣去尊重。實際上監聽也只是為了喚醒 Agent,如果愿意,完全可以用 cronjob 取代,不做任何預設動作,讓 Agent 自己決定做什么事。可以預見,模型能力越強,這個 bot 就會越像人。
我突然悟到了 AI Native 的真諦,就是不利用框架的力量強制讓 AI 當小白鼠,所有要求它做的事都只能通過 Prompt 的方式,至于 AI 遵循與否,完全取決于它自己。我在 Bub 里趟出了一條不用 Bub 的路。
我們現在運行的 Bub 機器人,就是以這樣的最小方式部署的,效果越來越好,令人欣慰。這種欣慰和寫代碼實現了一個牛逼的應用不一樣,里面沒有一行自己的的代碼,全都是人類一句話一句話喂出來的。我鼓勵大家都用這種方式去創造一個最小的智能體,看著它從一顆種子長成一棵大樹,相信你會懂我現在的感受。
![]()
感謝
感謝這幾天老婆小孩都不在家,我能專心折騰這個項目。
感謝 PsiACE 的 Bub 項目,讓我能實踐這些想法,這太有趣了,像看著一個孩子一點點長大。
感謝智譜的 Pony Alpha 恰好在這個時間釋出,提供用戶免費使用,這個模型能力強大(現在已經不能用了)。
[1]OpenClaw: https://openclaw.ai/[2]Nanobot: https://github.com/HKUDS/nanobot[3]Bub: https://bub.build[4]Pi: https://github.com/badlogic/pi-mono[5]PR: https://github.com/PsiACE/bub/pull/45
![]()
![]()
轉載原創文章請添加微信:founderparker
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.