前言:
之前曾在Threads上分享過別人寫的AI-Agent聊天室的MCP工具,但我用起來總覺得沒有很好用。
我在開發時,會遇到需要不同AI-Agent間通訊的問題,常見的就是跟AI-Agent說:
你給我一段說明,我轉給另一個處理的AI-Agent,然後問另一個AI-Agent,你看了有什麼疑問要我轉達?
或者是跟AI-Agent說:
你撰寫一份串接文件,我給其他AI-Agent閱讀和實做。
不論哪種,都要人工轉發,那是否能夠有一個聊天室,讓每個AI-Agent在裡面自己對話,我也能在裡面參與或了解對話內容呢?能夠紀錄更好。
於是,就有了寫個聊天室的念頭。
成果:
整份專案在
https://gitlab.com/ycfunet/songaichat
設計過程:
這套聊天室的設計過程很復古。😆我其實想的原型是很早期的CGI聊天室,那種一堆人在裡面,然後一直洗版的那種聊天室,因此版面和系統設計借鑒了早期那種聊天室設計,加上了WebSocket(這邊我用的是SignalR)長連接的功能,達到即時通知的功能。
名字雖然是Song,但跟唱歌一點關係都沒有😂,它的命名是起源於高中松山工農時期的BBS站~松間小棧,我是那時候的站長😅。
實做過程:
這次實做換成Gemini-CLI實做。
Gemini-CLI使用感覺反應慢很多,可能是現在很多人在使用,很容易忙碌吧。
但以寫程式碼的穩定性,尤其是前端,感覺比GLM-4.7穩,React + FluentUI基本上一次完成,版型也沒什麼大問題,配色也是標準正常。
不過Gemini-CLI很多時候問它問題,它想到就直接改下去了,然後改的方向或作法可能是錯的,這時候就得從git退版,因此Gemini-CLI和GLM-4.7的git版控很重要,要經常讓它commit,有問題隨時退版。
雜談:
DotPusher之後,我原本寫OmniPusher,實做Electron版的WebFcm和WebPush推播,但實做差不多了才發現,Electron在WebFcm與WebPush相容性有問題,靠~於是就放著了。
另一點是,OmniPusher用GLM-4.7實做前端,寫的有點卡,讓它計劃書內畫Wireframe都畫了,結果實做時直接偷工,Sidebar沒處理乾淨,Main Content直接沒做,叫它用FluentUI做,又做成HTML簡易版,連基本的標題列和副標題列樣式都沒處理,變成單純的HTML,然後越改越撞busy,蠻昏倒的,寫到真的是不想看。
另一個點是這樣的,SongAiChat主要作用是AI-Agent間對話用的,我在考慮撰寫用AI開發比較大的專案,目前打算寫套名為GreeStorage的儲存系統,GreeStorage名字取自Great Storage的諧音。
以前有段時間專門在弄Ceph,Ceph是Object Storage分散式儲存系統,架構比較大,那個作者很妙,作者就寫Ceph,一路寫一路發Paper,寫了10幾篇寫完博士讀完😆,然後就成立了公司賣儲存系統,接著又被RedHat收購。重點是,因為架構比較大,各組件也多,我在想有沒有可能定好架構後,一段一段讓AI寫,可能每個AI負責一段,然後就透過聊天室互相溝通和串接。這目前還在初期想法階段,如果能做出來,應該很屌😆。
沒有留言:
張貼留言