跳到主要內容

發表文章

目前顯示的是 7月 21, 2013的文章

用 AI 寫程式的痛:我們做了兩個小工具來解決

用 AI 寫程式最大的問題是什麼?對我們來說,不是模型不夠聰明,而是 不放心 。 LLM token 越來越貴,但大部分都在重複看已經知道的程式碼結構。 Agent 改完程式編譯不過,要來回好幾輪才修好。 工作到一半 context 滿了,重開 session 什麼都不記得了。 有時候改壞了檔案還沒人知道。 這些問題大概不是只有我們遇到。我們的做法是寫兩個小工具來補,一個管 輸入成本 ,一個管 操作安全 。兩者透過 MCP 協定接進 OpenCode,各自只做一件事。 工具一:GraphifyRust — 讓 LLM 不用重看整包程式碼 GraphifyRust 是用 Rust 寫的靜態分析引擎。用 Tree-sitter 解析原始碼,把 function、struct、trait 這些節點抽出來,建成一個有向圖。 AI agent 要改程式時,傳統做法是把整支檔案丟給 LLM。幾百行的檔案可能只有幾段 function 相關,但 LLM 還是得看完所有 import、註解、不相干的邏輯。 Graphify 的 skeleton_extract 只回傳 AST 骨架 — function 名稱、行號、簽名。實際壓縮效果: 檔案 原始 token 骨架 token 節省比例 server.go (BloggerAgent MCP) 1,289 117 90.9% toon.rs (Graphify 核心) 2,132 147 93.1% 骨架不夠用時,用 range mode 精準讀取特定 function。不需要整包丟進去。 選 Rust 的理由很務實:Tree-sitter 的 Rust binding 最成熟。在 110 個檔案、422 條邊的測試專案上,建圖只要 16ms ,比之前 Python 版快 26 倍。節點用 petgraph arena 預分配,減少 heap 碎片。輸出用自訂的 .toon 格式,體積比 JSON 少 60%。 語意搜尋用本機 Qdrant,沒有雲端費用。目前支援 9 種語言:Rust、Python、Go、JavaScript、TypeScript、C、C++、Java、PHP、Swift。 工具二:StateMachineMcp — 永遠不讓壞掉的程...

燈箱、LUPE、4x5 正片的世界。

(攝於羅東林場,Graflex Crown,Rodenstock Sironar 100mm f5.6,Fujifilm Fujichrome RDP III 4x5 Provia 100F) 這張照片的 拍立得版本 已經讓我驚豔不已,也一直期待著正片洗出來的成果。 當這張正片放上燈箱用 LUPE 看的時候,畫面鮮明的就像正站在相機前,數著一二三,然後準備壓下快門的那瞬間。 翻拍?掃描?恐怕都無法表達透過背光投射出來的震憾!那不是記憶中的畫面,而是全然真實甚或超越真實的重現!

首次試跳,開心成功

(內埤海灘,Graflex Crown,Rodenstock Sironar 100mm f5.6,Fujifilm FP-100C 45) 後面背景人太多太雜亂,只好跳起來遮。 幸福試跳首發!媽呀我好愛這張! 謝謝羅敦,謝謝格拉菲,謝謝球球快門線,謝謝我最棒的 Model 們。