打造self host的第二大腦

起因

我以前一直就是pocket這個軟體的大粉絲,很喜歡在pocket存一些medium或是hackernews看到的有趣的知識文章、技術文章,甚至是一些人生相關的優文。


沒想到去年五月的時候Mozilla宣布把pocket關閉,在那之後我就只剩下把這些資料存到telegram的saved message中(然後就再也懶得打開)


仔細想想這樣真的是有點慘,今天早上心血來潮,覺得重拾這個知識管理系統,這次要用可以self-host的東西才不會再次被別人收掉。


這次我跟著gemini聊天一邊follow up一邊把我的系統建立起來,發一篇文章留個紀錄。


為什麼選用gemini聊天


為什麼這次我選擇用web的聊天介面,而不是claude code / github copilot / open code或是antigravity這種開發介面?


因為我目前已經有部署好的vps,架設好的n8n,和一個已經在運行的telegram bot作為我的calendar agent,我總覺得直接建立一個新的web服務不會是最順暢的流程。


正好,幾年前就有耳聞obsidian非常厲害,這次想說來使用self-host在GitHub上面的obsidian流程來做做看。所以和gemini聊了聊系統設計。


Obsidian的vault建立

這步驟好像也不需要用到ai,簡單找了一篇教學下載Git plugin + GitHub快速建立了自己knowledge based的repo後,就可以快速建立iPad / MacOS / Windows可以互相共通的筆記本流。

image

n8n 與 tg bot的串聯

這次的整個經驗學到最多的,其實反而是n8n的agent based設計理念的完整實踐。


原本我可能會想說是不是拉一個完整的Flow來做這些事情,但是這個其實就不是agent的做法。


Gemini建議我,可以建立一些sub-workflow,製作成agent可以使用的工具來進行。


最後建立了以下兩個工具

  1. Tool - Save to Obsidian

這個工具做的事情很簡單,就是可以給agent呼叫,來在指定位置建立新的檔案,類似我想要的pocket存檔

image

  1. Tool - Jina Reader

Jina AI是一個LLM友善的輔助爬蟲工具,有免費流量在我個人使用上非常足夠,這個工具可以呼叫一個url來取得文章內容。

image


加入這兩個工具再微調prompt後,我原本拿來紀錄calendar事件的bot,搖身一邊獲得了可以自動記錄obsidian文章的能力,也就是我要的pocket功能了!

image


在Telegram中聊天感覺如下

image


成功完成當初想要的pocket功能,而且在文章中,還可以有AI的摘要、翻譯等優點,可以說比當年的pocket更加強大。

image