打造「極簡但固執」的 Coding Agent:我從 pi-coding-agent 學到的事

本篇文章更新時間:2026/02/02
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知。
一介資男的 LINE 社群開站囉!歡迎入群聊聊~
如果本站內容對你有幫助,歡迎使用 BFX Pay 加密貨幣新台幣 贊助支持。


重新思考 AI Coding Agent 的極簡哲學:讀《What I learned building an opinionated and minimal coding agent》有感

編輯前言:這篇文章適合任何正被「愈來愈臃腫、愈來愈黑箱」的 Coding Agent 環境搞得心力交瘁的人。作者以多年實作經驗,反其道而行,打造出一個徹底極簡、徹底可控的 coding agent:pi-coding-agent。

核心觀點 (Key Takeaways)

  • 控制上下文(Context Engineering)比什麼功能都重要:越能掌握模型看到什麼,輸出越穩定、越可預期。
  • 極簡工具集其實就夠了:read / write / edit / bash 四個工具,搭配良好提示詞即可滿足大部分 coding 工作。
  • 拒絕黑箱,重視可觀察性:主流 agent 喜歡藏東藏西,pi 的哲學是「全部看得見、全部可追蹤」。

深入解析

整篇文章其實是作者多年使用 ChatGPT、Cursor、Claude Code、Codex 到各種 coding agent 後的反思。他真正要解決的問題不是「功能不夠多」,反而是功能太多、失控、又不透明。以下我整理幾個最有啟發的主題。

1. pi-ai:統一 LLM API 的真實挑戰

作者提出一句我很有共鳴的觀點:

“Context engineering is paramount.”

主流 coding agent 在後台塞了一堆看不到的 prompt、看不到的工具、看不到的中介上下文,使用者根本無法掌控模型所見。為了擺脫這種混亂,他打造了自己的 API 層 pi-ai,整合各大 LLM 提供者(OpenAI、Anthropic、Google、xAI、Groq…)。

這段的亮點包括:

  • 支援中途跨模型、跨供應商交接上下文(context handoff)
  • 完整支援 abort、streaming、工具呼叫
  • 自建模型註冊(models.dev + OpenRouter)

我覺得這特別有價值,因為現在的 LLM 開發其實就是「多模型世界」,能自由切換是未來必需品,而不是額外附加的功能。

2. pi-tui:重新思考 Terminal UI

作者選擇不用 Ink / Blessed / OpenTUI,而是自己寫一個極簡 TUI。核心概念是:

  • 採用 retained mode
  • 透過 differential rendering 減少閃爍
  • 完全利用 terminal 天生的 scrollback(而不是接管整個畫面)

這種做法的結果是:

  • 更接近 Claude Code 的互動體驗
  • 還有完整捲動與搜尋能力
  • UI 反而更簡潔、更好維護

讀到這裡,我突然意識到:有時候不是要打造華麗的 UI,而是要避開不必要的複雜度。

3. pi-coding-agent:徹底的「少即是多」

我最喜歡的部分在於這段哲學性的取捨。

Minimal system prompt

不到 1000 tokens,且清楚、簡潔、無多餘指示。作者的觀點也一針見血:

“Models inherently understand what a coding agent is.”

換句話說,不需要巨量的 system prompt,因為前沿模型早已被 RLHF 訓練得很能理解 coding 工作流。

Minimal toolset

只有:

  • read
  • write
  • edit(surgical edit)
  • bash

這聽起來簡陋,但因為 LLM 本來就懂這些操作的行為模式,效果反而穩定且高可控。

幾項刻意刪掉的功能
  • 沒有 to-do 系統
  • 沒有 plan mode
  • 沒有背景 bash
  • 沒有 MCP(模型上下文污染過大)
  • 沒有子代理(sub-agent)

刪減理由很務實:

  • to-do 與 plan mode 會降低模型品質(增加上下文負擔)
  • 背景 bash / sub-agents 不透明
  • MCP 會塞進成千上萬 token 的工具描述

取而代之,作者提倡:

  • 用 markdown 文件記錄計畫(PLAN.md)
  • 用 tmux 處理長時間程序
  • 想要 sub-agent?直接用 bash 啟動另一個 pi session 就好

這些全部回到同一個哲學:避免黑箱,保持可觀察性。

筆者心得與啟發

我讀完最大的感受是:作者其實不只是寫了一個 coding agent,他是在替整個「AI coding 工作流」做哲學重構。

幾個特別打中我的反思:

  1. Coding agent 的真正價值不是功能,而是可預期性與透明度。
  2. 越多自動化不代表越好,反而容易讓模型迷失。
  3. Context engineering 是我們目前最應該(卻最少工具支持)的一塊能力。

pi-coding-agent 像是一種「回到原點」的嘗試:

  • 工具極簡
  • prompt 極簡
  • UI 極簡
  • 但「控制力」極強

這種哲學讓我開始重新檢視自己使用 coding agent 的習慣:是否太依賴「智慧」、太少關注「可控性」?是否過度依賴 sub-agent、過度塞工具、過度信任模型自動規劃?

對我來說,這篇文章最有價值的不是它介紹了一個新工具,而是它反覆提醒我:

AI 工具越來越強,但我們需要的可能不是更多功能,而是更少、更可控、更透明的功能。

未來我也想試著把自己的 coding agent 工作流程做一次「極簡化」,看看能不能得到更乾淨、更強韌的開發體驗。


Share:

作者: Chun

資訊愛好人士。主張「人人都該為了偷懶而進步」。期許自己成為斜槓到變進度條 100% 的年輕人。[///////////____36%_________]

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


文章
Filter
Apply Filters
Mastodon