用 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 | 1,289 | 117 | 90.9% | | toon.rs | 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。 工具二:StateMa...
題外話,去年幫朋友標了這台,遲遲未寫一篇介紹,其實是有私心的,好東西少一點人知道比較不會搶。 上個禮拜因為自己要 幫朋友拍攝一場婚禮 ,無巧不巧原本服役的 707si 掛了,於是跟朋友商借了 Alpha 7 來拍,拍過之後就一直放在身邊,說實在的有點捨不得還,快門聲,手感,強大的性能,實在是有點誇張。 拿 Alpha 7 拍我女兒的時候,因為有 LCD,我女兒會說我要看,而不是問我 把拔這台是底片的嗎 ?讓我解釋半天她也不相信,直指著 LCD 要看照片,很妙,但是個識貨的女孩,一眼就看出這台相機的特點,機背有 LCD。 於 1998 年推出頂級機 Alpha 9 之後,2000 年推出的 Alpha 7 除了快門速度和連拍速度緊挨著機皇而沒有強過頭,卻在準專業定位的 Alpha 7 身上加入多項先進的功能,其中許多 Alpha 9 所沒有的,相當驚人,整理於下: ※ 全新開發之 CDC912 對焦系統,九點寬域對焦,排列為黃金矩陣 ,宣稱為世界首快之 AF 對焦;機背轉盤可選擇對焦點並直接對焦。(Alpha 9 為三點寬域自動對焦) ※ 首見機背大型點矩陣式 LCD 大幅增加人機溝通性能,若採垂直控制拍攝時LCD會隨之轉為垂直。 ※ DMF (Direct Manual Focus) 功能 :透過機身可讓鏡頭全時手動,無須撥動AF/MF鈕 ※ 世界首見 STF (Smooth TransFocus) 特效 ,可使每支鏡頭作出特殊背景鬆濛感,類似Minolta STF 135mm f/2.8[T4.5]的效果 (作用原理:相機自動切換為多重曝光,並於曝光時逐漸縮小光圈葉片)。[Custom 3] ※搭配新一代納入距離編碼器的鏡頭時,Alpha 7 可採 ADI (Advanced Distance Intergration) 測光模式 ,或配合 TTL 4 區閃燈測光。 ※一推出即支援 SAM 超音波馬達鏡頭。(Alpha 9 需要更新韌體) 功能很多很強大,底下就先挑一些比較有意思的設計做介紹。 》十四區蜂巢式測光,LCD 顯示 當同時按下 AE 曝光鎖 (AEL) 與 LCD 顯示選擇鍵 (DISP) 時,會顯示 14 區各分區的相對EV值,與灰色部份比較,白色的為正值,黑色的為負值,以上圖為例,畫面最暗的地方是 –2.3,最亮的地方是 ...
留言
張貼留言
回應不用錢,請多多益善!懶得寫字按個讚也是相當感謝!