擊敗李世石的 AlphaGo 不參考人類棋譜,而是讓 AI 完全自由發揮,因此創造出那關鍵的第 37 手。這一次,在軟體開發領域也開始出現類似狀況。
Uncle Bob 近日於 X 發布貼文,分享自己花了數週開發寫程式框架,在 agent 能力大幅提升後,該框架不只沒有讓軟體開發變的順利,反而成為了限制。現在開發時只要給出原則指引,剩下的 agent 將會自己能完成。
對於一個懶惰的工程師來說,實在是再好不過的消息 😆
我從一開始使用 agent 進行開發到現在,所有的行為準則都是提供 agent 足夠多的資訊讓它自行完成工作,人類要做的只有驗收跟負責。
還有一點很重要,請 agnet 工作時盡量描述遇到的問題與背景,不要自作聰明地跟它說該怎麼做。
舉個例子,有一次我要把資料從 Mac 筆電傳到 Windwos 筆電,覺得每次都拿 USB 好麻煩。直接把需求描述給 agent 後,依照它的教學在 Windows 上開設共享資料夾後,檔案就自己被傳過去了,我連複製貼上都不用按。在這之前我連 Windows 有共享資料夾這個功能都不知道。
Prompt 裡越多人類淬煉過的內容,agnet 得到的資訊就越偏頗,什麼上下文管理、記憶控制、skill、workflow、harness 都直接透過「指揮」agent 完成就好。
仔細想想用指揮來形容有點太好聽了,其實就是看到新名詞後叫 agent 自己去網路上查那是啥,然後自己看能不能應用在工作上,結束後再把新知與成果報告給我。這麼一說好像是慣老闆在指揮員工 😅
做個形象化的比喻,現在進行開發時就很像是新員工來公司報到:
- 帶他去公司各處逛逛(跟 agent 說專案資料放在哪)
- 幫他開設各種軟體帳號(取得各種 PAT 餵給 agent)
- 指派任務給新人(下 prompt 叫 agnet 進行開發)
- 跟新人說有任何問題隨時找我(跟 agent 說找不到資料或是規格有缺失矛盾先提出)
- 完成工作後給我審核(叫 agent 自己架測試站,並且完成開發後先去測試通過再跟我說)
最後還有兩個不能對員工,但可以對 agent 說的:
- 沒做完不准下班(確定可以驗收才能叫我,否則不能停下來)
- 做多少事拿多少錢(不准亂花 token)
照這樣說下去,豈不是人人都可以開發軟體了?是也不是。現代廚具讓人在家可以輕鬆做菜,但可不是每個人都能成為大廚。的確軟體開發技能透過 agent 變成極容易上手,但要真正做出具有商業價值的產品,依然需要了解電腦科學的專業工程師。
現在工程師可以將開發重心放在最重要的地方,了解使用者需求、設計合理規格與營運維護系統。