最近開發了兩個APP,有一個重寫了兩次都失敗了,另一個則很成功,第一個APP嘗試先叫AI準備所謂的spec,原意是參考spec driven dev但它的完成spec實在是太過複雜了,就算叫AI寫也不知道寫出來的東西是不是正確,無法驗證,後來第二個APP改用了data flow diagram,效果拔群
最近開發了兩個APP,有一個重寫了兩次都失敗了,另一個則很成功,第一個APP嘗試先叫AI準備所謂的spec,原意是參考spec driven dev但它的完成spec實在是太過複雜了,就算叫AI寫也不知道寫出來的東西是不是正確,無法驗證,後來第二個APP改用了data flow diagram,效果拔群
同樣是AI寫的 #DFD 但可以按照DFD寫一組完成的測試 (test suite) ,尤其是對接API的膠水應用,可以要求AI做真實的測試連接真實的服務,收集數據樣本後便能驗證DFD內的數據結構 (data structure)
有了 #DFD 和 #TestSuite 作為基礎,再要求AI一邊優化DFD一邊開發代碼,中間用大量的測試作為驗證,可以幾乎零人手參與AI原生進行開發,我使用的是 #DeepSeekV4 和 #OpenCode
我的場景下 #DeepSeekV4 Pro 和 #OpenCode 已經接近完美,例如我想 (from scratch) 開發一個 #Rust 版本的RocketChat Client,可以叫它參考官方文檔開發真實測試 #TestSuite 運行並收集數據,再做 Rust Client,它會完全自己測試自己修Bug,例如中間我要求它加入替換用戶名和觸發is typing,這兩個功能官方文檔都沒有寫的,它是直接查看rocketchat的源碼研究,結果亦很完美,未來要維護也有充足的測試
而家個成果就係自己開發咗一隻龍蝦,咁因為安全問題就冇俾啲咩功能俾佢嘅,佢只可以入去NextCloud改吓啲文件,上網查資料,操縱日曆,同埋生圖。用咗半日,效果拔群 🤩
它的外圍是 RocketChat client,裏面包着的核心是 Agent Harness + Agent Loop,Harness裏提供三層的記憶 (Memory) ,第一層是聊天紀錄,第二層是對超過長度的聊天紀錄近7日的總結,第三次是永久記憶 (Soul),全部記憶都是由 #LLM AI 自己管理的。 #Harness 外有各種工具例如管理 #NextCloud 上的文件和日曆,通過接口生成圖片和上網查找資料。暫時使用了半日很完美。