OpenHands Software Agent SDK:OpenHands V1 の土台にあるイベントソーシング型・ローカルからリモートへの基盤
— 回閲覧
コードエージェントを構築するためのクリーンでモジュラーな Python/REST SDK — OpenHands V1、CLI、OpenHands Cloud の背後にあるエンジン。イベントソーシング状態、ローカルファーストでサンドボックスはオンデマンド、MCP ツール。v1.26.0 は 2026 年 6 月 5 日にリリース。
pip install -U openhands-sdk openhands-tools これは何か
OpenHands Software Agent SDK は、コードを扱うエージェントを構築するための Python と REST の API 群だ。これは OpenHands V1 の中核であり — エージェントのコアを、その上に構築されるアプリ群から分離した全面的な再設計だ(OpenHands CLI も OpenHands Cloud も、この SDK の上で動いている)。リポジトリは MIT ライセンスで、進みが速い。最新のタグ v1.26.0 は 2026 年 6 月 5 日に到着し、v1.25.0(6 月 4 日)と v1.24.0(5 月 27 日)にすぐ続くものだ。
売りは、同一のエージェント定義が、プロトタイピングのためにノート PC 上でも、本番のコンテナ化サンドボックス内でも、ほぼコード変更ゼロで動くべきだという点だ。LLM、型付きの Tool のリスト、そしてワークスペースに紐づいた Conversation を組み立て、メッセージでそれを駆動する。
なぜこのアーキテクチャが興味深いのか
付随する論文(arXiv 2511.03690、MLSys 2026 の口頭発表でもある)は、たとえこの SDK を一切採用しなくても拝借する価値のある 4 つの設計原則を示している。
- 任意の隔離 — ローカルファースト、サンドボックスはオンデマンド。本当に隔離が必要なときだけ Docker/Kubernetes のコストを払う。
- 不変の設定とイベントソーシング状態を伴うステートレスなコンポーネント。これにより、ある実行の決定論的なリプレイが手に入る。
- エージェントのコアと、それを消費するアプリケーションとの厳格な分離。
- 4 つのパッケージ — SDK、Tools、Workspace、Server — にまたがる二層の組み合わせ可能性。型付きで差し替え可能なコンポーネントと MCP 統合を備える。
イベントソーシングに不変の設定を加えたものが、控えめな目玉だ。すべての状態遷移が追記されたイベントであるなら、失敗したエージェントの実行を決定論的にリプレイできる — ログから非決定論的なループを再現しようとする代わりに。
インストールと実行
pip install -U openhands-sdk openhands-tools
ドキュメントは、openhands-sdk と openhands-tools が一組のセットであることを明示している — 1 つのコマンドでまとめてインストールしアップグレードし、バージョンを揃えたままにする。サンドボックス化されたワークスペースと同梱のサーバーが必要なら、openhands-workspace openhands-agent-server を加える。
| パッケージ | 役割 |
|---|---|
| openhands-sdk | コアの agent/conversation/LLM API |
| openhands-tools | 組み込みのターミナル、ファイルエディタ、タスクトラッカーのツール |
| openhands-workspace | Docker / リモートのサンドボックス化ワークスペース |
| openhands-agent-server | REST/WebSocket のエージェントサーバー |
最小の実行は、ターミナル、ファイルエディタ、タスクトラッカーを 1 つのエージェントに配線し、それをカレントディレクトリに向け、単一の指示を送る — エージェントは計画し、ツールを呼び、自分で止まる。
実務者メモ
この 4 パッケージへの分割を、定型句ではなく実際のプロダクトとして扱おう。まずは openhands-sdk + openhands-tools だけをローカルのワークスペースに対して使い、そのループを体感する。そして信頼できない編集を隔離して実行する必要が出てきて初めて openhands-workspace に手を伸ばす。ツールは型付きで差し替え可能、MCP 対応なので、コアを fork せずに自前のツールを差し込める — これが、拡張する対象としてのライブラリと、格闘する相手としてのハーネスとの違いだ。
見落とされがちな角度
ほとんどの「agent SDK」の報道は、どのモデルを呼ぶかに執着する。ここでより息の長い賭けは、イベントソーシングの状態モデルだ。決定論的なリプレイは、不安定なエージェントの実行を、diff し、監査し、回帰テストできる再現可能な成果物へと変える。これはエージェントを、チャットセッションから、ビルドパイプラインに近い何かへと再定義する — そしてそれこそが、本物のコードのリファクタリングを任せて信頼する前にチームが必要とするものだ。