iT邦幫忙

2026 iThome 鐵人賽

DAY 22
0
AI Engineering

[ opencode ] 開源 AI coding agent系列 第 22

22-pi | 極簡 agent harness 的魅力

  • 分享至 

  • xImage
  •  

! 本篇文章將會介紹 pi 這個極簡 terminal coding agent,看看「少即是多」的哲學怎麼實踐 :D

TL;DR: https://dev.benben.me/slides/s/ironman-22-pi

本篇目標

讀完這篇你會學到:

  • 認識 pi 與它的 minimal harness 哲學
  • 上手跑一輪:安裝、AGENTS.md、tree session、四種模式
  • 用 Day 21 的五維框架幫 pi 打分數

pi 是什麼?

pi(pi.dev)是 Mario Zechner(badlogic)發起的 terminal coding agent,口號很直接:

There are many agent harnesses, but this one is yours.
(agent harness 很多,但這個是你的。)

「harness(馬鞍)」這個詞是理解 pi 的鑰匙:它認為 agent 的本體是 LLM + 少數核心工具,harness 只是馬鞍——馬鞍應該合你的身形,而不是叫你改騎姿。MIT 開源。

推薦去看看作者(Mario)的分享: https://www.youtube.com/watch?v=RjfbvDXpFls

安裝與設定

curl -fsSL https://pi.dev/install.sh | sh

(npm 也有:npm install -g @earendil-works/pi-coding-agent

規則檔與 opencode 同名但位置不同:pi 從 ~/.pi/agent/、上層目錄與目前目錄找 AGENTS.md。另外有個可愛的 SYSTEM.md——可以整份替換或附加預設 system prompt,per-project 客製化系統層提示。

體驗重點:跟 opencode 不一樣的四件事

1. Session 是一棵樹

pi 的對話歷史存成樹狀結構/tree 打開樹,跳回任何一個分岔點繼續長,所有分支活在同一個檔案裡。/export 匯出 HTML,/share 丟上 GitHub gist 拿一條可分享的渲染網址。走岔路不怕——岔路本身就是資產。

2. 邊跑邊插話

agent 工作中你可以直接輸入:

  • Enter:steering——當前工具跑完就插入,剩下的工具先等等
  • Alt+Enter:follow-up——排隊,等 agent 做完再生效

「等等我補充一下」與「做完這個再說」兩種心情,兩個鍵。

3. 模型切換是日常操作

15+ providers,/modelCtrl+L 隨時換,Ctrl+P 在愛用清單裡循環。自訂 provider 用 models.json。多模型不是策略專題,是一個快捷鍵。

4. 四種模式

  • Interactive:完整 TUI
  • Print / JSONpi -p "query" 給腳本用,--mode json 吐事件流
  • RPC:stdin/stdout 上的 JSON 協定,非 Node 整合用
  • SDK:把 pi 嵌進你的應用

靈魂:「Primitives, not features」

pi 官網有個段落叫 What we didn't build,列了一排「我們沒做」:

  • 沒有 MCP
  • 沒有 sub-agents
  • 沒有 plan mode
  • 沒有 permission popups
  • 沒有內建 to-do、背景 bash

這不是閹割,是設計:這些全都可以用 extension 長出來。extension 是 TypeScript 模組,拿得到工具、命令、快捷鍵、事件、整個 TUI——官方 examples 裡就有 subagent、plan-mode、permission gate、sandbox 的完整實作。甚至有 DOOM(真的,那個 1993 的遊戲)。

更狂的是「叫 pi 自己寫」:要什麼功能直接開口,pi 會當場改自己改,改完之後 /reload 生效。改 harness 不用 fork 專案——adapt Pi to your workflows, not the other way around

散佈靠 Pi packages

pi install npm:@foo/pi-tools
pi install git:github.com/badlogic/pi-doom

pi vs opencode:對照表

維度 opencode pi
哲學 功能齊全的平台 極簡核心 + 擴充生態
內建擴充點 agents/commands/skills/MCP/plugins 全都有 extensions 一種,但拿到的權限很深
MCP 一等公民 刻意不內建(哲學:CLI 工具 + README 就夠)
Sub-agents 內建 extension 範例自取
Session 線性 + 分享連結 樹狀,岔路可回溯
程式化 OpenAPI server + SDK RPC + SDK 四模式

兩者都是開源、terminal-first、多 provider——差在預設給你多少。喜歡「開箱全配」選 opencode;喜歡「自己來」選 pi。小孩子才做選擇?terminal 夠大,兩個都裝也行,筆者應該裝了快 10 個 harness agents 有吧(汗)。

用五維框架打分數

  • 開源:MIT,滿分
  • 模型自由:15+ providers,高分
  • 擴充性:extension 深度驚人,但生態比 opencode 年輕
  • 自動化:print/JSON/RPC/SDK 四模式,齊
  • 心智負擔:核心極小,入門快;但「自己蓋」的哲學要一點駕馭慾

常見問題

Q:pi 沒有 MCP,查外部資料怎麼辦?
A:pi 的答案:多數「MCP 場景」其實是「跑個 CLI + 讀說明」——skill 打包 CLI 工具與 README 就能上。真的需要再裝 MCP extension。作者有篇〈What if you don't need MCP?〉專門講這個觀點,值得一讀。

延伸閱讀: https://mariozechner.at/posts/2025-11-02-what-if-you-dont-need-mcp/

Q:樹狀 session 跟 opencode 的多 session 差在哪?
A:opencode 是「多個平行對話」;pi 是「同一個對話的多次分岔」。探索式工作(試 A 路線不對退回岔路試 B)pi 的模型很順。

Q:日常真的能用 pi 工作嗎?
A:能,而且很多人把它當主力,或是再試試 omp (oh my pi),但這個又有點回到「火箭車」的感覺了。筆者建議:拿一個小專案給 pi 一週,體驗「改 harness 而不是改工作流」的手感,再決定要不要納入工具箱。

小結

  • pi = 極簡 harness:核心小、能力靠 extensions / skills / packages 長
  • 樹狀 session、steering、四種程式化模式是招牌體驗
  • 與 opencode 是光譜兩端:全配平台 vs 可塑馬鞍
  • 評估工具時,pi 提醒我們:功能可以用掉,但核心複雜度砍不掉

明日預告

Day 23:OpenSpec——spec-driven development,把「AI 不用猜需求」變成 repo 裡的一等公民。


有任何疑問但沒有 iT 邦幫忙帳號,或是想匿名提問?
歡迎到 https://dev.benben.me/q/P3C5U6 提問或加油打氣,沒意外的話會在完賽之後一起回答 :D


上一篇
21-AI coding tools | 2026 全景圖與評估框架
下一篇
23-OpenSpec | spec-driven development:讓 AI 不用猜需求
系列文
[ opencode ] 開源 AI coding agent24
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言