AI 軟體開發第三時代
早上看到 Cursor 的部落格發了一篇文章《The third era of AI software development》,裡面把 AI 軟體開發分成三個時代,覺得滿贊同的來聊一下,順便寫一下上次提的用 AI 做逆向工程的心得。
第一個時代是 Tab 自動補完,也就是最早期的 GitHub Copilot 在幹的事情,當初 Cursor 剛出來的時候也是這功能。
第二個時代是 AI agent,也就是現在大部分軟體工程師都在幹的事情,讓 AI agent 幫你寫 code。在一年前的時候,使用 Cursor tab 的人是 agent 的 2 倍,而現在已經顛倒過來了,我自己也很少用 tab 了。
而第三個時代就是我上週提過的 Cloud agents,本地用 agent 有其限制,例如說某些資源還是共用,同時也沒辦法真的開到太多太多 agent,還是一個我認為滿重要的限制是「你要有台電腦」。
而 Cloud agent 就是最理想中的形式,你只要在 web 介面上說一句話,背後就有 agent 去幫你開發,跟在本機電腦一樣。幫你開發完測完之後,你去 review 就好。
這個第三個時代的轉變,讓我們脫離了「一定要有電腦」這個限制,你在下班回家的捷運上突然有個 production issue,打開 cloud agent 叫他分析 log 然後把 bug 修掉,發 PR、merged、deploy,可能你還沒到家事情就解決了。
其實已經有不少人現在就是走這個開發模式了,大多數我看到的是一些熱情投入 AI 的個人開發者,至於公司的話,之前提過的 Stripe 就是,一定還有別的公司也是只是我懶得找。
不過第三個時代的門檻較高一點,你要先把開發環境準備好,而且還要同時有多個,不像第二個時代你都跑在自己電腦上,自己建好就行。或許再過個兩年,大多數人都會進入第三個時代,把大部分開發都丟到雲端去,隨時隨地都可以 coding。
想先體驗這個時代會長怎樣的,現在就可以找一些工具來用了(如上次介紹的 Cursor cloud agent),這是現在就做得到的事情。某個層面有點類似 OpenClaw 小龍蝦那樣,你給他環境跟機器,下指令他就會做事。
最後來寫一下用 AI 逆向工程的心得,我對逆向工程幾乎沒研究,除了學生時期修組合語言的時候,期末 project 做的是逆向某個小軟體,把 jmp 改成 nop 以外,就沒碰過逆向了。
這次因緣際會拿到一個 Golang HTTP server 的 binary,想說來試試看現在結合 AI 可以做到什麼地步。一開始我直接先召喚 agent 出來,它就先用 strings 去猜各種字串,最後撈到一些參數跟 URL,其實也滿有用的。
但這樣還不夠,於是我裝了個 Ghidra MCP 再裝了個專門分析 Golang 的 plugin,再搭配我平常在用的 Cursor,直接在上面跟他說「幫我逆向這個程式並給我一份報告」,他就產出了一份報告說明這是什麼東西,然後把 API endpoints 都列出來。
那時我可以感受到跟外行 vibe coder 相同的喜悅,也就是「我以前認為這麼困難的領域,沒想到靠 AI 就能讓我產出成果,AI 太神啦」,不過我對逆向工程還是抱持著一顆敬畏的心,依舊佩服那些會這個技能的人。同時,我也不覺得 AI 在這件事情上可以完全取代人類,AI 逆向出來的結果有些是錯的,有些也有幻覺,還有進步空間,我給的也只是隻小程式,沒試過更複雜的。
詳細的心得跟步驟昨天寫在部落格了,有興趣的可以看一下。總之呢,心得就是 agent + MCP 組合技真的好用,大力推薦。
評論