国产av一二三区|日本不卡动作网站|黄色天天久久影片|99草成人免费在线视频|AV三级片成人电影在线|成年人aV不卡免费播放|日韩无码成人一级片视频|人人看人人玩开心色AV|人妻系列在线观看|亚洲av无码一区二区三区在线播放

網(wǎng)易首頁(yè) > 網(wǎng)易號(hào) > 正文 申請(qǐng)入駐

寫了 17 年開源代碼,我為什么認(rèn)為 Coding Agents 堆功能是在瞎折騰?

0
分享至


編譯 | 宇琪

策劃 | Tina

在 AI 編程工具進(jìn)入大亂斗時(shí)代的今天,我們似乎已經(jīng)習(xí)慣了各種功能的堆疊。但在 libGDX 創(chuàng)始人、17 年開源老兵 Mario Zechner 眼中,這一切正變得越來(lái)越不可控。

“當(dāng)你發(fā)現(xiàn) AI 在背地里偷偷修改你的上下文,而你卻對(duì)此一無(wú)所知時(shí),這種掌控感的喪失是極其危險(xiǎn)的?!?/p>

近日,在 Tessel 舉辦的開發(fā)者大會(huì)上,Mario 不僅公開吐槽了 Claude Code、OpenCode,更帶出了他的極簡(jiǎn)主義“反叛之作”——pi。這是一個(gè)只有 read、write、edit、bash 四種工具,擁有主流 agent 里最短的 system prompt,卻有著極致的可擴(kuò)展性、能讓開發(fā)者重拾掌控權(quán)的終端編程 agent。

本文基于該演講視頻整理,經(jīng) InfoQ 編輯。

核心觀點(diǎn)如下:

  • Claude Code 現(xiàn)在就是一架宇宙飛船,它功能多到你可能只用過(guò)其中的 5%,了解的也就 10%,剩下 90% 全是 AI 和 agents 領(lǐng)域的“暗物質(zhì)”,沒(méi)人知道它背地里到底在干嘛。

  • 現(xiàn)有的編程框架里,很多功能可能并不是獲得好結(jié)果的必需品。不需要文件工具,不需要子 agent,不需要聯(lián)網(wǎng)搜素,啥都不需要。

  • 我們現(xiàn)在正處于“一邊瞎折騰一邊看結(jié)果”的階段,沒(méi)人知道完美的編程 agent 到底該長(zhǎng)啥樣。我們需要更好的“折騰”方式,編程 agent 必須是可自修改、可塑性極強(qiáng)的,這樣我們才能快速實(shí)驗(yàn)新想法,看看能不能折騰出某種新的行業(yè)標(biāo)準(zhǔn)或 workflow。

  • 真正需要 linting 和類型檢查的時(shí)機(jī)只有一個(gè):那就是 agent 覺(jué)得自己徹底完活兒的時(shí)候。

1ChatGPT→Copilot→Aider→Claude Code

2025 年 4 月左右,Peter Steinberger(OpenClaw 創(chuàng)始人)跑來(lái)跟我還有 Armin Ronacher(Sentry 聯(lián)合創(chuàng)始人、Flask Web 框架創(chuàng)建者)說(shuō):“現(xiàn)在的 Coding Agents 真的進(jìn)化到能干活的程度了?!?我當(dāng)時(shí)的第一反應(yīng)是:“噢,快給我閉嘴吧!”我是真不信這玩意兒。但一個(gè)月后,我們幾個(gè)就在公寓里閉關(guān)了 24 小時(shí),整夜沉浸在這些 clankers、wipe coat 和 wipe slop 的世界里。

我們不停地造東西,造了一大堆,但絕大多數(shù)我們自己從來(lái)沒(méi)用過(guò)。這就是 2025 到 2026 年的新常態(tài):我們寫了很多代碼,造了很多輪子,但真正用上的沒(méi)幾個(gè)。折騰到最后我開始想,我討厭現(xiàn)有的所有 Coding Agents 或開發(fā)框架,自己寫一個(gè)到底能有多難?當(dāng)時(shí) Peter 說(shuō):“我只想做一個(gè)屬于自己的小玩意兒?!焙髞?lái)的故事大家可能都知道了。

今天,我要講的是我那個(gè)沒(méi)那么驚天動(dòng)地的故事,但我希望能在其中分享一些我在過(guò)去幾個(gè)月里攢下的行業(yè)洞察。

先聊聊 Coding Agents 的演進(jìn)史。

2025 年之前的情況基本就是:從 ChatGPT 搬運(yùn)代碼,但代碼大多是碎的,通常只能寫一些你不想親自動(dòng)手的簡(jiǎn)單函數(shù)。然后有了集成在 Visual Studio Code 里的 GitHub Copilot,只需要一路 tap tap tap,雖然有時(shí)候靈,大多數(shù)時(shí)候并不。甚至有時(shí)候,它還會(huì)非?!百N心”地給你默寫一段 GPL 協(xié)議的代碼,比如 John Carmack 的那個(gè)平方根倒數(shù)速算法之類的。后來(lái)又有了 Aider,當(dāng)時(shí)還有 AutoGPT。

最后,Claude Code 登場(chǎng)了。我記得他們?cè)?2024 年 11 月發(fā)布了 beta 版,但真正火起來(lái)是在 2025 年 2 月或 3 月的樣子。當(dāng)時(shí)我覺(jué)得這玩意兒簡(jiǎn)直太棒了,Claude 團(tuán)隊(duì)非常出色,他們?cè)谏缃幻襟w上很活躍,人也都很天才。

說(shuō)實(shí)話,他們基本上開創(chuàng)了整個(gè)品類。雖然之前有 Aider 和 AutoGPT 鋪路,但沒(méi)有一個(gè)能達(dá)到這種高度。這就是所謂的 agentic search(智能體搜索)范式:它不像 Cursor 那樣先進(jìn)入你的 codebase 做索引、搞各種復(fù)雜的構(gòu)建(雖然那樣搞也未必好使)。Claude 團(tuán)隊(duì)直接通過(guò)強(qiáng)化訓(xùn)練,讓模型學(xué)會(huì)使用文件工具和 bash 工具,通過(guò)這種方式實(shí)時(shí)探索你的 codebase,尋找理解代碼所需的信息并直接修改。這效果簡(jiǎn)直驚人,我們直接不睡覺(jué)了,因?yàn)楫a(chǎn)出的代碼量比以前純手寫翻了不知道多少倍。

那時(shí)候它簡(jiǎn)單、可預(yù)測(cè),完美契合我的 workflow。但后來(lái),他們掉進(jìn)了一個(gè)我們很多人都會(huì)掉進(jìn)去的陷阱:既然這些 clankers 能寫這么多代碼,為什么不讓它把所有能想到的 feature 都寫了呢?這主意聽(tīng)起來(lái)不錯(cuò)吧?咱們加這個(gè)功能,加那個(gè)功能,加加加……最后搞出了一個(gè)類似 Homer Simpson 設(shè)計(jì)的那種怪物。Claude Code 現(xiàn)在就是一架宇宙飛船,它功能多到你可能只用過(guò)其中的 5%,了解的也就 10%,剩下 90% 全是 AI 和 agents 領(lǐng)域的“暗物質(zhì)”,沒(méi)人知道它背地里到底在干嘛。

2Claude Code 不是一個(gè)穩(wěn)定的好工具

我個(gè)人覺(jué)得這并沒(méi)什么用,因?yàn)槲沂冀K認(rèn)為開發(fā)者需要知道 agent 到底在做什么。我們現(xiàn)在在 Tessel 的活動(dòng)現(xiàn)場(chǎng),他們也喜歡搞 context management/engineering。但我最終發(fā)現(xiàn),Claude Code 在可觀測(cè)性和上下文管理方面并不是一個(gè)好工具。而且,誰(shuí)受得了 Claude Code 的那種沒(méi)完沒(méi)了的、莫名其妙的閃爍?


Anthropic 的開發(fā)者關(guān)系專家 Thariq Shihipar 有時(shí)候會(huì)在 Twitter 上說(shuō)些讓人摸不著頭腦的話,比如:“我們的 terminal user interface 現(xiàn)在是一個(gè)游戲引擎了。”

我是做游戲開發(fā)出身的,那是我的老本行。當(dāng)我看到這種話時(shí),心真的會(huì)滴血。那只是個(gè)終端界面,你之所以覺(jué)得它是游戲引擎,是因?yàn)槟阍诮K端界面里用了 React,結(jié)果導(dǎo)致重新渲染整個(gè) UI 樹要花掉 12 毫秒。別這么干好嗎?它真不是游戲引擎。


后來(lái)寫 Ghostty 的 Mitchell 也忍不住了,他說(shuō):“這聽(tīng)起來(lái)有點(diǎn)冒犯。別把鍋甩給 Ghostty 或者其他終端,純粹是因?yàn)槟愕拇a太爛了?!苯K端渲染一幀只需要不到 1 毫秒,每秒能跑幾百幀,所以別拿這個(gè)當(dāng)借口。


雖然后來(lái)他們修好了閃爍,但別的問(wèn)題接踵而至。你會(huì)感覺(jué)到他們徹底倒向了所謂的 vibe coding,這種感覺(jué)在你每天使用 Claude Code 時(shí)尤為明顯。我并不是要貶低他們的努力和成果,Claude Code 依然是這個(gè)品類的領(lǐng)頭羊,他們開創(chuàng)了這一切且做得非常棒。我只是個(gè)喜歡簡(jiǎn)單、可預(yù)測(cè)工具的老頭子,而它已經(jīng)不再契合我的 workflow 和需求了。

而且,他們?cè)诤笈_(tái)偷偷對(duì)你的 context 做了很多手腳。2025 年夏天,我寫了一堆工具去攔截 Claude Code 發(fā)往后端的請(qǐng)求,想看看他們?cè)诒车乩锿业?context 里塞了哪些額外的文字。結(jié)果發(fā)現(xiàn)這些操作非常多余,而且每天都在變??赡芙裉彀l(fā)個(gè)版本,明天又發(fā)個(gè)版本,注入內(nèi)容的時(shí)機(jī)和方式變來(lái)變?nèi)ィ@會(huì)直接搞亂你現(xiàn)有的 workflow。它不是一個(gè)穩(wěn)定的工具。

我理解他們的立場(chǎng),他們需要實(shí)驗(yàn),而且用戶基數(shù)巨大,在龐大用戶群的基礎(chǔ)上做實(shí)驗(yàn)確實(shí)很難。但他們并不在意用戶的感受,所以我們都得跟著受罪:你正用著這個(gè)新工具,努力構(gòu)建可預(yù)測(cè)的 workflow,然后工具廠商在引擎蓋下改了個(gè)不起眼的小細(xì)節(jié),就導(dǎo)致 LLM 在處理你現(xiàn)有任務(wù)時(shí)直接發(fā)瘋。這根本沒(méi)法持續(xù),我需要掌控感,我不能指望他們給我提供一個(gè)所謂的“穩(wěn)定環(huán)境”。

作為 UI 設(shè)計(jì)的代價(jià),他們不得不降低可觀測(cè)性。我個(gè)人不喜歡這樣,但這只是個(gè)人偏好,我知道大多數(shù)人對(duì)于 Claude Code 展示的信息量已經(jīng)很滿意了。另外,它顯然沒(méi)有模型選擇權(quán),因?yàn)樗?Anthropic 的原生工具。這不算壞處,但它幾乎沒(méi)有任何擴(kuò)展性。雖然他們有一套 hook 系統(tǒng),但如果你對(duì)比一下 pi 能實(shí)現(xiàn)的功能,你會(huì)發(fā)現(xiàn)他們的集成度并不深。而且它基本是基于在 hook 事件觸發(fā)時(shí)運(yùn)行一個(gè)進(jìn)程,如果你需要反復(fù)啟動(dòng)那個(gè)進(jìn)程,開銷真的非常昂貴。

后來(lái),我徹底對(duì) Claude Code 下頭了。倒不是說(shuō)它做得爛,只是它不再適合我了。在那段時(shí)間里,它變得適合更多的大眾用戶,這說(shuō)明他們路子走對(duì)了,只是不適合我這種老古董。

3OpenCode 的底層設(shè)計(jì)讓我失去信心

于是我開始到處找替代方案。首先是 Codex CLI,剛開始我挺不喜歡它的,無(wú)論是界面還是模型,不過(guò)現(xiàn)在它的模型表現(xiàn)確實(shí)挺驚艷的。接著是 AMP,這個(gè)團(tuán)隊(duì)的核心成員以前在 Sourcegraph 工作,后來(lái)出來(lái)單干了,都是極其頂尖的工程師。他們居然做出了一款非常商業(yè)化的 coding harness,而且是靠“砍功能”而不是“堆功能”來(lái)贏得市場(chǎng),他們的很多設(shè)計(jì)邏輯跟我簡(jiǎn)直不謀而合。如果你想要個(gè)商業(yè)化的編程框架,我絕對(duì)推薦 AMP。Factory 也是類似的思路,做得很扎實(shí),只是沒(méi)像 AMP 那么激進(jìn)和富有實(shí)驗(yàn)精神。

然后就是 OpenCode 了,很多人都在用的開源框架。我這人有開源情懷,在開源圈摸爬滾打了 17 年,大大小小的項(xiàng)目都管過(guò),開源對(duì)我來(lái)說(shuō)意義非凡。所以我當(dāng)時(shí)想,既然 OpenCode 離我這么近,那就試試吧。而且說(shuō)實(shí)話,除了 AMP,OpenCode 的團(tuán)隊(duì)是這個(gè)圈子里最接地氣、最務(wù)實(shí)的,他們不會(huì)整天拿那些你八輩子用不上的功能來(lái)忽悠你,而是努力維持一個(gè)非常穩(wěn)定的核心體驗(yàn)。他們對(duì)“編程 agent 對(duì)我們職業(yè)意味著什么”的思考,我也非常認(rèn)同。

但 OpenCode 的問(wèn)題在于:它在上下文管理上做得一塌糊涂。比如,它每一輪對(duì)話都會(huì)調(diào)用一個(gè)叫 SessionCompaction.prune 的函數(shù),把最后 4 萬(wàn)個(gè) token 之前的記錄全給刪了。大家應(yīng)該都知道 prompt caching(提示詞緩存)吧?它這么干意味著把你的 cache 全毀了。

OpenCode 和 Anthropic 之間有一段挺有意思的過(guò)節(jié)。在我看來(lái),Anthropic 后來(lái)的態(tài)度邏輯很通順:“你們不能這么搞?!彪m然這事兒沒(méi)公開鬧大,但道理很簡(jiǎn)單:如果你去健身房卻不守規(guī)矩,濫用人家的基礎(chǔ)設(shè)施,你肯定會(huì)被拉黑。雖然我沒(méi)證據(jù),但我猜這就是為什么 Anthropic 和 OpenCode 之間關(guān)系緊張的原因。我完全站在 Anthropic 這邊,別去糟蹋人家的基礎(chǔ)設(shè)施。

還有些別的坑,比如 OpenCode 自帶了 LSP(語(yǔ)言服務(wù)器協(xié)議)支持。假設(shè)你給 agent 下了個(gè)任務(wù),讓它改一堆文件。實(shí)際操作中它會(huì)怎么干?它會(huì)一個(gè)接一個(gè)地改。你覺(jué)得它改完第一輪,代碼能編譯通過(guò)的概率有多大?當(dāng)你一行一行改代碼時(shí),得花多久才能讓它重新回到編譯通過(guò)的狀態(tài)?答案是根本回不去??赡芨耐甑谝惶?、第二處,代碼還是崩的。

這時(shí)候如果你跑去問(wèn) LSP 服務(wù):“嘿,我剛改了這一行,代碼崩了嗎?”LSP 肯定會(huì)說(shuō):“是的,徹底崩了。”然后這個(gè)功能就會(huì)把報(bào)錯(cuò)信息直接塞進(jìn) tool call 后面,反饋給模型:“你剛才干錯(cuò)了?!蹦P鸵荒樸卤疲骸案闶裁??我還沒(méi)改完呢!你現(xiàn)在跟我說(shuō)這個(gè)?”這種事發(fā)生得多了,模型最后就會(huì)直接罷工,導(dǎo)致產(chǎn)出的結(jié)果非常糟糕。所以我特別反感在 agent 工作時(shí)掛 LSP。真正需要 linting(代碼檢查)和類型檢查的時(shí)機(jī)只有一個(gè):那就是 agent 覺(jué)得自己徹底完活兒的時(shí)候。

而且 OpenCode 最近有個(gè)變化:在一個(gè) session 里,每一條消息居然都會(huì)被保存為一個(gè)獨(dú)立的 JSON 文件。這在我看來(lái),說(shuō)明它在整個(gè)架構(gòu)設(shè)計(jì)上缺乏深度思考。一旦我對(duì)這種底層設(shè)計(jì)失去信心,我就不想再用這個(gè)工具了。

此外,OpenCode 默認(rèn)帶了一個(gè) server 架構(gòu),客戶端連接到服務(wù)端,終端界面只是其中一個(gè)客戶端。這原本挺高端,結(jié)果卻爆出了一個(gè)默認(rèn)自帶的遠(yuǎn)程代碼執(zhí)行(RCE)安全漏洞。如果你對(duì)自己的服務(wù)器架構(gòu)那么自豪,我默認(rèn)你應(yīng)該是一群成熟的工程師,至少考慮過(guò)安全性吧?但顯然他們沒(méi)考慮,而且這個(gè)洞開了很久。我也不是要指責(zé)誰(shuí),在現(xiàn)在這種前所未有的、快到讓人頸椎骨折的行業(yè)節(jié)奏下,出錯(cuò)難免,但我是不想用這種存在隱患的工具。

這就是我對(duì)現(xiàn)有 coding harnesses 的觀察。AMP 其實(shí)不錯(cuò),但我沒(méi)有掌控權(quán),它甚至?xí)Q定你用哪個(gè)模型處理哪類任務(wù),這不符合我的性格。

后來(lái)因?yàn)橐恍﹦e的原因,我開始研究 Benchmark(基準(zhǔn)測(cè)試),結(jié)果發(fā)現(xiàn)了 TerminalBench。簡(jiǎn)單來(lái)說(shuō),它是一個(gè)專門針對(duì) agent 的評(píng)估 harness,包含了大量和計(jì)算機(jī)操作、編程相關(guān)的任務(wù)。它有大約 82 個(gè)非常多樣化的任務(wù),從“修好我的 Windows 設(shè)置”到“幫我寫一個(gè)蒙特卡洛模擬”。它有個(gè)排行榜,上面列出了各種 agent 框架和模型的組合。

其中有一個(gè)叫 Terminus 的 agent 讓我覺(jué)得非常驚艷,它是排行榜上表現(xiàn)最好的框架之一。它是怎么做的呢?模型拿到的只有一個(gè) tmux session,它唯一能做的就是發(fā)送按鍵,然后讀取返回的 VT 序列碼。這是模型和電腦之間最極簡(jiǎn)、最原始的接口了。然而,它的表現(xiàn)卻是頂級(jí)的。

這說(shuō)明了什么?我們真的需要那些花里胡哨的功能來(lái)讓模型干活嗎?

對(duì)我個(gè)人而言,這不只是模型好不好的問(wèn)題,還有作為用戶的“人”該如何與 agent 交互。Terminus 的用戶體驗(yàn)或開發(fā)者體驗(yàn)顯然不是我想要的,但它證明了一點(diǎn):現(xiàn)有的編程框架里,很多功能可能并不是獲得好結(jié)果的必需品。不需要文件工具,不需要子 agent,不需要聯(lián)網(wǎng)搜素,啥都不需要。

基于這些發(fā)現(xiàn),我總結(jié)了兩個(gè)核心論點(diǎn):第一,我們現(xiàn)在正處于“一邊瞎折騰一邊看結(jié)果”的階段,沒(méi)人知道完美的編程 agent 到底該長(zhǎng)啥樣。大家都在嘗試,有人走極簡(jiǎn)路線,有人走“宇宙飛船”路線,搞什么 agent 集群、完全自治。我覺(jué)得這事兒還沒(méi)定論,行業(yè)標(biāo)準(zhǔn)還沒(méi)出現(xiàn)。

第二,我們需要更好的“折騰”方式,編程 agent 必須是可自修改、可塑性極強(qiáng)的,這樣我們才能快速實(shí)驗(yàn)新想法,看看能不能折騰出某種新的行業(yè)標(biāo)準(zhǔn)或 workflow。

所以我的基本思路非常簡(jiǎn)單:剝離掉一切冗余,構(gòu)建一個(gè)極簡(jiǎn)且可擴(kuò)展的核心,再稍微加點(diǎn)讓人用著舒服的小功能。它不是一張純粹的白紙,但也絕對(duì)不臃腫。

4Pi:讓 Coding Agent 適應(yīng)你的需求

pi 的核心理念很簡(jiǎn)單:讓你的 Coding Agent 去適應(yīng)你的需求,而不是反過(guò)來(lái)。


整個(gè)系統(tǒng)只由四個(gè) package 組成。首先是 AI package,本質(zhì)上是對(duì)多種 provider 的一個(gè)輕量抽象層。因?yàn)椴煌?provider 使用不同的 transport protocol,這一層幫你把復(fù)雜性都抹平了。你可以在同一個(gè) context 或 session 里非常輕松地和不同 provider 對(duì)話、隨時(shí)切換。接下來(lái)是 agent core,一個(gè)通用的 agent loop,包含 tooling、定位、驗(yàn)證等等基礎(chǔ)能力。然后是 TUI,大概只有 600 行代碼,但出奇地好用,可能因?yàn)椴皇悄硞€(gè) clanker 寫的。最后是 Coding Agent 本身,它既可以作為一個(gè) SDK,在 headless 模式下使用,也可以作為一個(gè)完整的終端交互式 Coding Agent。


系統(tǒng) prompt 就這么多,全部都在這了。和其他 coding harness 那種動(dòng)輒一大堆 token 的 system prompt 相比,這里幾乎是“空”的。原因其實(shí)很直白:frontier models 已經(jīng)通過(guò)大量 RL 訓(xùn)練,早就“知道”什么是 Coding Agent 了。所以反復(fù)告訴它“你是一個(gè) Coding Agent”“你應(yīng)該怎么寫代碼”?其實(shí)沒(méi)有必要。

默認(rèn)就是 YOLO 模式(默認(rèn)直接執(zhí)行,不向用戶確認(rèn),全自動(dòng)跑到底)。現(xiàn)在大多數(shù) Coding Agent harness 基本分兩種模式:要么 agent 想干嘛就干嘛,要么每一步都要問(wèn)你:“你確定要?jiǎng)h這個(gè)文件嗎?”“你確定要列出這個(gè)目錄嗎?”……看似安全,但現(xiàn)實(shí)是,這種機(jī)制只會(huì)帶來(lái)疲勞。用戶要么直接關(guān)掉這些確認(rèn),開啟 YOLO 模式,要么就無(wú)腦按回車,根本不會(huì)看提示。所以這并不是一個(gè)真正有效的解決方案。

至于 containerization(容器化),如果你擔(dān)心數(shù)據(jù)泄露或提示詞注入,它也不是萬(wàn)能解。但相比那些確認(rèn)對(duì)話框式的“guardrail(護(hù)欄)”,它至少是一個(gè)更合理的基礎(chǔ)。

pi 只提供四個(gè)工具:read、write、edit,以及 bash。沒(méi)有 MCP,沒(méi)有 sub-agents,沒(méi)有 plan mode,沒(méi)有 background bash,也沒(méi)有內(nèi)置的 to-do 系統(tǒng)。但重點(diǎn)在于,你完全可以用更簡(jiǎn)單、更透明的方式自己實(shí)現(xiàn)這些。


沒(méi)有 MCP?可以用 CLI tools 加上 skills,或者直接寫一個(gè) extension,一天之內(nèi)就能搞定。沒(méi)有 sub-agents?因?yàn)樗鼈儾豢捎^察。你可以用 tmux 去 spawn agent,這樣所有輸入輸出都在你掌控之中,每一步發(fā)生了什么都一清二楚?,F(xiàn)在 Claude Code 的 team mode,本質(zhì)上也在做類似的事情。

沒(méi)有 plan mode?那就寫一個(gè) plan.md 文件。它是一個(gè)持久化的 artifact,比那些塞不進(jìn) terminal viewport 的“蹩腳 UI”實(shí)用多了,而且還能跨 session 復(fù)用。沒(méi)有 background bash?tmux 已經(jīng)幫你解決了。沒(méi)有內(nèi)置 to-dos?寫一個(gè) todo.md 就行。

當(dāng)然,你也可以選擇把這些全部按自己的方式重新實(shí)現(xiàn),這正是 pi 的價(jià)值所在:極致的可擴(kuò)展性。你可以擴(kuò)展工具,給 LLM 提供你自己定義的能力。目前幾乎沒(méi)有其他 Coding Agent harness 支持這一點(diǎn),除非你去 fork OpenCode。但在 pi 里,你只需要寫一個(gè)簡(jiǎn)單的 TypeScript 文件,它就會(huì)自動(dòng)加載。

你還可以寫自定義 UI、skills、prompt templates、themes,然后打包發(fā)布到 npm 或 git,通過(guò)一條命令安裝。更關(guān)鍵的是,所有東西都支持 hot reload。我平時(shí)會(huì)在項(xiàng)目?jī)?nèi)部開發(fā)一些 task-specific 的 extension,當(dāng) agent 修改這些 extension 后,我只需要 reload,一切就即時(shí)生效,整個(gè)運(yùn)行中的系統(tǒng)會(huì)立刻更新,體驗(yàn)非常順滑。

這在實(shí)踐中意味著很多事情都可以自己動(dòng)手做。比如 custom compaction,這是我覺(jué)得大家應(yīng)該多嘗試的方向,現(xiàn)在所有的 compaction 實(shí)現(xiàn)都不太理想。permission gates?50 行代碼就能寫一個(gè),覆蓋市面上大多數(shù) agent harness 的能力。custom providers?無(wú)論是注冊(cè) proxy 還是接 self-hosted models,都不用等我來(lái)做,你自己甚至可以讓 clanker 幫你寫。

你甚至可以重寫內(nèi)置工具,改變 read、edit、bash 的行為。我自己就有一套版本,是通過(guò) SSH 在遠(yuǎn)程機(jī)器上執(zhí)行的,5 分鐘就實(shí)現(xiàn)了,而且很好用。再加上完整的 TUI 訪問(wèn)能力,你可以在 Coding Agent 里直接構(gòu)建完全自定義的界面。


社區(qū)里已經(jīng)有不少有趣的 extension。比如有人用 5 分鐘就在 pi 里復(fù)刻了 Claude Code ships,而且功能更多。


pi-messenger,是多個(gè) pi agent 的聊天室,它們可以互相通信,還有自定義 UI,可以實(shí)時(shí)觀察它們的行為,而且確實(shí)能跑。


甚至還有一些更“離譜”的玩法,比如 pi-nes,你可以在 agent 運(yùn)行的時(shí)候順手打個(gè)游戲。


pi-annotate,可以直接打開你正在開發(fā)的網(wǎng)站,在前端界面上做標(biāo)注,把反饋原地喂回給 agent,再讓它修改代碼。


還有我自己常用的 pi-files-widget,不用切到 IDE,就能快速查看剛剛被修改的文件。

關(guān)鍵在于,這些都不是內(nèi)置功能,全都是 extension。而大多數(shù)人只需要幾分鐘到一個(gè)下午,就能把這些東西按自己的習(xí)慣搭出來(lái)。


pi 的 session 是樹結(jié)構(gòu),而不是線性的聊天記錄。你可以在一個(gè)分支里讓 agent 讀取目錄、總結(jié)內(nèi)容,然后回到主對(duì)話,把總結(jié)帶回來(lái)繼續(xù)工作,本質(zhì)上就是一種更可控的 sub-agent。系統(tǒng)不會(huì)在你背后偷偷注入任何東西,agent、skills、調(diào)用成本,全都是透明可追蹤的。這一點(diǎn)很多 harness 都沒(méi)做好。此外還支持 HTML 導(dǎo)出、JSON 格式、headless JSON streaming 等等。

Pi 真的有用嗎?terminal bench 的結(jié)果顯示:pi 緊跟在 Terminus 2 后面,使用的是 Claude Opus 4.5。而那還是在去年 10 月,當(dāng)時(shí) pi 甚至還沒(méi)有 compaction。

最后說(shuō)一點(diǎn)現(xiàn)實(shí)問(wèn)題。如果你參與這個(gè)項(xiàng)目,很可能會(huì)有大量來(lái)自 OpenClaw 的用戶涌進(jìn)你的倉(cāng)庫(kù),用 clanker 批量提交 issue 和 PR,直接把你淹沒(méi)。

所以我不得不搞了一些“防御機(jī)制”。比如我發(fā)明了一個(gè)叫 OSS Vacation 的策略:直接把 issue 和 PR 關(guān)掉幾周,自己專心開發(fā)。真正重要的問(wèn)題,總會(huì)有人在之后重新提出來(lái),或者在 Discord 里說(shuō)。

另外我還做了一個(gè)簡(jiǎn)單的訪問(wèn)控制:倉(cāng)庫(kù)里有一個(gè) markdown 文件,如果有人提交 PR,但用戶名不在這個(gè)文件里,PR 會(huì)被自動(dòng)關(guān)閉。規(guī)則也很簡(jiǎn)單,先用“人類的聲音”寫一個(gè) issue,自我介紹一下,而且不要超過(guò)一屏,因?yàn)樘L(zhǎng)的大概率是 clanker 寫的。通過(guò)之后,你的名字會(huì)被加入列表,就可以正常提 PR 了。本質(zhì)上,我只是在做一件事:驗(yàn)證你是人類。

后來(lái) Ghostty 的 Mitchell 也基于這個(gè)思路做了一個(gè)項(xiàng)目,叫 vouch,可以更方便地應(yīng)用在你自己的開源倉(cāng)庫(kù)里。

以上就是 pi,去試試吧。

演講原鏈接:

https://www.youtube.com/watch?v=Dli5slNaJu0

聲明:本文為 InfoQ 翻譯整理,不代表平臺(tái)觀點(diǎn),未經(jīng)許可禁止轉(zhuǎn)載。

會(huì)議推薦

世界模型的下一個(gè)突破在哪?Agent 從 Demo 到工程化還差什么?安全與可信這道坎怎么過(guò)?研發(fā)體系不重構(gòu),還能撐多久?

AICon 上海站 2026,4 大核心專題等你來(lái):世界模型與多模態(tài)智能突破、Agent 架構(gòu)與工程化實(shí)踐、Agent 安全與可信治理、企業(yè)級(jí)研發(fā)體系重構(gòu)。14 個(gè)專題全面開放征稿。

誠(chéng)摯邀請(qǐng)你登臺(tái)分享實(shí)戰(zhàn)經(jīng)驗(yàn)。AICon 2026,期待與你同行。

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。

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.

相關(guān)推薦
熱點(diǎn)推薦
廣告使用“清朝長(zhǎng)辮”被指辱華,法國(guó)品牌Lemaire致歉

廣告使用“清朝長(zhǎng)辮”被指辱華,法國(guó)品牌Lemaire致歉

南方都市報(bào)
2026-04-26 20:40:18
男子一身名牌坐地鐵,被指像成功人士,網(wǎng)友:再有錢也怕堵車

男子一身名牌坐地鐵,被指像成功人士,網(wǎng)友:再有錢也怕堵車

丫頭舫
2026-04-27 17:39:57
38歲王思聰近照認(rèn)不出!滿頭白發(fā)穿睡衣度假,駝背顯老像 50 歲

38歲王思聰近照認(rèn)不出!滿頭白發(fā)穿睡衣度假,駝背顯老像 50 歲

橙星文娛
2026-04-27 14:17:09
2-3!3-3!瘋狂一夜,亞特蘭大爆大冷,拉齊奧補(bǔ)時(shí)絕平,曼聯(lián)險(xiǎn)勝

2-3!3-3!瘋狂一夜,亞特蘭大爆大冷,拉齊奧補(bǔ)時(shí)絕平,曼聯(lián)險(xiǎn)勝

足球狗說(shuō)
2026-04-28 05:07:09
“酩酊大醉”不讀míng dīng dà zuì了,正確讀音是什么?

“酩酊大醉”不讀míng dīng dà zuì了,正確讀音是什么?

未央看點(diǎn)
2026-04-27 22:13:40
從排隊(duì)入籍到集體觀望?美國(guó)入籍申請(qǐng)?bào)E降,綠卡人群態(tài)度變了?

從排隊(duì)入籍到集體觀望?美國(guó)入籍申請(qǐng)?bào)E降,綠卡人群態(tài)度變了?

紐約時(shí)間
2026-04-28 02:29:16
看完女排最新集訓(xùn),心里五味雜陳!別說(shuō)里約,連倫敦周期都比不上

看完女排最新集訓(xùn),心里五味雜陳!別說(shuō)里約,連倫敦周期都比不上

金毛愛(ài)女排
2026-04-28 00:00:04
Deepseek,光通信之后的下一個(gè)主升浪

Deepseek,光通信之后的下一個(gè)主升浪

靜姐的財(cái)富第六感
2026-04-26 22:31:06
淚目 趙心童曬兒時(shí)與丁俊暉合照:偶像暉哥讓我加油 你也要加油啊

淚目 趙心童曬兒時(shí)與丁俊暉合照:偶像暉哥讓我加油 你也要加油啊

風(fēng)過(guò)鄉(xiāng)
2026-04-27 06:15:09
有的人為了當(dāng)官,把老婆送給領(lǐng)導(dǎo)睡

有的人為了當(dāng)官,把老婆送給領(lǐng)導(dǎo)睡

斜杠人生
2026-04-28 00:00:04
金價(jià):大家不用等候了!不出意外,金價(jià)可能將歷史重演!

金價(jià):大家不用等候了!不出意外,金價(jià)可能將歷史重演!

殘夢(mèng)重生來(lái)
2026-04-28 04:40:09
不到72小時(shí),俞敏洪再迎兩大壞消息,主播集體辭職只是“開胃菜”

不到72小時(shí),俞敏洪再迎兩大壞消息,主播集體辭職只是“開胃菜”

阿廢冷眼觀察所
2026-04-28 00:24:36
皮蛋再次成為關(guān)注對(duì)象!研究發(fā)現(xiàn):高血脂吃皮蛋,身體或有6改善

皮蛋再次成為關(guān)注對(duì)象!研究發(fā)現(xiàn):高血脂吃皮蛋,身體或有6改善

健康科普365
2026-04-25 09:27:08
七萬(wàn)匹東洋大馬的覆滅:國(guó)民黨三年敗光日本四十五年心血

七萬(wàn)匹東洋大馬的覆滅:國(guó)民黨三年敗光日本四十五年心血

小莜讀史
2026-04-26 22:44:33
特朗普轉(zhuǎn)發(fā)“中印是人間地獄”,印度痛批低俗,中方態(tài)度耐人尋味

特朗普轉(zhuǎn)發(fā)“中印是人間地獄”,印度痛批低俗,中方態(tài)度耐人尋味

線裝史冊(cè)
2026-04-28 02:38:29
東南亞隱藏的“電詐大佬”,一個(gè)個(gè)正在浮出水面

東南亞隱藏的“電詐大佬”,一個(gè)個(gè)正在浮出水面

現(xiàn)實(shí)的聲音
2026-04-27 20:36:14
大姑子一家9口住進(jìn)來(lái),老公說(shuō)他5200養(yǎng)活全家足夠,我?guī)夯啬锛?>
    </a>
        <h3>
      <a href=麥子情感故事
2026-04-27 21:34:15
沒(méi)人再提激光雷達(dá)數(shù)量?直擊北京車展:今年智能駕駛“卷”什么

沒(méi)人再提激光雷達(dá)數(shù)量?直擊北京車展:今年智能駕駛“卷”什么

時(shí)代周報(bào)
2026-04-26 18:14:26
涉黃被傳喚,馬斯克出事了

涉黃被傳喚,馬斯克出事了

營(yíng)銷頭版
2026-04-27 14:42:14
中國(guó)排協(xié)官宣!16點(diǎn)30分,女排訓(xùn)練將直播,第二批球員恐揭曉

中國(guó)排協(xié)官宣!16點(diǎn)30分,女排訓(xùn)練將直播,第二批球員恐揭曉

跑者排球視角
2026-04-27 23:48:17
2026-04-28 05:28:49
InfoQ incentive-icons
InfoQ
有內(nèi)容的技術(shù)社區(qū)媒體
12309文章數(shù) 51863關(guān)注度
往期回顧 全部

科技要聞

DeepSeek V4上線三天,第一批實(shí)測(cè)出來(lái)了

頭條要聞

坐在特朗普身邊親歷槍擊案的女記者 身份非常不一般

頭條要聞

坐在特朗普身邊親歷槍擊案的女記者 身份非常不一般

體育要聞

人類馬拉松"破二"新紀(jì)元,一場(chǎng)跑鞋軍備競(jìng)賽

娛樂(lè)要聞

黃楊鈿甜為“耳環(huán)風(fēng)波”出鏡道歉:謠言已澄清

財(cái)經(jīng)要聞

Meta 140億收購(gòu)Manus遭中國(guó)發(fā)改委否決

汽車要聞

不那么小眾也可以 smart的路會(huì)越走越寬

態(tài)度原創(chuàng)

游戲
親子
教育
家居
藝術(shù)

《AC黑旗》重制版新增專屬劇情!原版編劇親自執(zhí)筆

親子要聞

警惕!深圳1歲女童小區(qū)玩耍后高燒半年,元兇竟是常見(jiàn)的它

教育要聞

你不說(shuō)這是計(jì)算障礙,我真以為我是智障呢

家居要聞

江景風(fēng)格 流動(dòng)的秩序

藝術(shù)要聞

他的油畫筆觸粗獷又細(xì)膩,透著一種不可言說(shuō)的美!

無(wú)障礙瀏覽 進(jìn)入關(guān)懷版