$ cat agent-shell.md
/ 5分 #tools #design

> エージェント・シェル

— forge team

エージェント・ブームは、間違った形でリリースされた。

出てきたのは、モノリス。タブの中のチャットボックス。エディタからコピーして、タブに貼り付けて、返答をまたコピーして戻す。再プロンプト。文脈を失う。別のタブを開く。エージェントは「目的地」になった —— わざわざ訪ねていく場所だ。

1978年にUnixが教えてくれたのは、こうだ。一つのことをうまくやれ。出力は誰かの入力になると考えろ。テキストストリームを好め。これがMcIlroyの四行メモで、四十八年経った今も我々はこの上に乗っている。grepawkの存在を知らない。知る必要もない。パイプがAPIだ。

エージェントも同じ形であるべきだ。小さく。組み合わせ可能で。パイプで繋がる。ポータルではなく。

既に存在する例

Aiderは、最も綺麗な現存例だ。ローカルのgitリポジトリに対してペアプログラミングを行うターミナルプログラム。ダッシュボードは無い。ディスク上のファイルを編集し、LLMが書いたメッセージで変更ごとに一つのアトミックなコミットを作る。エディタは通常のファイル監視で差分を拾う —— Vimのショートカットも、gitフックもそのまま動く。プロジェクト発表によれば、GitHubスター44K、pip installs 6.8M、週あたり消費トークン約15B、最新リリースの新規コードの88%はAider自身が書いたという。数字をどう受け取るかはともかく、設計上の核心はこうだ。Aiderは一つのこと —— LLM経由でコードを編集する —— だけをやり、既存のツール群の邪魔をしない。

Simon Willisonのllm CLIは、パイプ側でさらに踏み込んでいる。彼自身の言葉では「Unix哲学の組み合わせ可能なツールという発想で設計した」。cat myfile.py | llm -s "explain this"は期待通りに動く。0.26リリース(2025年5月27日)でツール呼び出しが追加された —— モデルが「Python関数として表現できる任意のツール」を実行できるようになった —— OpenAI、Anthropic、Gemini、ローカルOllamaすべてで、同じCLIの裏側で。Apache-2.0。新モデル、新ツール、新フラグメントローダのプラグインシステム付き。全体がパワーツールであって、プロダクトではない。

この二つは孤立した例ではない。Eficodeは他と並んで、一つのことをうまくやる小さな原子的エージェントこそがエージェント型AIの進む道だと主張している。統合ではなく、合成。賭けはこうだ。テキストストリームと小さなモデルで繋いだ千の小道具は、独自のUIを必要とする一つの巨大エージェントに勝つ。

それでもモノリスが勝ち続ける理由

売りやすいからだ。チャットボックスにはロゴがあり、価格ページがあり、ブランドがある。パイプにはそれが無い。SaaSはチャットボックスが好きだ。VCもチャットボックスが好きだ。チャットボックスにはリファラルプログラムが付けられる。xargsにはそれが無理だ。

そういうわけで、リーチを最大化し、組み合わせ可能性を最小化する形が出てきて、それを我々は「未来」と呼んでいる。一方で、作り手たちは静かにllmaiderghjqfzfをtmuxのペインで繋いで、淡々と出荷している。

スタンス

forgeは後者のために作られている。

バイナリ一つ。stdinを読む。stdoutに書く。あなたのシェル、エイリアス、環境を尊重する。ダッシュボードが欲しければ、別のバイナリを走らせろ —— こちらはパイプの中にいる。エージェントは目的地ではない。シェルの中の動詞だ。||の間にいて、自分の仕事をしてexitする —— /usr/local/binに居場所を得てきた、ほかのすべてと同じく。

一つのことをやれ。組み合わせろ。パイプで繋げ。exitしろ。

出典