Day:292 NEXT
第 292 天的年度檢討:從 Ingrelens 與 cosGlint 的基礎建設到架構解耦,LLM 與後端分離、Orchestrator 上線;經歷 11 月大流量的佇列塞車與 48 小時救火,補齊觀測與調度,cosGlint 用戶破兩千、內建 13k+ 商品,1.3.0 推出全方位部位檢測,持續迭代。
從開始做 Ingrelens 到今天是第 292 天,時間過得很快。回頭看從一步一步打造 Ingrelens 與 cosGlint,到找到夥伴分工,我也能把精力放在更關鍵的事情上,cosGlint 迄今收穫了兩千多名註冊使用者,內建支援超過13000+ 件商品,你不一定要有商品拍照才能分析,裡面有 13000+ 件商品提供你分析。
三月啟動產品計畫時,我在 GitHub Copilot 的 Agents beta 上摸索,也用過還有點笨拙的 Claude 3;到現在已經走到 Opus 4.5,這段模型演進的速度確實驚人。不過本文的重點不在 AI Agent,本篇是我的年度檢討。
我很慶幸當初做了大家口中的「過度設計」。具體來說是在產品尚未上線的階段,就先把 LLM 服務與後端邏輯完全解耦。表面看起來像多此一舉,但這個決定讓後續擴充反而輕鬆。
我們一開始把後端與 LLM 綁在一起,初期沒問題;可當任務複雜度上來,維護性與耦合度就一起拉高。現在後端 API 的數量已超過 500 支,LLM 任務也拆得很細,如果持續讓兩邊緊密綁定,複雜度會呈倍數成長。五月我決定把 LLM 完全剝離,讓它成為可獨立調度的服務。雖然在當時看是多做一步,但現在管理與迭代的成本明顯下降。
在這個架構下我做了一套 LLM Orchestrator,專門處理多模型、多供應商、多任務的日常運行:集中管理 prompt,提供 provider 切換與調度,維護 api key pool,並設計 fallback 機制。當 API 與任務量級持續攀升,這層編排就成了穩定性的關鍵,把 LLM 從後端拆開,讓我們在高任務密度與多模型環境裡,能持續交付、快速迭代、把問題定位得更準。
回顧過去每一篇檢討,其實我們的路線都還站穩當初3月當下的規劃,只是 roodmap 太龐大導致看起來花了太多時間,確實我們到現在還是燒自己的錢,而不是去搞 VC,一方面可能時機還沒到,一方面我實在不喜歡空口說白話,市場上太多拿個空殼的 MVP 去拿幾億美金,雖然那也是他們的實力,但那些產品說真的我也只用了一次,很多似乎他也就沒後續的迭代退場? 但 VC 確實蠻愛把錢丟到這種團隊,當然人脈和圈子也是差異。
雖然 Ingrelens 和 cosGlint 暫時還沒 VC,我們也確實把比較多資源還放在開發 app上 ,對於目前的規劃來說,至少還有三個版本 cosGlint 才算符合當初啟程時的規劃。
但 Ingrelens 就是不斷在觀察使用者中做出改善,前半年其實都在基礎建設,所以提供了基礎的網頁版讓使用者可以在網頁上掃描產品及個人化分析,但這顯然體驗不好,所以在五月的時候其實我就直接決定提早進入 APP 版本的開發,我還記得啟動時間是 6/3,一直到上架其實已經過了兩個月,兩個月聽起來很快但其實整個產品線已經過了半年,說沒有壓力是騙人的!
當然 vibe coding 熱潮正起,很多人隨便弄一下然後就開課或是賺到錢的案例,也會讓我有點懷疑人生,啊我 .... 搞這麼複雜幹嘛?
但轉個念我們還是繼續做了 cosGlint,整個正式上線其實已經到了九月,初期其實推廣的很不順,因為沒有太多預算投入廣告,所以至今完全都沒有買任何廣告,但迄今我們也收穫了兩千多名用戶。
回顧
回顧過去也許我們仍有許多做的不好的地方,但這就是必經的一條路,AI 時代的到來我覺得要好好善用這些你能發現不好的過程,快速迭代自己去調整路線,並且堅持理念,前提當然是他得是一條正確的道路。
我們很清楚 cosGlint 還有進步空間。從第一波大流量襲來、信箱被 alert 淹沒,到如今系統相對穩定順暢,這中間花了不少力氣。
回想 11 月夥伴的推廣文突然引來大量使用者,確實有一刻被打得措手不及。但我做的第一件事不是直接修 bug,而是先用一小時把所有後端 log 整合到 GCP Logging,確保之後能清楚追蹤事件的因果鏈。隨後才逐一處理警報、修正問題、立即部署並觀察成效,如此反覆近 48 小時,持續觀測系統穩定度。
上線前有做測試,但沒有覆蓋「一次上百個任務互相競爭」的情境。我們的分析任務會進佇列等待 worker 處理(可以想像成排班的工人),小量時當然沒問題;一旦大量任務同時 pending,問題就浮現:有的任務卡住不前、有的重試機制不夠健全、後面的任務也缺乏繞行與降載策略,結果佇列迅速塞滿,新任務不斷湧入,整體吞吐被拖垮。這次事件讓我們補齊了高併發下的觀測、調度與回溯能力,並把壓力測試納入常態流程。
也感謝這些人流造成的問題,讓我可以把 worker 修復到可正常運作,有異常會自動刪除異常任務繼續進行,時至今日即使有異常的任務也可以正常拒絕刪除後繼續處理別的任務。
其實我們仍有部分改動是不在 roadmap 上的,像是我們最新推出的髮質檢測系統 以及全身分割部位的配配個人化分析系統,原本其實只有 findskin 的臉部檢測,但大量用戶來的時候湧現的問題就是,化裝品保養品不只是臉,他是頭髮/臉/身體/手/腳的細緻分佈,所以當下我們決定 pending 所有計畫,全力改善這個問題!
終於我們在 cosGlint 1.3.0 版的時候推出全方位的配配個人化分析,現在 cosGlint 可以根據你所有的部位去作化妝品保養品的個人化分析,並且他仍然在持續進化... 就在明年一月中你會發現 cosGlint 會更加友善好用!
NEXT 下一步
目標是把使用者旅程變短、變清楚。你只要拍照就能看到可用的結果並做選擇;我們把背後的繁瑣處理好,持續把理解成本降到最低,下一步我們將完成 cosGlint 身為保養 app 的最後一哩路。
雖然說是最後一哩路,但其實這才是起點而已,所謂最後一哩路是指我對 cosGlint 這品牌的設計將會是 2.0 前的最後一塊拼圖,2.0 開始將會是不同體驗的保養app,相信明年的 2.0 可以帶給大家更多的驚豔,但我們仍會站穩 1.x 的腳步將所有功能打紮實,資料完整度整理確實。
cosGlint 並不是幫你轉送分析而已,我們 db 就有完整的 INCI 成分庫和各種危害資料作為基礎,這些資料都是目前使用體驗良好的基石,findskin 則是完全我們自有的演算法。
明年第一季主要的推進方向
- 資料整理
- 1.4 ~ 1.5 版兩個大改版的推進
- 接著準備邁入 2.0 的路線


