跳到主要內容
Lab Grimoire
TW EN
請喝咖啡
← Spell Book

earendil-works/pi

ai-tools

法術評分
🔮🔮🔮○○
價格
open-source
難度
advanced

封面圖 — earendil-works/pi 分層架構概念

大多數開源 coding agent 就是一個對話迴圈加上硬接的工具。這一個不同,像一棵分層蓋好的建築,每層自己就能站穩。

最適合誰

正在設計自己的 AI Agent SDK、或想研究一個架構良好的 coding agent 底層長什麼樣的開發者。如果你想理解 Extension hook 的分類方式、分支式 session 持久化、或 AI/Agent/Tool/UI 各層怎麼切乾淨,這份原始碼是目前品質最高的開源參考。不是用來取代你現有 coding 助手的。

我實際怎麼用

我讀它的原始碼。Monorepo 切成 5 個獨立套件:AI 抽象層、Agent 核心、Coding Agent(主 CLI)、TUI 框架、Web UI。每層像抽屜一樣可以單獨抽出來,其餘照常運作。

為什麼這很重要?因為 Extension 系統在這些層之間掛了 20+ 種 hook(onToolCall、onMessage、onCompaction、onSessionStart 等等)。把它想成水管上的分接頭,你可以在任何節點攔截、改道、過濾 Agent 的行為,不用動核心程式碼。

最有趣的設計是 session 持久化。Session 不是對話記錄,是事件時間線。每個模型切換、訊息、壓縮事件、session fork 都存成獨立的 JSONL entry。可以倒帶、分支、重播,像 git commit 一樣操作。

架構圖 — AI → Agent → Coding Agent → UI 及 Extension Hook 系統

真正強的地方

  • 分層架構(AI → Agent → Coding Agent → UI)像獨立模組疊起來的積木塔。每層有明確的牆,可以獨立替換不影響其他層
  • 20+ Extension hook 提供了一份完整的 Agent 攔截點地圖。設計自己的系統時拿來當 checklist 用
  • Session JSONL 帶分支功能。Fork 一個 session 試不同方向,走不通就退回來。扁平的聤天記錄做不到這件事
  • Bun compile 產出單一執行檔,終端使用者不需要裝 Node.js

失敗模式與不該用的情境

會想拿它取代 Claude Code 來日常開發嗎?不會。

  • 版本 0.74.0。API 變動頻繁,不算穩定
  • 小團隊維護。沒有企業後盾,長期維護沒有保證
  • 沒有讓人「非用不可」的殺手功能。日常開發直接用 Claude Code 或 Copilot CLI 更實在
  • 本評測未完成日常使用實測。評估基於原始碼品質,非實際操作經驗

價格、上手門樻與風險

免費,MIT 授權。執行需要 Node.js 20.6+ 和 TypeScript 經驗。真正理解架構需要讀原始碼,文件存在但程式碼本身才是真正的文件。風險主要是延續性:小團隊、早期版本、快速迭代。

結論

不是裝了會讓你工作更快的工具。是讀了會讓你建出更好的 Agent 的程式碼。如果你正在為自己的 AI Agent 設計 Extension 系統、session 持久化、或工具執行框架,從這裡開始。否則,繼續用你現在的 coding 助手就好。

常見問題

pi 可以拿來日常開發嗎? 不建議。v0.74.0 代表 API 随版本變動,生態也太小不能依賴。日常工作用 Claude Code 或 Copilot CLI 更穩。

pi 跟其他開源 coding agent 差在哪? 架構。多數替代品把工具呼叫包在對話迴圈裡。pi 把 AI、Agent、Tool、UI 切成 4 個獨立層,開放 20+ 個有文件的擴充點。差異在結構,不在功能。

可以把 pi 的 Agent 核心嵌入自己的產品嗎? 可以,這正是它最強的用途。Agent 套件可以脱離 CLI 和 TUI 獨立運作。如果你在建自己的 coding agent,在動手寫之前先讀這份參考實作。

來源