讓 Claude Code 的 skill 能從任何儲存庫呼叫:用符號連結做發現、用 additionalDirectories 給存取權、入口執行一次 cd -P,並且不使用相對路徑。
關於
在從事 AI 系統的開發的過程中,我會把發現的東西記錄下來。在這裡發表的內容大多是從某個遇到的困難開始,經過不斷的嘗試最後找到真正原因、並讓它動起來的紀錄。
這個部落格是什麼
程式碼正確的寫法本身通常很短。值得學習的是找到正確解法之前不斷嘗試的過程。
大約一半的文章是關於這個網站本身。使用 Astro 框架,以靜態檔案部署到 Vercel 上,沒有 CMS 也沒有資料庫——文章就是資料夾裡的 MDX 檔案。這裡的每一篇都有英文、日文與繁體中文三個版本。英文是最一開始撰寫的語言,另外兩種跟著一起發布。
關於我
oharu · 東京
開發 AI 系統:幫助企業整理並統整散亂的知識內容並製作 RAG 系統、構建自己會寫 SQL 並執行的 agent,以及創建讓這些 AI 能在商用環境下正常運作的基礎架構。
我是財務管理出身而不是資訊工程,並不了解艱深的編程知識,但這反而成了優勢。我有很大一部分時間,是在弄清楚客戶真正需要的是什麼,而那通常和需求單上寫的不一樣。接著再用簡單易懂的說法解釋給他們聽。這其實很重要,因為沒有人能解釋的系統,自然也不會有人信任。
我在工作中使用英文、日文和繁體中文。職涯大部分時間都在跨國的團隊裡,因此這個部落格也使用了三種語言,希望能接觸到不同背景的讀者。
我在台灣念財務管理,服完兵役後來到日本,沒有資訊工程學位。我從 QA 開始,靠自學轉到開發,2026 年起以 AI 工程師的身分工作。
證照
- Claude Certified Architect — Foundations
我做過的東西
一套給服務台人員使用的 RAG 助理。它會根據提問內容搜尋過去幾年的起票紀錄、並把回覆用的草稿寫好,遇到問題本身不清楚時,他會提問並提供幾個選項澄清,而不是自己猜。前端是 Next.js + SSE,後端是 FastAPI + Bedrock Knowledge Bases。
一個檢索數據庫並用自然語言回答問題的 agent:它會自己寫 SQL、丟到 Athena 執行,再把結果解釋給你聽。工具使用的迴圈跑在應用程式端,不經過 Lambda 或 Bedrock Agents;SQL 出錯時不是讓整個請求失敗,而是把錯誤交回給模型,自己修並再次執行。
一個跑在 Vertex AI RAG Engine 上的 Google Chat 助理。Google Chat 的 webhook 是同步處理、不支援 SSE。所以我把它設計成用 message patch API 持續改寫自己的那則訊息來達到動態更新的效果,使用者看到的是檢索的進度,而不是一個轉圈圈的圖示。語料庫會依排程自動更新,Google 雲端硬碟上的檔案改過之後,不用任何人重新上傳就會進到檢索範圍。每則回答帶了一個回饋按鈕,回饋內容會整合到 Data Portal 的 Dashboard,讓如何改善知識庫這件事可視化,變得可以量化,而不是用猜的。
工作之外的專案:一組以版號管理、公開發布的 Claude Code skill;AdCraft AI,透過三個 agent 把商品照片變成八秒的廣告影片,是 AI Agent Hackathon with Google Cloud 的決賽入圍作品(113 組參賽隊伍中共 10 組入圍)。
精選文章
Chrome DevTools MCP 與 Playwright MCP 交給編碼智能體的東西並不相同。各自提供什麼,以及一個 Astro 部落格為何留下其中一個、拒絕另一個。
Chrome DevTools MCP 與 Playwright MCP 有何不同 — 我為什麼在 Astro 部落格選了 Chrome DevTools
輸入法組字還沒結束,Pagefind 就把頁面帶走了。isComposing 是必要條件但不充分:WebKit 會在 keydown 之前先觸發 compositionend。
在捕獲階段攔下 Pagefind 的 Enter,修好日文搜尋 — 為什麼只靠 isComposing 不夠
聯絡我
我很歡迎大家來聯繫我!如果你想在 AWS 上創建 AI 系統,或是產品必須支援多種語言都很歡迎聊聊。又或者是單純想討論某個我寫過的某篇文章,都很歡迎~
寄信是最快找到我的方式。如果你發現文章裡有錯,用 GitHub 的 issue 會更合適。


