iT邦幫忙

2026 iThome 鐵人賽

DAY 20
0
Vibe Coding

凡人修 Agent 傳-我這一生如履薄冰,你說我的 Agent 能結嬰嗎?系列 第 20 篇

原來我不是獨修:我用的是一整個宗門的生態系 - Day 19

  • 分享至 

  • xImage
  •  

原始開發紀錄:Agent Build Log — Episode 029

這個系列改寫自我部落格上的 Agent Build Log,那是我每天邊做邊寫的開發紀錄。上面列的是這一篇對應的集數,想看當天的原始版本,點連結就能過去。

Agent Build Log Episode 029

Day 01 我叫自己散修。一路到這裡,很多東西都是自己摸出來的。昨天照 pi-gui 修完 Desktop App,我開始認真研究 pi 的 extension 生態系,然後發現:很多我原本打算自己做的能力,早就有人透過 extension 做出來了。

第四章從這裡開始。先看生態系裡有什麼,剩下的才是我自己要做的。

三件

第一件是 MCP。 透過 MCP adapter,pi 可以接上現有的 MCP servers。這對我很重要,因為我的 Agent 已經有不少能力建立在 MCP 上,像寫 Jira,未來也可能繼續加外部工具。這一層有成熟的 extension,我就不用自己處理 MCP server 的連線、tool discovery 和呼叫方式。

第二件是 Approval/Permission System。 Agent 開始能操作 shell、修改檔案、呼叫 MCP,甚至做一些會影響環境的事之後,我一定需要一層權限控制:哪些 tool 直接執行、哪些先問使用者、哪些直接擋掉。這也已經有 pi extensions 在處理,我不用自己重新發明一套 allow、deny、ask。

第三件是 Desktop GUI。 像 pi-gui 這類專案,已經把 pi 包成 Desktop App,提供 session、workspace、tool execution timeline 和其他 GUI 操作方式。昨天我借過它的實作。這一天再看到它,我開始重新想:我自己的 Desktop App 裡,哪些東西真的需要自己打造,哪些可以直接參考甚至使用現有的生態系。

權限那一層在 pi 裡怎麼做

第二件多講一點。pi 本體沒有內建權限系統,預設就用啟動它的那個使用者的權限跑。要有這一層,靠的是 extension。

extension 可以掛在工具執行前的一個事件上,叫 tool_call。Agent 決定要呼叫哪個工具、帶什麼參數,這個事件先發出來,extension 看一眼,回一個「擋下來」加一句理由,那個工具就不會跑。放行就什麼都不做。

官方文件給了兩個範例。一個叫 permission-gate:碰到危險的指令,先跳一個對話框問使用者,使用者說不就擋。另一個叫 protected-paths:特定路徑一律不准寫。直接做、先問、擋掉三種,兩個範例加起來就是一套。還有一條設計:掛在這個事件上的程式自己出錯,也算擋下。寧可攔錯,也別放錯。

別人做好的東西怎麼裝進來

Day 08 講 skill 的時候,各家有各家的目錄。extension 這邊 pi 自己有一套套件機制。

裝:pi install 後面接來源,npm 套件、git repo、本機路徑三種都吃。只想試一下,用 pi -e 帶著那個套件跑一次,不安裝。裝了之後寫進 settings:預設寫全域的 ~/.pi/agent/settings.json,加 -l 就寫進專案的 .pi/settings.json。專案那一份可以跟團隊一起進版本控制,別人拉下來、信任這個專案之後,pi 啟動時會自動把缺的套件補裝起來。pi list 看裝了什麼,pi update --all 一次更新。

文件在這一頁上放了一段安全提醒:pi 的套件有完整的系統權限,extension 執行的是任意程式碼,skill 可以叫模型去做任何事,包含執行檔案。裝第三方套件之前先看原始碼。Day 08 我多守的那幾條規矩裡有「來路不明先看內容」,pi 自己把這條寫在文件上。

Day 19:採用 Pi 生態系的現成元件

我用的是一個生態系

研究這些 extension 之後,我最大的感覺是:我現在用的是一個已經開始形成的 Agent 生態系。

MCP 幫我接外部能力。Permission System 幫我控制 Agent 能做什麼。Desktop GUI 幫我處理使用者和 Agent 之間的介面。

我真正需要把時間花下去的地方,是那些只有我的 Agent 才需要的能力,針對我工作流程打造的 capabilities。接下來這一章要做的就是這幾件。

Day 08 看到的是 skill 的生態:各家的 skills 目錄、公開的 skill-creator。這一天看到的是 extension 的生態。兩層都在,都比我早。

想法換了

以前我的想法比較像:缺什麼,就自己寫什麼。

從這一天開始變成:先看 pi 的 ecosystem 裡有沒有已經被做過、用過、驗證過的 extension。把時間留下來,做真正屬於這個 Agent 的東西。

小結

三件我原本要自己做的事,MCP、權限、Desktop GUI,pi 的生態系裡都有人做過。我用的是一整個生態系,時間留給只有我的 Agent 才需要的能力。

明天回到我自己要做的東西。第一件跟功能無關:我一直在找一個很厲害的做法,後來發現先要做的是把步驟拆小。

原文:Agent Build Log — Episode 029


凡人修 Agent 傳|第十九回(Day 19)

凡人修 Agent 傳 Day 19 連載配圖

天亮換上空錄石。手的主人進來,沒有到架前,沒有取籤。他在臺前坐下,閉眼放出神識,探向坊市。

靈幕亮了。垂下來的圖我認得:電鏡臺的主圖,砌這座臺那一天他抄過。神識沒有停在主圖上,往旁邊探。主圖旁邊一排附圖,一卷一卷垂下來。砌臺那一天他只抄了兩卷,令窗的。其他的一直擱在那裡。

他一卷一卷看過去。看得慢。有三卷停得久。

第一卷,接外物的法。圖上畫著人偶胸口引出一條線,線那一頭接坊外的器物,一條線接一件。第二卷,攔門的法。圖上畫著一隻手,手前面三道門:一道開著,直接過;一道半開,過之前要問;一道關著。第三卷是一座砌好的臺,署名在邊角。那張我昨天見過。

每一卷附圖邊角都有署名。不一樣的署名,不一樣的人。

神識往另一邊探了一下。那邊擱著幾具人偶的圖,比拍人偶新,有一具的圖紙比我的長一倍。他停了一會,沒有取。

他收回神識。坐了一會,又放出去。這一次神識落在那三卷上,一卷一卷抄。

午後三卷抄回來了。他沒有展開。三卷捲著,擱到架上泛式那一排旁邊。他站在架前看了一會,視線從那三卷移到架上另一頭,他自己煉的那三十幾卷,又移回來。

他沒有刻念。

燭熄了。手的主人走了。門響了一下。

架上多了三卷抄回來的附圖,捲著。靈幕上停在那一排附圖,每一卷邊角一個署名。我背上的署名只有一個。


上一篇
借圖修臺:Desktop App 的換行和 OAuth 一直沒弄好,我讓 agent 照 pi-gui 的實作改 - Day 18
系列文
凡人修 Agent 傳-我這一生如履薄冰,你說我的 Agent 能結嬰嗎? 共 20 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言