概要
Earendil と Piコミュニティ が Pi 1.0 をリリース 新たに Pi Durable という耐久性・可搬性に優れた実験的パッケージも同時発表 Pi Durableは長期間稼働・障害耐性・多地点操作などを実現するハーネス 複数人・複数会話・柔軟な拡張性をサポート Pi Durableの設計思想や利用例も詳細に解説
Pi 1.0とPi Durableの発表
- Pi 1.0 のリリースによる安定基盤の提供
- Pi Durable の同時発表、長期間・どこでも動作するエージェントを想定
- Pi Durableは Pi coding agent の置き換えではなく、より広範なエージェントアプリケーションのフレームワーク
- Earendil は多様な利用ニーズに応えるためPi Durableを開発
- Pi Durableの特徴:どこでも動作、複数会話・複数人対応、障害耐性、柔軟な拡張性
ハーネス(harness)とは
- ハーネス =ストレージ+複数の大規模言語モデル会話を並列実行するための仕組み
- モデルが呼ぶツールや、その実行環境も提供
- 会話履歴(トランスクリプト)を保存し、エージェントの状態も管理
- ツールの実行環境はローカルPC・リモートVM・インメモリサンドボックス等、会話ごとに切替可能
- Pi Durableのソースコードは約15,000行で、エージェントが理解しやすい設計
Pi Durableの特徴と利用例
どこでも長時間稼働 :JavaScriptランタイムがあれば動作
- メモリ、SQLite、JSONLストレージを標準搭載
- SQLite/JSONLはNode API非依存、BunやCloudflare Durable Objectでも動作
- ストレージインターフェースは小さく、独自バックエンドも容易に実装可能
- ストレージは1プロセスが所有し、他クライアントはアタッチ
- アクティブな会話履歴はモデルのコンテキストウィンドウで自動圧縮
柔軟な実行環境 :ツールごとにローカル・リモート環境を選択可
- Node実行環境を標準搭載
- 会話ごとに異なる作業ディレクトリ、環境構築が可能
障害耐性 :プロセス死後も再開可能
- 各タスクは実行前にチェックポイントを保存
- プロセス死後、新プロセスが未完了タスクを検出し再開
- モデルリクエストやツール呼び出しも安全に再実行・中断通知
- サブエージェントも数行で実装可能
複数会話の同時実行 :1ハーネスで多数会話を並列処理
- 会話のフォークや親履歴の継承が可能
- Slackのチャンネル・スレッドのような構成も容易
- 会話ごとに独自エージェント設定(モデル・ツール・作業ディレクトリ等)を保持
拡張性とプラグイン
エージェントの機能は全てプラグイン化可能
- 拡張(Extension)はプロンプトセクション、ツール、フック、タスクのバンドル
- レジストリにインストールし、会話ごとに利用拡張を選択
- システムプロンプトは拡張のセクションを結合し毎回再構築、変更履歴も記録
- モデルが途中でプロンプト・ツール変更に対応していれば、差分のみ送信
ツールの耐久性
- 各ツール呼び出しは耐久タスクとして管理
- クラッシュ後の再実行可否をツールごとに設定
- 会話ごとのツールセット変更も容易(例:検索は可・デプロイ不可)
ツールはハーネスAPIを利用可能
- ドキュメント操作、タスク・会話の開始、他会話との通信も可能
- サブエージェントや複雑なフローも数行で実装
まとめと今後
- Pi Durable はPi coding agentの原則(ミニマリズム・可塑性)を継承
- Pi Durable上で得た知見はPi coding agentにも還元される設計
- エージェント開発の新たな基盤として、Pi Durableの活用・フィードバックをコミュニティに呼びかけ
関連情報: Pi 1.0 - https://news.ycombinator.com/item?id=49926069
Piが耐久性のあるエージェントハーネスを作ってるのを見るのはすごくクールだね。自分もこの分野で結構前から開発してるけど、すごく面白いイノベーションの場所だよ。マシン上でのコーディングエージェントほどの盛り上がりはないけど、主要なプレイヤーはみんなこの分野で製品を作ってるんだ。LangChain Deep Agents、Vercel Eve、OpenAI Agents API、Anthropic Managed Agentsとかね。主な理由は、1)「耐久性」があって、無人で長時間動かすのが簡単で、リカバリーやモニタリングも実装しやすいこと、2) ハーネスとコンピュートを分けることで安全性とスケーリングの利点があること、3) マルチプレイヤーにしやすいことだね。