組み込み型コーディングエージェントハーネスおすすめ比較【2026年最新】

プロダクトに直接組み込める主要コーディングエージェントハーネスを徹底比較します。実行制御やサンドボックスの隔離性、ポータビリティ、本番運用の月額コストまで中立的に検証しました。アーキテクチャの責任境界を明確にし、自社開発に最適な選定基準を詳しく解説します。

Thursday, September 3, 2026Omid Saffari
組み込み型コーディングエージェントハーネスおすすめ比較【2026年最新】

Vercel AI SDKは、AI SDK 7によって9つのサポート対象コーディングランタイムを単一のプロダクト向けインターフェースの背後に配置できるため、総合的に最も優れた選択肢です。これにより、将来的なランタイム変更がUIの大規模な書き直しではなく単なるアダプターの差し替えで済むようになります。ただし、サンドボックス環境を自前で管理し、実験的パッケージとしての境界線を受け入れる必要があります。

組み込み型コーディングエージェントハーネスの結論

組み込み型コーディングエージェントハーネスとは、アプリケーションが直接呼び出す制御レイヤーを指します。エージェントループ、ツール実行、権限管理、セッション、コンテキスト圧縮、モデルアクセス、そして実行環境のいずれか(または複数)を管理します。これは、ターミナルやエディタ内で人間が直接操作するコーディングエージェントを選ぶのとは根本的に異なる選定基準です。エディタ等の製品をお探しの場合は、広範なAIコーディングエージェントの比較から確認してください。

新規のTypeScriptプロダクトであれば、Vercel AI SDK HarnessAgentが総合的に最も優れた選択肢です。Claude Code、Cline、Codex、Cursor、Deep Agents、fx、Grok Build、OpenCode、Piにまたがる統一インターフェースをホストアプリケーションに提供します。その価値は、すべてのランタイムを画一化することではありません。ストリーミング、セッションライフサイクル、UI連携、サンドボックス確保などの関心事が個々のプロダクト機能へ漏れ出すのを防ぐ点にあります(アダプター固有の機能差自体は依然として存在します)。

その他のランキングは、スタックのどの部分を自社で運用・所有したいかによって分かれます。

  1. Vercel AI SDK HarnessAgent: 最も優れた総合ポータビリティレイヤー
  2. Claude Agent SDK: ベンダー完結型として最も完成されたランタイム
  3. OpenAI Codex SDK: Codexネイティブな自動化に最適
  4. Cursor SDK: ローカルとクラウドを統合した最良のベンダーランタイム
  5. OpenHands Software Agent SDK: 最も優れたオープンソースのリモートスタック
  6. OpenCode SDK: 最も優れた型付きクライアント/サーバー構成
  7. Pi: 最小構成の優れたエージェントコア
  8. fx and libfx: 実験的なネイティブおよびブラウザ組み込みに最適

判断基準は極めてシンプルです。将来的なコーディングランタイムの乗り換えが戦略的価値を持つなら、Vercelを選んでください。単一ベンダーが作り込んだループそのものが製品の強みであるなら、ClaudeやCodexを直接採用します。1つのSDKでローカルエージェントとCursorホストのクラウドエージェントを跨ぎたい場合はCursorを使用します。オープンなリモートサービス基盤が必要ならOpenHandsやOpenCodeを選択し、可能な限り最小のエージェントループを一から組み立てたいならPiを選択してください。fxは、バイナリサイズやブラウザWebAssemblyそのものを実験したい場合に適しており、確定したセキュリティ境界が求められる本番納期がある場合には向きません。

主要ハーネスの一覧比較

価格および機能は2026年9月1日時点で確認されたものです。「開始価格」はSDKまたはオープンソースパッケージ自体の費用を記載しています。モデルトークン、コンピュート、ストレージ、ネットワーク費用は、導入するアーキテクチャに依存するため別枠となります。

ツール最適なユースケース開始価格無料トライアル
Vercel AI SDK HarnessAgent複数ランタイムを束ねる単一TypeScriptインターフェースオープンソース(利用量に応じた従量課金)Proトライアルあり
Claude Agent SDKClaude Codeの完結したループをアプリに内蔵Haiku 4.5 API: 入力$1/出力$5(MTokあたり)SDK個別のトライアル表記なし
OpenAI Codex SDKCodexスレッドと構造化自動化Apache-2.0 SDK; GPT-5.6 Sol 入力$4/出力$20(MTokあたり)SDK単体には該当なし
Cursor SDKローカルとCursorホスト環境の単一APIHobby無料; Pro $20/月Hobby利用可能
OpenHands Software Agent SDKオープンなPython環境とリモート実行基盤無料(MIT); モデル・計算リソース別該当なし
OpenCode SDKOpenCodeサーバーの型安全な制御無料(MIT); モデル・ホスト環境別該当なし
Pi軽量で構成可能なエージェントコア無料(MIT); モデル・ホスト環境別該当なし
fx and libfxネイティブ、ACP、Node、ブラウザWASM、HarnessAgentの実験無料(Apache-2.0); モデル・ホスト環境別該当なし
ランタイムのポータビリティ、ベンダーの深さ、リモートサーバー、最小コア、WebAssemblyをコーディングエージェントハーネスに対応させた意思決定フロー
一般的なモデルリーダーボードではなく、製品が責任を持つべきレイヤーに基づいて選定してください。

本番運用の想定コスト試算

SDK自体のライセンス費用が問題になることは稀です。実際に請求額を左右するのは、モデルの出力トークン、長大なコンテキスト、サンドボックスの稼働時間、リトライ、そして人間のレビューコストです。無料のオープンソースパッケージであっても高価なエージェント運用になることがあれば、有料のホスティングプランのほうが運用負荷を削減して結果的に安上がりになることもあります。

典型的なワークロードを用いて、コストの桁感を把握してみましょう。1回の実行あたり入力20,000トークン、出力5,000トークンを消費し、1営業日あたり100回月間22営業日稼働すると仮定します。これは月間2,200回の実行に相当します。これはベンチマークではなく、前提条件を明確にするための試算枠組みであり、キャッシュの効果はあえて除外しています。

Claude Sonnet 5 APIの価格入力100万トークンあたり$2、出力100万トークンあたり$10)を基準にすると、モデルコストは以下のようになります。

  • 入力: 20,000 / 1,000,000 x $2 = 1回あたり$0.04
  • 出力: 5,000 / 1,000,000 x $10 = 1回あたり$0.05
  • 合計: 1回あたり$0.09、2,200回の実行で月額$198

現行のプロモーション価格であるGPT-5.6 Solの価格入力100万トークンあたり$4、出力100万トークンあたり$20)では、同じワークロードで1回あたり$0.18月額$396となります。これは両モデルの出力品質が同等であると主張するものではありません。ライブラリのライセンス費用以上に、選定するモデルとエージェントのリトライ頻度がコストに直結することを示しています。

ここにVercel Sandboxの料金体系を加味してみます。1 GBのサンドボックスを10分間プロビジョニングし、そのうち2分間CPUがアクティブに稼働した場合、現行レートのアクティブCPU時間あたり$0.128プロビジョニングGB時間あたり$0.0212に基づくと、1回あたり約$0.0078かかります。2,200回の実行では、データ転送量やストレージを除いて、CPUとメモリの純粋な利用費は約$17.16となります。Vercel Pro月額$20で**$20分の利用クレジット**が含まれているため、この計算プロファイルのコンピュート費用はそのクレジット内に収まります。2,200回のサンドボックス作成は、100万回あたり$0.60のレートで約$0.00132の追加にとどまります。Hobbyプランには5,000回の作成枠が含まれますが、個人・非商用利用に限定されており、追加利用枠の購入はできません。

月間2,200回実行時におけるSonnet 5の$198、GPT-5.6 Solの$396、Vercel Sandboxの$17.16を示すコスト対比グラフ
提示したワークロードにおいて、モデルの選択はサンドボックスのCPU・メモリ利用費をはるかに上回るコスト要因となります。

選定と評価の基準

選定の必須条件としたのは、ホストアプリケーションから文書化されたSDK、ライブラリ、プロトコル、またはサーバーAPI経由でプログラムによる制御が可能であることです。単なるターミナルコマンドのみのツールや、エディタプラグイン単体は対象外としました。ベンチマークフレームワークやプロンプト集についても、公式にサポートされたプロダクト統合インターフェースを提供していない限り除外しています。

この基準により、広範な候補群から8つの選択肢に絞り込みました。一般的なカタログでは公式SDK、スキル集、研究用フレームワーク、エンドユーザー向け製品が混同されがちですが、アーキテクチャの運用境界線こそが真の違いを生むため、厳選した8つを深く評価するアプローチを採用しています。

選定された各ツールは、次の5つの基準で評価されています。

  • 組み込み契約(Embedding contract): ホスト側が呼び出し、ストリーミング、再開、停止できる範囲
  • 実行境界(Execution boundary): コードがインプロセス、サブプロセス、サーバー経由、サンドボックス内のどこで走るか
  • 状態の所有権(State ownership): 会話ログ、作業ファイル、認証情報、再開データを誰が保持・永続化するか
  • ポリシー制御(Policy control): 権限付与、ツールの承認、テナント分離、ネットワーク規則をどこで制御するか
  • 移行コスト(Exit cost): ランタイムやモデルを変更した際に、どれだけのプロダクトコードを流用できるか

本稿は実機ベンチマークではなく、現行のベンダー公式ドキュメント、公開価格、セキュリティ境界設計、および上記のコストモデルに基づいて評価を行っています。派手なデモ映像よりも手堅いインターフェース契約を重視する姿勢をとっています。一度決定した組み込み設計は、販促動画の流行よりもはるかに長くプロダクトに残るからです。

1. Vercel AI SDK HarnessAgent: 最も優れた総合ポータビリティレイヤー

Vercel AI SDK HarnessAgentは、複数のコーディングランタイムを単一のインターフェースで扱いたいTypeScriptプロダクトにとって、総合的に最も優れた選択肢です。AI SDK 7ではClaude Code、Cline、Codex、Cursor、Deep Agents、fx、Grok Build、OpenCode、Piがサポート対象として挙げられており、下位パッケージがセッション、ストリーミング、権限、スキル、コンテキスト圧縮、サンドボックスアクセスを正規化して提供します。例えば、初期段階ではClaude Codeを採用しつつ、チャットUIやジョブ管理の仕組みを壊すことなく後からCodexの評価・乗り換えを行いたいコードレビュー製品などに最適です。課題はその成熟度であり、@ai-sdk/harnessは依然として実験的(experimental)と明記されており、ブリッジを利用するアダプターの多くはポートが公開されたネットワークサンドボックスを必要とします。

コーディングエージェントランタイム向けの統一APIを示すVercel AI SDK HarnessAgentの発表ページ
Vercel AI SDK HarnessAgent

最適な対象: ランタイムのポータビリティを製品のリスクヘッジとして捉えるTypeScript開発チーム
際立つ特徴: 複数のコーディングランタイムにわたるAI SDK互換のgenerateおよびstream結果
価格体系: Apache-2.0パッケージはオープンソース。Vercel HobbyおよびProはそれぞれ月額$0および$20。Proには$20分の利用クレジットと無料トライアルが付属し、Enterpriseは個別見積もり。Vercel SandboxはアクティブCPU時間あたり$0.128、プロビジョニングGB時間あたり$0.0212から。
無料トライアル: Vercel Proの無料トライアルあり。ライブラリ自体はオープンソース。

強み
得意なこと
9 points

  • サポートされる9つのコーディングランタイムにまたがる単一のアプリケーション向けインターフェース
  • AI SDK互換のgenerate/stream出力により、既存のuseChat等のUI資産を維持可能
  • アダプターがサポートする場合の型付きスキーマ出力および部分的な構造化ストリーム
  • セッションのデタッチ、停止、破棄、再開準備、およびハーネス単位のMCPサポート
  • Apache-2.0ライセンス
  • HarnessAgentは実験的段階にとどまっており、破壊的変更のリスクがある
  • Claude Code、Codex、OpenCode、DeepAgentsアダプターは現時点でポート開放されたネットワークサンドボックスが必須
  • AI SDK 7はNode.js 22およびESMが必須であり、CommonJSのrequireには非対応
  • 共通インターフェースを採用しても、ランタイム特有の振る舞いや評価作業が不要になるわけではない

Vercelを選ぶ最大の理由は単なる開発の利便性ではありません。ベンダーに対する「交渉力」の確保にあります。プロンプト、UI状態、出力スキーマ、ジョブレコード、評価イベントをアダプターの上位に位置付けておけば、将来のランタイム変更に伴う作業は発生するものの、プロダクト全体の作り直しには至りません。プロバイダーが認証ポリシーを変更した際や、特定モデルの利用料が高騰した際、あるいは自社リポジトリに対して別のループ構造のほうが高いパフォーマンスを発揮することが判明した際に、この設計が強みを発揮します。

ただし、この抽象化には現実的な制約もあります。現在、Claude Code、Cline、Codex、Cursor、Deep Agents、fx、OpenCode、Piといったブリッジ利用アダプターはネットワークサンドボックス環境を必要とします(Grok Buildはホストプロセスを使用)。つまり、「ポータブル」であるからといって「あらゆる環境にコード変更ゼロでデプロイできる」という意味ではありません。アプリケーションとのインターフェース契約が安定する一方で、ランタイムの動作要件はアダプターごとに固有のまま残ります。

2026年8月31日より、Vercel公式の@ai-sdk/harness-fxアダプターにより、HarnessAgentとfx間でACPを用いて通信する9番目のハーネスとしてfxが追加されました。このアダプターは共通インターフェースを維持しますが、このレイヤーを介した場合、fxは構造化出力、手動コンテキスト圧縮、ターン途中の指示修正、組み込みツールフィルタリングには対応していません。詳細なトレードオフはVercelのfx AI SDKハーネスアダプター解説を参照してください。

現行の@ai-sdk/harnessパッケージはバージョン1.0.96に達しています。実験的ステータスの中でバージョンが急速に更新されている環境では、バージョンを厳密に固定し、アップグレード前に契約テストを実施し、再現評価のために未加工のランタイムイベントを保存しておく運用が求められます。

  1. プロダクト契約を最初に定義する

    特定のランタイムに依存しない形で、入力形式、許可するリポジトリ範囲、必須のJSON出力スキーマ、キャンセル時の挙動、最大許容予算を定義します。最初のタスクとしては、変更されたファイル、テスト結果、簡潔なリスク注記を返す、スコープを限定したテスト修正タスクなどが適しています。

  2. 単一のアダプターから着手する

    Node.js 22のESM環境にAI SDK 7を導入し、ランタイムアダプターを1つ選定した上で、セッションごとに隔離された作業ディレクトリを割り当てます。この段階ではUIにランタイム切り替え機能を実装してはいけません。

  3. 隔離環境を明示的に構築する

    ブリッジ利用アダプターの場合、ネットワークサンドボックスを確保し、作業ディレクトリを設定し、再現性のある最小限の依存関係のみをセットアップします。セッションは公式のライフサイクルに従って破棄・停止し、認証情報はエージェントの作業領域外で安全に管理します。

  4. 判断に必要な4つのメトリクスを記録する

    実行ごとに、タスク完了成否、権限拒絶回数、トークン消費量、実稼働時間(wall-clock time)を記録します。これらの数値により、アダプターの変更が真にコスト削減につながっているのか、それとも失敗の形態を変えているだけなのかが浮き彫りになります。

  5. 2つ目のランタイムで再現検証を行う

    同一のプロダクト契約の背後にもう1つのアダプターを追加し、同じリポジトリタスクを実行します。一般的なベンチマークではなく、自社の実ワークロードにおいて2つ目のランタイムが優位性を示すまでは、初期のランタイムを維持してください。

2. Claude Agent SDK: ベンダー完結型として最も完成されたランタイム

Claude Agent SDKは、Claude Codeのフルループそのものが実装詳細ではなく製品の売りである場合に、最も強力な直接の選択肢となります。エージェントループ、コンテキスト管理、ファイル操作ツール、コマンド実行、Web検索、MCP、権限管理の同一機能をPythonおよびTypeScript向けに提供します。厳格な権限ポリシーと、指示変更が可能な長時間のリポジトリセッションを必要とするセキュリティレビューサービスなどでは、最小限の自作ループよりもはるかに洗練された動作を迅速に得られます。その完成度の対価として、ベンダーロックインに加え、ホスト側で慎重に運用すべきサブプロセス管理およびテナント分離モデルが課されます。

Claude Codeのエージェントループと組み込みツールを記載したClaude Agent SDKの概要
Claude Agent SDK

最適な対象: Claude Codeの組み込みループとツール群に製品価値を依存させているプロダクト
際立つ特徴: Claude Codeと同一のエージェントループおよびコンテキスト管理をPython/TypeScriptから制御可能
価格体系: 従量課金制。現行のClaude API体系は、入力/出力100万トークンあたりFable 5が$10/$50、Opus 5が$5/$25、Sonnet 5が$2/$10、Haiku 4.5が$1/$5。
無料トライアル: Agent SDK専用のトライアル枠は記載なし

強み
得意なこと
8 points

  • ファイル読み取り、書き込み、編集、シェル実行、Web検索、MCP、権限管理の組み込み機能
  • PythonおよびTypeScriptライブラリの公式提供
  • 一時的、永続的、ハイブリッド運用の各ワークロードに対応したセッションパターン
  • SessionStoreアダプターによる会話ログの永続ストレージ同期
  • 利用はオープンソースライセンスではなくAnthropicの商用規約に準拠
  • 事前承認がない限り、サードパーティ製品からのclaude.aiログインやレート制限のパススルー利用は原則不可
  • アクティブなセッションごとに個別のサブプロセスが起動するため、並行数とメモリ設計に影響する
  • SessionStoreは会話ログのみをミラーリングし、作業ファイルやCLAUDE.mdなどのメモリ成果物は対象外

自社で組み立てるコンポーネントを最小限に抑えたい場合、Claudeは有力な候補です。ツールの順序制御、コンテキスト肥大化の処理、権限プロンプトの設計を一から行わずに、成熟したコーディングループを直接利用できます。これによりアプリケーションコード量は激減しますが、製品の挙動が特定プロバイダーのリリースペースに依存することにもなります。

実運用にあたってはプロセス管理のサイジングが重要です。Anthropicは目安としてエージェント1つあたり1 GiB RAM、5 GiBディスク、1 CPUを推奨していますが、これは上限ではなく出発点に過ぎません。各セッションが独立したサブプロセスを消費するため、多数の同時セッションを処理するコンテナでは、安易なオートスケーリングに頼るのではなく、セッションあたりのメモリ上限管理と明確な接続数制御が必要です。

永続性に関する境界線にも注意を払う必要があります。SessionStoreはS3、Redis、Postgres、またはカスタムアダプターに会話ログをミラーリングできますが、CLAUDE.mdなどのメモリファイルや作業ディレクトリ内のファイル群は永続化しません。同期に失敗するとmirror_errorを発行してクエリの実行は継続されます。作業の完全な再開をユーザーに保証する場合は、このエラーの監視アラートと、ワークスペース成果物を個別に同期する仕組みが必須となります。

テナント分離の明示的な設定も不可欠です。共有プロセス環境では、ファイルシステムの設定やメモリが別のテナントから読み取られてしまうリスクがあります。推奨される本番構成では、テナントごとに独立した設定ディレクトリと作業ディレクトリを用意し、自動メモリ機能を無効化し、ファイルシステム設定ソースをクリアした上で、エージェントの外部で通信送信規則(Egress)を強制します。

3. OpenAI Codex SDK: Codexネイティブな自動化に最適

OpenAI Codex SDKは、Codexスレッド、進捗ストリーミング、スキーマ制約付きのリポジトリ作業を直接実装するための最も洗練された手段です。公式のTypeScriptパッケージはCodex CLIをラップし、標準入出力を通じてJSONL形式でやり取りを行います。変更されたファイル、テスト成否、リリースノートを含む固定のJSONオブジェクトを確実に返却する必要があるリリースBotなどに極めて適しています。課題はアーキテクチャ上の結合度です。SDKはCLIプロセスを新規起動する設計であり、デフォルトのワークスペースポリシーはGitリポジトリの存在を前提としています。

組み込みスレッド、ストリーミング、構造化出力を記載したOpenAI Codex TypeScript SDKのREADME
OpenAI Codex SDK

最適な対象: すでにCodexおよびOpenAI認証基盤にコミットしているプロダクト
際立つ特徴: ストリーミング構造化イベントとJSON Schema出力を備えた永続スレッド管理
価格体系: SDKはApache-2.0。GPT-5.6 Sol API価格は現在プロモーション中で入力100万トークンあたり$4、出力100万トークンあたり$20。
無料トライアル: オープンソースSDK単体には該当なし。モデル利用やサブスクリプションアクセスは別契約。

強み
得意なこと
9 points

  • 公式提供のTypeScriptパッケージ
  • 複数ターンの会話継続と永続化スレッドの再開機能
  • システム連携に適した構造化JSON Schema出力
  • ツール呼び出し、レスポンス、ファイル変更、トークン消費量を網羅したストリーミング
  • Codex CLIで設定済みの認証情報をシームレスに再利用
  • TypeScript版はインプロセスのエージェントコアではなくCLIのサブプロセスラッパー
  • TypeScriptパッケージの動作にはNode.js 18以上が必要
  • チェックを明示的にスキップしない限り、作業ディレクトリがGitリポジトリである必要がある
  • ランタイム非依存の契約ではなく、Codex固有の挙動にプロダクトが強く結合する

Codexの順位がClaudeより下位にある理由は、本記事の評価基準がより広範な組み込みホスティング機能を重視しているためです。すでに社内でCodexジョブをディスパッチしているシステムであれば、Codex SDKのほうが適している場面も多くあります。スレッドによる会話状態の保持、runStreamed()による進捗の可視化、出力スキーマ検証による不正データの排除など、システム連携に必要なプリミティブが揃っています。

サブプロセス起動の構成自体は必ずしも欠点ではありません。標準入出力を用いたJSONL通信はデバッグが容易で、言語境界をクリーンに保ち、CLI内部の細かな改修からSDKを保護します。ただし、プロセスの起動オーバーヘッド、CLI自体の可用性、標準出力の規律、シャットダウン処理を本番の運用手順書に組み込む必要があります。Webリクエストのたびに無制限な子プロセスを立ち上げるような設計は避けるべきです。

スレッドの状態は、TypeScript環境ではデフォルトで~/.codex/sessions配下に永続化されます。このローカル保存仕様は開発者個人にとっては便利ですが、使い捨てコンテナ環境における唯一の永続化策としては危険です。スレッドIDを顧客ジョブにマッピングし、Codexのホームパスを制御し、インスタンス破棄前に必要な状態データを永続ストレージへ退避させる設計を施してください。

人間がCodex、Claude Code、Cursorをどう使い分けるかという作業比較については、Codex vs Claude Code vs Cursor比較記事を参照してください。本SDKの選定は、自社アプリケーションがCodexスレッドを生成・監視すべきかどうかに絞られます。

4. Cursor SDK: ローカルとクラウドを統合した最良のベンダーランタイム

Cursor SDKは、単なるエディタ統合を超えて、サポートされた組み込み契約としての要件を満たすようになりました。TypeScriptおよびPython SDKを提供し、2つの実行モードに対応しています。ローカルエージェントは呼び出し側アプリケーションと同じ環境で動作し、クラウドエージェントはCursorが管理する隔離された仮想マシン上で動作します。これにより、ステートフルなクラウドエージェントを起動して進捗をストリーミングしたり、コードを開発者のマシン外に出せない環境ではローカル実行に切り替えたりすることが可能です。制約はベンダーの枠組みです。両モードともCursorのランタイムであり、ローカルでのツール実行には、顧客向けプロダクトに組み込む前に厳格なフックやサンドボックスポリシーを自前で適用する必要があります。

最適な対象: ローカル実行とマネージドクラウド実行の両方を単一のベンダーSDKで統一したいチーム
際立つ特徴: 同一のエージェントインターフェースから、ローカルプロセスと永続的なCursorホストエージェントの双方をターゲット可能
価格体系: SDKの利用はCursorのプランおよびリクエストプールに準拠。Hobbyは無料(Agentリクエスト制限あり)、Proは月額$20、Teamsは1ユーザーあたり月額$40、Enterpriseは個別見積もり。
無料トライアル: 有料プランなしでHobbyプランを利用可能

強み
得意なこと
8 points

  • 公式TypeScriptおよびPython SDK、さらに他言語向けのBridgeプロトコルを提供
  • ローカル実行と隔離されたクラウド仮想マシンにまたがる統一インターフェース
  • 状態を維持するクラウドエージェントによる実行ストリーミング、キャンセル、正規化メッセージ
  • フックやサンドボックス設定によってローカルツール呼び出しを制御可能
  • ローカルTypeScriptの利用にはNode.js 22.13以降が必要
  • ローカルエージェントはホストアプリと同居するため、テナント分離はホスト側の責務となる
  • クラウド実行、認証、クォータ、価格がCursor基盤に強く依存する
  • 独立したオープンソースランタイムではなく、Cursorのリクエストプールを共有する形態

CursorがCodexやClaudeの直接SDKより下の順位となっているのは、その優位性がプロバイダーの中立性ではなくデプロイの柔軟性にあるためです。開発者のローカル環境とマネージドなクラウド環境で同じプロダクトフローを再現したい開発者向けプラットフォームには極めて強力です。一方で、完全なセルフホスト、ソースレベルの制御、またはランタイム非依存の契約が必須条件である場合には適していません。

5. OpenHands Software Agent SDK: 最も優れたオープンソースのリモートスタック

OpenHands Software Agent SDKは、エージェントAPIだけでなく、自前でデプロイ可能なリモート実行基盤の両方を必要とする場合に最も優れたオープンソースの選択肢です。PythonおよびREST APIにより、ローカル、Docker、Kubernetesへのデプロイを網羅し、Agent ServerはWebSocket経由でイベントをストリーミングします。規制要件の厳しいエンジニアリング組織であっても、ワークスペースを自社環境内に隔離しながら、社内クライアント向けにOpenAI互換のエンドポイントを提供できます。課題は運用負荷の大きさです。クライアント、エージェントサーバー、ワークスペースの隔離環境、モデルルーティング、永続ストレージのすべてを自社で運用・保守する必要があります。

Python、REST、ツール群、リモートAgent Server機能を示すOpenHands Software Agent SDKのドキュメント
OpenHands Software Agent SDK

最適な対象: オープンで自社ホスト可能なコーディングエージェント基盤を必要とするPython開発チーム
際立つ特徴: ローカル、Docker、リモートワークスペースにまたがる統一された会話API
価格体系: 無料かつMITライセンス。モデル利用料、コンテナ、ネットワーク、ストレージ費用は別枠。
無料トライアル: 該当なし。SDKは完全に無料でオープンソース。

強み
得意なこと
9 points

  • コード操作エージェントに特化して設計されたPythonおよびREST API
  • Bash実行、ファイル編集、Webブラウジング、MCPツールを標準搭載
  • DockerおよびKubernetesデプロイに対応したAgent Server
  • WebSocketイベントストリーミングおよびOpenAI互換エンドポイントの提供
  • MITライセンスであり、商用プロプライエタリLLMおよびオープンソースLLMの両方に対応
  • インプロセスループに比べてシステム構成と運用フットプリントが大きい
  • リモート運用にはクライアント、サーバー、ワークスペース、ネットワークポリシーの連携設計が必要
  • ソフトウェア自体は無料でも、モデル費用とインフラ計算コストは発生する
  • 主たるSDK言語がPythonであるため、TypeScript主体のプロダクトではサービス境界が一段増える

OpenHandsの強みは、「セルフホスト」の定義が単なるPCローカルへのパッケージ導入にとどまらない点にあります。リモート構成は3つの明確なコンポーネントに分かれています。Pythonクライアント、HTTP/WebSocketで通信するAgent Server、そして隔離されたワークスペース環境です。ローカル実行からDockerやリモートAPIへの切り替えはワークスペースオブジェクトの差し替えだけで済み、会話制御コードには手を加える必要がありません。

この構造は、複数のクライアントが共存する環境で威力を発揮します。ブラウザ、IDE、音声システム、あるいは他のOpenAIクライアントから、Pythonライブラリを直接インポートすることなく互換エンドポイントを呼び出すことが可能です。認証、クォータ、監査ログ、リージョン制御をサービス境界に集約できるため、社内プラットフォーム構築において最も完成度の高いオープン基盤と言えます。

しかし、機能の完成度はエンジニアの運用工数と引き換えです。コンテナイメージのパッチ適用、ワークスペースのリソース制限、APIキーのローテーション、WebSocketセッションの監視、リポジトリの保持期間管理などを自社で担う必要があります。「MITライセンス」はライセンス費用の回答にはなっても、総所有コスト(TCO)の回答にはなりません。

Vercelとの比較は、インフラの所有権をどこまで持つかに帰着します。VercelはTypeScriptの制御プレーンとマネージドサンドボックスを提供します。OpenHandsはソースコードへの完全なアクセスとデプロイの自由度をもたらしますが、管理すべきインフラが増大します。データの配置場所やモデルの可搬性に関する厳格な規制要件がある場合はその工数を払う価値がありますが、来月リリースしたい小規模な商用機能が目的であれば、運用の重さが開発の足かせになる可能性があります。

6. OpenCode SDK: 最も優れた型付きクライアント/サーバー構成

OpenCode SDKは、明示的なOpenCodeサーバーを型安全なクライアントから制御したいJavaScript/TypeScript環境において、最も優れたスタンドアロンの選択肢です。createOpencode()でサーバーとクライアントの両方を起動でき、createOpencodeClient()で既存のサーバーに接続できます。デスクトップアプリや社内開発者ポータルから、生成された型定義を通じて、セッション作成、イベントストリーミング、権限応答、コマンド実行、ファイル検査、構造化出力の要求が可能です。課題は、その明快さの裏返しです。クライアント/サーバー契約であるため、サーバーのライフサイクル、ポート開放、マルチテナント分離、認証管理はホスト側の責任となります。

型安全なJavaScriptクライアントとローカルサーバーオプションを示すOpenCode SDKのドキュメント
OpenCode SDK

最適な対象: 明示的なエージェントサーバーを型安全に操作したいJavaScript/TypeScriptプロダクト
際立つ特徴: セッション、ファイル、コマンド、権限、イベントAPIを網羅するOpenAPI生成の型定義
価格体系: 無料かつMITライセンス。モデル利用料およびサーバーインフラ費用は別枠。
無料トライアル: 該当なし。SDKは完全に無料でオープンソース。

強み
得意なこと
9 points

  • バンドルされたサーバーとクライアントの一括起動、または既存サーバーへの接続を選択可能
  • サーバーのOpenAPI仕様から自動生成された型安全なAPI
  • セッション、権限、シェル、ファイル、検索、設定、イベントにわたる広範な制御インターフェース
  • デフォルトで2回のリトライ機能を備えた検証済みJSON Schema出力
  • MITライセンス
  • 小さなインプロセスループを埋め込むのではなくサーバープロセスを制御する構造
  • デフォルトのlocalhost設定は開発の便宜用であり、マルチテナント対応のセキュリティモデルではない
  • サーバーの起動、ヘルスチェック、アップグレード、認証、ネットワーク公開はホスト側で管理が必要
  • 公式に文書化されたクライアントはJavaScript/TypeScriptに限定

ローカルのデフォルト設定は極めてシンプルに設計されています(127.0.0.1、ポート4096、起動タイムアウト5,000 ms)。これらの設定はElectronアプリ、ローカル自動化スクリプト、開発者向けツールには適していますが、そのまま本番環境に持ち込んではいけません。複数テナントからアクセス可能なサーバーには、手前に認証層を設け、ジョブごとのワークスペース隔離ポリシーを設定し、許可するシェルおよびファイル操作のルールを策定する必要があります。

OpenCodeのプロダクト面での最大の利点はその可観測性です。セッション作成、プロンプト投入、中断、共有、要約、シェル実行、権限応答、ファイル操作、設定変更、イベント購読のすべてが明示的なメソッドとして公開されています。「プロンプトを投げて結果を待つ」だけのような不透明なパッケージと比べて、運用者向けの管理コンソールをはるかに構築しやすくなっています。

OpenHandsとの直接比較は、主言語とスコープの違いです。OpenCodeはサーバーを取り巻く明快なJS/TSクライアントを提供します。OpenHandsはPythonファーストのエージェントSDKであり、より明確なリモートワークスペースのデプロイ設計を備えています。アプリケーションがすでにTypeScriptで書かれており、OpenCodeサーバーの動作モデルが目的に合致しているならOpenCodeを選んでください。オープンなエージェント基盤全体の自社管理やワークスペースの可搬性を重視するならOpenHandsが適しています。

7. Pi: 最小構成の優れたエージェントコア

Piは、作り込まれた完成品プラットフォームよりも、軽量でカスタマイズ可能なエージェントループそのものを必要とするプロダクトに最適な選択肢です。@earendil-works/pi-agent-coreは、状態管理、ツール実行、イベントストリーミング、モデル切り替え、動的指示変更(steering)、フォローアップキュー、ツールイベント処理を提供します。プロジェクト全体としてはNode.js SDKやJSONL RPCインターフェースも用意されています。特化型のコードマイグレーションサービスなどで、完成されたターミナルエージェントを丸ごと導入するのではなく、必要なツールとイベントのみを定義して使いたい場合に適しています。課題はコンポーネントの組み立て責任です。永続化、コーディングツール群、実行隔離、そして多くの運用ポリシーを自力で実装しなければなりません。

最小限のコーディングハーネスとプログラム向けSDKおよびRPCインターフェースを示すPiのドキュメント
Pi

最適な対象: エージェントループとツールポリシーを完全に自前で設計・制御したいチーム
際立つ特徴: 強制的なサーバーアーキテクチャを伴わない、イベントストリーミングとツールフックを備えたステートフルコア
価格体系: 無料かつMITライセンス。モデル、ストレージ、計算リソースは別枠。
無料トライアル: 該当なし。Piは完全に無料でオープンソース。

強み
得意なこと
9 points

  • ツール実行とストリーミングイベントを備えた軽量ステートフルコア
  • プログラム可能なNode.js SDKに加え、標準入出力によるJSONL RPCに対応
  • カスタムプロバイダー、サブスクリプション認証、APIキー、ローカルllama.cpp連携をサポート
  • tool_callおよびtool_resultイベントによりツールの実行遮断や変換が可能
  • デフォルトでツールの並列実行をサポートし、順次実行の制御も可能
  • コアパッケージ単体では完全なコーディングエージェント環境は完成しない
  • セッションの永続ストレージ設計はアプリケーション側の責務
  • Gondolin、Docker、OpenShellなどを用いたコンテナ分離は別途独自に設計が必要
  • 大規模ランタイムに標準装備されているツールセット、コンテキスト変換、耐久性ポリシーの自作が必要

Piの魅力は、余計なアーキテクチャの強制を拒絶している点にあります。コア部分は、モデルメッセージのストリーミング、ツールの実行、割り込み指示、フォローアップのキューイング、モデル呼び出し前のコンテキスト変換、ターン終了後の停止を適切に処理します。生のモデルAPI呼び出しから一から構築することなく、独自性の高いループを組み立てるには十分な機能群です。

削ぎ落とされている要素そのものが、このライブラリの設計思想です。耐久性のあるセッションストレージやサンドボックスの仕組みはコアの外部に置かれています。提供するツールもすべて呼び出し側が定義します。ランタイムを極めて小さくポータブルに保てる反面、標準で用意されていないすべての要素について自社で設計判断を下す必要があります。

したがって、Piは目的が特化したエージェントの構成要素として極めて強力です。例えば、リポジトリの構成ファイルを読み取り、依存関係のバージョン制約を更新し、テストコマンドを1回実行して署名付きレポートを出力するだけのサービスを考えた場合、厳格に制限された4つのツールと単一の永続化アダプターを用意するほうが、肥大化した汎用ランタイムを使うより安全です。逆に、セッション管理、権限プロンプト、スキル定義、ターミナル、リモートワークスペース、高度なUIが最初から求められるIDE風の製品には適していません。

なお、PiはVercelのアダプター経由でも利用できます。現時点ではPiの軽量ループを使いつつ、将来的に他のランタイムと比較・移行する可能性を残したい場合は、Vercelを最上位のプロダクト契約として配置します。余計な抽象化レイヤーを完全に排除したい場合は、Piのコアを直接インポートするのが正解です。

8. fx and libfx: 実験的なネイティブおよびブラウザ組み込みに最適

fx and libfxは、ネイティブバイナリ、ACP連携、Node組み込み、モダンブラウザ内でのコーディングループ実行、あるいはVercel HarnessAgentの背後での利用など、実験的なアーキテクチャを探索したいプロダクトにとって最も興味深い選択肢です。現行のfxサイトではv0.0.7を6.19 MiBのモデル非依存・Apache-2.0ライセンスのコーディングエージェントと紹介しており、libfxはネイティブNodeアドオンやWebAssemblyを通じてヘッドレスエージェントおよび対話型ターミナルを提供します。コンパクトな単一ネイティブコアとブラウザデモを両立させたいローカルファーストな開発者ツールなどに最適です。ただし制約も顕著です。fxは実験的段階にあり、ブラウザサポートはJSPIに依存し、WASMビルドではネイティブ機能の多くが削られており、ホストコマンド実行のサンドボックス制御はv0.0.5以降撤廃されています。

極小のオープン組み込みネイティブコーディングエージェントを紹介するVercel Labs fxリポジトリ
fx and libfx

最適な対象: コンパクトなネイティブバイナリ、ACP、Node、ブラウザ動作エージェントの管理された研究開発
際立つ特徴: ネイティブバイナリ、ネイティブNodeアドオン、fx-core.wasm、fx-term.wasmとして提供される単一のZigコア
価格体系: 無料かつApache-2.0。モデル利用認証情報またはローカル計算リソースは別枠。
無料トライアル: 該当なし。fxは完全に無料でオープンソース。

強み
得意なこと
9 points

  • 6.19 MiBの極小ネイティブバイナリとモデル非依存のアーキテクチャ
  • ネイティブACPに加え、ヘッドレスおよび対話型のJavaScript組み込みインターフェースを提供
  • LinuxおよびmacOS(x64およびarm64)向けのネイティブNodeアドオン
  • fetch、環境変数、権限、セッションストア、OAuthストア、端末I/O、制約付きブラウザ作業環境のホストフック
  • エンドユーザー直接利用向けに対象のCodexおよびGrokサブスクリプションログインに対応
  • プロジェクトおよびWebAssembly SDKは明示的に実験的ステータス
  • ブラウザWASMはJSPI対応のChrome/Edge 137以降が必須。Nodeホスト環境はNode.js 20以降が必要
  • WASM環境では、ネイティブプロセス、OSサンドボックス、ネイティブMCP、サブエージェント、スキル、自動更新、任意のWASIファイルアクセス、一般Webアクセスが除外される
  • v0.0.5以降、承認されたコマンドは通常のホストサブプロセスとして実行され、旧来のサンドボックス設定機能は廃止された

現行の0.0.7リリースでは、ターン途中の動的指示、プロジェクト単位のMCP設定、MCP機能検出、厳格なMCP信頼制御が追加されました。しかし、ホスト側にとって重要な境界線は変わっていません。v0.0.5以降、承認されたコマンド(キャプチャ実行、バックグラウンド実行、監視実行)は通常のホストサブプロセスとして動作し、旧来のサンドボックス設定やコマンドは撤廃されています。

これは軽視できない変更です。デスクトップアプリケーションに組み込む場合、承認されたコマンドはホストOS上で直接実行されるため、組み込み側アプリケーション自身で隔離環境を用意しなければなりません。そのため、コマンド承認ロジック、プロセスリソース制限、作業ディレクトリの境界管理、監査ログ、そして場合によっては外部サンドボックスの導入を別予算として計上する必要があります。「権限コールバックがある」ことと「安全にサンドボックス化されている」ことを混同してはいけません。

ブラウザ環境における境界線も明確です。libfxをブラウザWebAssemblyで動作させるには、ChromeまたはEdge 137以降かつJSPIが必須となります。また、WASMランタイムでは、ネイティブプロセス起動、OSレベルのサンドボックス、ネイティブMCPサーバー、サブエージェントやスキル、自動アップグレード、任意のWASIファイルシステムアクセス、公衆網への自由なアウトバウンド通信が意図的に除外されています。ホスト側で制約付きのフォアグラウンドコマンド環境を露出させることは可能ですが、コマンドの精査、制限の強制、返却出力の制限はホスト側の完全な責務となります。

デモ環境であっても認証情報の扱いは重要です。公式ドキュメントでも、公開されるブラウザコードに長期有効なAPIキーを埋め込まないよう強く警告されています。短寿命のトークンを利用するか、認証済みのサーバーサイドプロキシを介在させてください。プロキシ、ワークスペースアダプター、コマンド制御ポリシーが揃っていない限り、ブラウザ向けバイナリだけで製品が完成するわけではありません。

現時点での最適な用途は、機密性のないリポジトリと厳格なツールポリシーを前提とした社内プロトタイプです。最悪のパターンは、エンドユーザー向けブラウザアプリに長期APIキーを埋め込み、広範なコマンドブリッジを開放した上で、WASMモジュールが隔離してくれると思い込む構成です。fxはそのアーキテクチャの幅広さから評価に値しますが、現時点の成熟度から最下位の順位としています。

状況別の最適な選択肢

将来的なランタイム変更に耐えうるプロダクトを作る必要がある場合は、Vercel AI SDK HarnessAgentを選択してください。移行作業がゼロになるわけではありませんが、単一のプロダクト向けインターフェースにより、UI、スキーマ、セッション記録、評価データをアダプターの上位に温存できます。ただし、実験的パッケージの利用が社内基準で禁止されている場合や、アダプター経由ではアクセスできないベンダー固有機能が必須の場合は除外します。

Claude Codeの実行ループそのものがプロダクトの差別化要因であり、アクティブセッションごとに1つのサブプロセスを運用できるインフラ体制があるなら、Claude Agent SDKを選んでください。最も完成度の高いオールインワン構成です。Codexの構造化スレッドやOpenAI認証の流用を最優先する場合はCodexを、ベンダーロックインからの離脱経路を重視する場合はVercelを検討してください。

OpenAIネイティブな構成で、永続スレッド、ストリーミング機械イベント、スキーマ制約付きの出力を必要とする自動化には、OpenAI Codex SDKを選択します。CLIサブプロセスの運用負荷を嫌う場合や、特定ランタイムに依存しないインターフェースを重視する場合は見送るべきです。

1つのプロダクトフローを開発者のローカルマシン上とCursor管理のクラウド環境の両方で統一して動かしたい場合は、Cursor SDKを選択します。完全な自社ホストやランタイムの中立性が絶対条件である場合には不向きです。

自社のインフラ規律のもとで、複数の社内クライアントから利用できるオープンなコーディングエージェント基盤を構築したいなら、OpenHandsを選んでください。クライアント・サーバー・ワークスペースが明確に分離された設計は、プラットフォームチームにとって強力な武器となります。TypeScript主体のサーバーインターフェースを求めるならOpenCodeを、リモート基盤ほどの重厚な仕組みが不要ならPiを検討してください。

OpenCodeサーバーを操作する明示的で型安全なクライアントを求めている場合は、OpenCode SDKを選択します。デスクトップアプリや社内開発ポータルに最適です。サーバーのライフサイクルやネットワークポリシーをホスト側で保守できない場合は適しません。

軽量で構成変更が容易なループ構造を重視し、ツール、状態管理、実行ポリシーを自前で定義したい場合は、Piを選択します。セッション保存やサンドボックスなどの標準部品を自作することに差別化価値を見出せない場合は、より機能の揃ったランタイムを選んでください。

バイナリサイズ、ACP、ブラウザWebAssemblyそのものを技術検証・研究したい場合に限り、fxを選択します。現状の実行境界およびブラウザ環境の制限を考慮すると、軽量なバイナリサイズとは裏腹に、ホスト側に求められるセキュリティ実装工数は極めて高くなります。

プロダクトへの組み込みではなく、企業全体へのツール導入・展開を検討している場合は、エンタープライズ向けコーディングエージェントガイドを参照してください。SDKのAPI仕様以上に、調達基準、ID管理、監査、開発者の定着化が選定を左右します。

採用を避けるべきケース

ここで特定のツールを推奨しない理由は、コーディング能力が劣っているからではありません。今回の組み込み要件に対して適切な契約形態を提供していないためです。

Aiderをプロダクトの直接依存関係にすること。 Aiderはターミナルでのペアプログラミングツールとして非常に優秀であり、クラウドやローカルのモデルとも連携できます。CLIを外部から自動化することは可能ですが、サブプロセスを外部スクリプトで叩くことは、セッション、権限、ライフサイクル、出力構造が保証された安定的な組み込みSDK契約とは根本的に異なります。Aiderはターミナルで人間が直接使うツールです。プロダクトに組み込むなら、公式に文書化されたSDKやサーバーAPIを選択してください。

新規組み込み案件でのSWE-agentの採用。 SWE-agentのリポジトリには、現在mini-SWE-agentへの移行が明記されており、新規プロジェクトには後者が推奨されています。SWE-agentは研究用途や過去ベンチマークの再現には有用ですが、後継プロジェクトへ移行済みのソフトウェアを新規プロダクトの恒久的な依存関係に組み込むのは、無用な技術的負債を抱えることになります。

また、単に「最新のモデル名」だけを売りにした薄いラッパーライブラリも避けるべきです。モデルのトレンドは、セッションスキーマ、ポリシー境界、テスト評価データセット、顧客ワークフローのライフサイクルよりもはるかに速く移り変わります。優れた制御レイヤーとは、そうした永続的な資産を可視化・保護できるものでなければなりません。

来週月曜日から始める実践アプローチ

月曜日の朝からいきなり8つのSDKをすべてインストールしてはいけません。まずはランタイム非依存の受入テスト基準を1つ策定し、2つの環境で再現検証を行うことから始めます。

実際の顧客業務を代表するリポジトリタスクを3つ選定してください。

  • 明確な修正範囲を持つ失敗単体テストの修復
  • マイグレーション注記の作成を伴う依存パッケージのバージョンアップ
  • 指定ファイルを正確に引用し、パッチは生成しない読み取り専用のコードレビュー

それぞれのタスクに対して、リポジトリのスコープ、実行可能なコマンド、最大実行時間、最大許容トークン数、必須の出力スキーマ、人間にエスカレーションすべき条件を定義します。そして、完了成否、テスト結果、変更されたファイル、拒絶されたツール実行、トークン消費量、リトライ回数、人間の承認に至るまでの時間を計測します。まずは最も有力な候補でこのセットを実行し、次に有力な対抗馬で同じテストを再実行してください。

このアプローチから得られるのは、無意味なベンチマークの点数ではなく、具体的な選定判断メモです。Vercelがプロダクト契約を綺麗に抽象化し、背後のランタイム差が許容範囲に収まるなら、ポータビリティを重視した採用が正当化されます。Claudeが難関タスクを少ないリトライで完了できるなら、ベンダーロックインを受け入れてでも導入する価値があります。OpenHandsが外部マネージドサービスを使わずに社内の隔離要件を満たせるなら、多少のインフラ運用の重さは許容できるでしょう。fxを採用するにあたって最初の顧客を迎える前に自前サンドボックスの開発が必要だと判明したなら、その工数を今すぐローンチ予算に組み込むべきです。

よくある質問(FAQ)

ローカルLLM環境に最適なコーディングエージェントハーネスはどれですか?

ローカルモデルに対してリモートサーバーと隔離ワークスペースの運用基盤を整えたい場合、OpenHandsが最も優れた完全なオープンソーススタックです。ツール、永続化、サンドボックスを自作し、最小限のループだけが欲しい場合はPiが適しています。fxもモデル非依存ですが、現状の実験的ステータスを考慮すると本番向けではなく研究用途にとどまります。

どのコーディングエージェントハーネスが最高のベンチマーク結果を出していますか?

組み込み環境への適合性を決定づける公開ベンチマークは存在しません。ベンチマークは、独自のツール定義、プロンプト、対象リポジトリ群、リソース制限のもとでタスク結果を測定しているに過ぎません。プロダクト開発チームは、自社の権限ルールを適用した代表的なリポジトリを用いて動作を再現し、完了率、リトライ回数、トークン消費コスト、人間のレビュー工数を自社で直接比較すべきです。

OpenCodeは組み込み型のコーディングエージェントハーネスに該当しますか?

はい、該当します。OpenCodeの公式SDKは、サーバーとクライアントを一括起動するか、既存のサーバーに型安全なクライアントを接続するインターフェースを提供しています。したがって、インプロセスのエージェントループというよりは、クライアント/サーバー型の組み込み契約として機能します。

完全無料で利用できる組み込み型コーディングエージェントハーネスはどれですか?

フルスタックとして最も優れているのは無料・MITライセンスのOpenHandsであり、最小構成のコアとして最も優れているのは無料・MITライセンスのPiです。OpenCodeやfxもオープンソースです。ただし「無料」なのはソフトウェアのライセンス費用のみであり、モデルのトークン利用料、コンピュート、ストレージ、ネットワーク、それらを運用するエンジニアの人件費は別途発生します。

最終更新

2026年9月3日

カテゴリーBuild

Googleでこのサイトを優先する

omidsaffari.comをGoogle検索の優先ソースに追加

omidsaffari.comを優先ソースに設定すると、GoogleがTop Stories・AI Overviews・AI Modeであなたのために優先表示します。

ニュースレター

毎週日曜、一通の手紙。 動くシステムの話。感想戦ではなく。

AIベンチャーのポートフォリオ運営から生まれるビルドログ、稼働中のシステム、現場ノート。

週刊。スパムなし。いつでも解除できます。