Earendil⁠⁠、AIエージェントハーネスPi 1.0をリリース —⁠—タスクの保存⁠⁠・再開に対応する「Pi Durable」も公開

Earendilは2026年10月1日、AIエージェントハーネスPiのバージョン1.0を公開したと発表した。ターミナルUIのフルスクリーン表示をデフォルトにし、JavaScriptでツールを呼び出すCodemodeも改善した。あわせて、エージェントの実行状態を保存し、プロセス停止後の処理再開を支える実験的な開発基盤「Pi Durable」を公開した。

作業に合わせて拡張できるエージェントハーネス「Pi」

Piは、AIモデルとのやり取りやツールの実行を管理する「エージェントハーネス」。ターミナル上のコーディングエージェントとして利用できるほか、SDKを通じてアプリケーションにも組み込める。

中核の機能を最小限に保ち、拡張機能やスキル、プロンプトテンプレート、テーマで利用者の作業に合わせてカスタマイズできる。サブエージェントやプランモードも、必要に応じて拡張機能やパッケージで追加する。Earendilは、利用者からのフィードバックをもとに数カ月にわたって改良を重ね、個人や企業が信頼して使える安定したソフトウェアになったと説明している。

Pi 1.0の主な更新

リリースノートに記載された主な更新は、次のとおり。

ターミナルUIのフルスクリーン表示をデフォルトに

ターミナルUI(TUI)は、フルスクリーン表示がデフォルトになった。ターミナル本来のスクロール履歴を利用する表示にも切り替えられる。また、起動時の表示を、バージョンとキー操作の案内を含むヘッダーだけに絞る設定も追加した。[1]

Codemodeのプロンプトトークンを削減⁠、画像生成機能を追加

Codemodeを使うと、複数のツールを組み合わせた作業をPiに任せられる。たとえば、不具合や機能追加の要望を管理するLinearからコメントを集め、投稿者の不満の度合いを分析する作業に使える。ユーザーの指示を受けたモデルがJavaScriptのスクリプトを書き、ツールを並列に呼び出したり、取得したデータを絞り込んだりする。

Codemodeは、Piの標準ツールに加え、MCPで接続した外部ツールも呼び出せる。このCodemodeとMCP対応は、9月29日公開の0.99.0で組み込み拡張として導入された。

今回の更新では、デフォルトのツールとCodemodeを有効にしたGPT-5.6へのリクエストで、モデルに送るプロンプトのトークン数が約5300から約3300へと約40%減少した。ツールの説明を短くしたほか、画像生成などに使うAPIの詳しい説明はモデルが必要なときに参照するようにした。

また、Codemodeのスクリプトから画像を生成するmodels.generateImages()を追加した。セッションの認証情報を使って画像モデルを呼び出し、生成した画像を結果として表示できる。画像生成の費用も、セッション全体の費用に計上する。

エラー時にモデルへ返す案内も改善した。存在しないツール名を指定した場合は近い名前を提案し、画像生成APIの呼び出しで引数の形式を誤った場合は、正しい形式を示すようになった。

MCPの認証情報をサーバーごとに保存⁠、応答の検証も修正

MCPサーバーへのOAuth認証では、認証情報をサーバー名とURLの組み合わせごとに保存するよう変更した。同じURLを持つMCPサーバーでも、異なるアカウントで認証できるようになった。

認証時の応答に含まれる識別情報の検証も修正した。[2]また、追加の権限を求められて再ログインした際に、すでに付与された権限が失われる問題を修正した。

Pi Durableで⁠、プロセス停止後も処理を再開できるエージェントを開発

Pi Durableは、Piとは独立したエージェント開発用のハーネス。コーディングや旅行計画などのエージェントを長時間動かし、複数の画面・クライアントから操作する用途を想定している。モデルへのアクセスには、Piと共通のライブラリ「pi-ai」を使う。Flaskの開発者で、Earendilで開発に携わるArmin Ronacher氏は、Pi Durableを自分たちの今後のエージェント開発の基盤としても位置付けている。

Piのコーディングエージェントにもセッションを保存・再開する機能があるが、停止後は利用者が状況を確認して続行を指示することを想定している。Pi Durableでは、モデルへのリクエストやツールの実行をタスクとして管理し、その進行状態をチェックポイントとして会話履歴とともに保存する。これらの情報を再起動後も保持するには、SQLiteのデータベースまたはJSONL形式のファイルを使う。

Pi Durableを動かすプロセスが停止した場合は、新しいプロセスで同じデータベースやファイルを開き、最後のチェックポイントから処理を再開する。中断されたモデルへのリクエストは再送し、ツール呼び出しは安全に再実行できると宣言されている場合に限って実行し直す。それ以外の場合は、中断したことをモデルに伝え、次の対応を判断させる。

保存方式やツールの実行環境は独自に実装できる。例えば、ツールをPi Durableとは別のマシンで動かす構成もとれる。

長い会話では、モデルのコンテキスト上限に近づくと、古いメッセージの要約をバックグラウンドで進める。元のメッセージを残したまま、次のターンに移る際に要約を反映する。ただし、次のリクエストが上限に収まらない場合は、要約の完了を待つ。

複数の会話を並行して進め、会話履歴の任意の地点から別の会話を分岐させることもできる。同じ会話には複数のクライアントが接続でき、途中から参加した場合も、会話履歴、生成中の回答、実行中のツールやその出力などを確認して指示を加えられる。

ツールなどを追加する拡張機能のコードは、会話を停止せずに差し替えられる。実行中のツール呼び出しは開始時のコードで完了し、次の呼び出しから新しいコードを使う。

MITライセンスで公開⁠、Pi Durableは実験段階

Pi 1.0とPi Durableは、いずれもMITライセンスで公開されている。Piは公式サイトから導入できる。独自のAIエージェントを開発する場合は、次のパッケージをインストールしてPi Durableを組み込める。

npm install @earendil-works/pi-durable @earendil-works/pi-ai @earendil-works/chord

Pi Durableは実験段階にあり、公式リポジトリには開発用のサンプルコードが公開されている。

Earendilは公式記事のFAQで、Pi DurableにTypeScriptを採用したのは、開発の立ち上げが最も容易なためと説明している。Rustやアセンブリ言語への将来的な移植も排除していないが、現時点ではTypeScriptに注力しているという。

おすすめ記事

記事・ニュース一覧