← 返回首頁
村本章憲 Stamp CEO
村本章憲 Stamp CEO
@1amageek
92🔁 6
𝕏 (Twitter)🔥
AI 中文摘要Claude 生成
swift-skeleton 是一個用於幫助人工智慧 Agent 快速理解程式庫結構的命令列工具,最近展現出強大的實用性。這個專案解決了 LLM 編碼 Agent 探索程式庫時的核心問題:無需讀取每一行程式碼,只需要先看清楚整體架構。 工具的核心概念是「skeleton」——即程式庫的骨骼結構,包含型別宣告、屬性、方法簽名、繼承關係、檔案路徑和行號,但不包含實現細節。這種做法模仿了開發者加入新專案的工作方式。舉例來說,透過 skeleton 提取,一個結構體可以被簡潔地表示為:宣告了什麼屬性、公開了哪些方法、這些方法的簽名是什麼、實現位於哪個檔案的第幾行。LLM 讀取骨骼結構後能立即理解整個架構,然後只深入閱讀真正需要的檔案,這樣既能節省 token 配額,又讓 Agent 在有限的 context window 內掌握全局。 swift-skeleton 支援包括 Swift、Kotlin、TypeScript、Go、Zig、Rust、C++、Python 和 Java 在內的九種程式語言,每個語言解析器都可透過 Package Traits 選擇性構建。該工具基於 Tree-sitter 進行快速、準確的解析,架構設計將核心邏輯與語言解析器分離,核心層完全不依賴 Tree-sitter,解析器透過協定注入,這讓添加新語言變得相對簡單——只需實現 SkeletonParser 協定即可。 使用方式相當靈活。最簡單的方式是安裝 Mint 套件:mint install 1amageek/swift-skeleton,或從原始碼構建。工具內建了 Agent Skill,教導 Claude Code 和 Codex 等 LLM 編碼 Agent 如何使用骨骼提取功能,可透過 skltn install-skill 自動安裝到 ~/.claude/skills/ 或 ~/.codex/skills/。此外它也支援作為 MCP(Model Context Protocol)伺服器運作,讓 Claude Code 直接查詢程式庫結構。 命令列介面提供了清晰的操作流程。skltn get_skeleton 指令可提取完整專案骨骼或特定檔案的骨骼,skltn query 指令支援按名稱搜尋 symbol,skltn daemon 運作為 JSON-RPC 服務,skltn mcp 運作為 MCP 伺服器。對於程式開發者,該工具也提供了庫使用方式,支援嵌入式(同行程)和 Sidecar(外行程)兩種部署模式。 架構採用分層設計:SkeletonIndexCore 作為與語言無關的核心層,負責協定定義、資料模型、格式化器和索引;各語言對應的解析器(SkeletonSwiftParser 等)負責具體實現;上層透過 SkeletonIndexClient 與索引互動;最上層 skltn CLI 統一各種執行模式。這個設計的優勢在於核心邏輯穩定,語言支援可持續擴展。 該專案的實用價值在於直接解決了 LLM Agent 在大規模程式庫中快速定位和理解程式碼的瓶頸。透過提供架構概覽而非全量程式碼,不僅節省了 token 使用,還讓 Agent 能更高效地進行程式碼探索和修改,這對依賴 LLM 能力的開發工作流影響深遠。