OpenAI、Codex の中核フレームワーク Agent Harness をオープンソース化:Agent を自社の業務システムに簡単に組み込める
OpenAI は、コンテキスト管理、ツール呼び出し、サンドボックス、承認を担う Codex の実行基盤を公開しました。開発者はエージェントフレームワークをゼロから作らなくても、既存のダッシュボード、チケット管理、業務管理画面に Codex を組み込めます。
- Codex はもはやプログラミングプラグインやチャットボックスの中だけの存在ではありません。そのエージェント機能は、物流管理画面、チケット管理、税務申告、監視システムなどに接続できます。
- ユーザーは従来どおりのシステムで作業を続けます。システムは現在のオブジェクトと業務状態を Codex に渡し、重要な操作はルールに基づいて人間の承認を待ち、結果は正式な記録に書き戻されます。
- 開発チームは、コンテキストの保持、ツール呼び出し、サンドボックス、進捗管理、承認機能をゼロから構築する必要はありません。Codex が提供するオープンソースのコンポーネントをそのまま利用できます。
- オープンソース化されたのは、CLI、SDK、app-server などの実行基盤です。モデル、ホスティングサービス、IDE 拡張機能、Codex cloud はオープンソース化されていません。
OpenAI は今回、何をオープンソース化したのか
OpenAI は、Codex が継続的に作業を進められるようにする基盤フレームワークをオープンソース化しました:Agent Harness。
大規模言語モデルは、賢い頭脳と考えることができます。頭脳は考えますが、自分がどのチケットを処理しているかを自動的に把握したり、前のステップをどこまで進めたかを自然に記憶したりはしません。どのシステムにデータを確認しに行けばいいのか、どの操作を直接実行できるのか、お金を使う・記録を変更する前に誰の承認を得るべきかも分かりません。モデルに実際に会社で働いてもらうには、作業記録、ツールボックス、入退室管理、承認プロセスが必要です。Agent Harness は、まさにこの「就業システム」です。
今回の公開によって、具体的に3つのことがもたらされます:
- 開発者向け:インフラ層の構築を減らせる。 コンテキストの記憶、ツール呼び出し、サンドボックス、進捗管理、承認メカニズムは、Codex が既に公開しているオープンソースのコンポーネントを再利用できます。
- プロダクト向け:AI を既存ソフトウェアに統合できる。 物流管理システム、チケットシステム、税務申告ソフトウェア、監視ダッシュボードなどを、Codex の作業インターフェースにできます。
- ユーザー向け:作業をチャットボックスに移し替える必要がなくなる。 元のシステムが現在のオブジェクトと業務状況を提供し、結果は元の正式な記録に反映されます。
物流管理システムに組み込んだ場合、例えばこうなります。管理者が遅延した貨物を選択すると、Codex は現在のステータスを直接取得して原因を調査します。再予約など費用が発生するアクションが必要な場合は、システムがルールに従って一旦停止し、人間の承認を待ちます。
ただし、先に境界線を明確にしておきます。OpenAI は、Codex 全体、モデル、クラウドサービスをすべてオープンソース化したわけではありません。明確に公開されたのは、Codex CLI、SDK、app-server などの Harness と接続コンポーネントです。モデルへのアクセス、ホスティングサービス、IDE 拡張機能、Codex cloud は、引き続き独立した部分です。正確に言うと、開発者が入手できるのは、Codex のエージェント実行基盤と接続層であり、Codex 全体をセルフホストできるバージョンではありません。
なぜモデルだけでは、本物のエージェントにならないのか
通常の大規模言語モデルの呼び出しはシンプルです。質問を入力し、回答を待つだけです。しかし、タスクが「答える」から「完了させる」に変わると、欠けている部分がすぐに明らかになります。
モデルは、自分がどのオブジェクトを処理しているかを把握し、これまでに行ったことを記憶し、ファイルやログ、業務記録を読み取り、外部ツールを呼び出し、失敗したら別の方法を試し、自動実行できるアクションと、人間の承認を必要とするアクションを区別できなければなりません。タスクが数十分以上に及ぶ場合や、複数回のやり取りにわたる場合、古いコンテキストを圧縮しつつ、初期の重要な判断を忘れないようにする必要もあります。
Agent Harness は、進捗の記憶、ツールのスケジューリング、権限の制限、タスクの遂行を担当する実行システムです。
エージェントの能力は、状態を保ち続ける実行ループから生まれる
業務オブジェクト、履歴状態、ルール、成功条件がタスクに入ります。
これまでの推論を保持しつつ、長いタスクでは古いコンテキストを圧縮します。
ファイルやシステムを読み、許可された範囲で操作を実行します。
ツールの結果をタスク状態に書き戻し、失敗したら別の方法を試します。
Harness が重要な理由として、最も直接的な問いはこれです。同じモデルでも、実行方法が変わると結果はどれだけ変わるのか。OpenAI は、非常に重みがありながらも、誤用されやすい数字を示しました。
ARC-AGI-3 という公開タスクセットでは、エージェントは未知のインタラクティブな環境で継続的に観察し、試行錯誤しながらルールを見つけ出す必要があるため、これまでの判断や行動履歴を保持できるかどうかが特に重要です。GPT-5.6 Sol が ARC-AGI-3 公式の汎用 Harness を使用した場合、RHAE(相対人間行動効率)は 13.3% でした。一方、これまでに形成された reasoning(推論状態)を保持し、compaction(古いコンテキストを引き続き使用可能なサマリーに圧縮すること)を用いて単純に最も古いコンテンツを破棄する方式を採用したところ、RHAE は 38.3% に上昇し、出力トークン数は約6分の1に削減されました。
背後にあるメカニズムはそれほど神秘的ではありません。reasoning を破棄すると、エージェントは実行のたびにゲームを再理解することになります。また、古いものから順に切り捨てる方式では、より初期の観察やアクションが徐々に消えていきます。推論を保持することで計画を継続でき、コンテキストを圧縮することで、エージェントは長時間のタスクでも単に古い内容を忘れるのではなく、重要な認識を維持できます。
ただし、この結果は特定のモデル、特定の公開タスクセット、特定の評価指標に限ったものです。「Codex を接続すればすべてのエージェントが3倍向上する」と一般化することはできません。この結果が示すのは、モデルを取り巻く実行アーキテクチャも、モデルが最終的に発揮できる能力に影響を与えるということです。
13.3%→38.3% の完全な実験については、別途解説記事をご用意しています:
業務システムに組み込んだ場合、3つの層はそれぞれ何を担当するのか
Harness が「就業システム」であると分かれば、次の実用的な疑問が浮かびます。Codex をプロダクトに組み込んだとき、ホストアプリケーション、Codex app-server、MCP はそれぞれ何を担当するのでしょうか。
このアーキテクチャは、責任を明確に3つの層に分け、それぞれが役割を担います。
業務はアプリに残し、エージェントループはCodexに、信頼できる読み書きはMCPに
現在のオブジェクト · ページ状態 · 業務ルール · 人による承認
スレッドとターン · 推論ループ · サンドボックス · ストリーミングイベント
信頼できるデータ · クエリツール · 業務アクション · 権限境界
第1層はホストアプリケーション、つまり既存の物流管理システム、チケットシステム、税務申告ソフトウェアなどです。ユーザーがどのアラート、どのチケット、どの注文を選択したか、現在のページに表示されているステータスは何か、業務上どのような操作が許可されているか、どのステップで人間の同意が必要かは、すべてこの層が定義します。
第2層は Codex app-server です。この層は、これらのコンテキストを受け取り、タスクの進捗を保存し、エージェントが継続的にツールを呼び出すことを推進し、実行をサンドボックスと承認ルール内に制限します。プロダクト側もプロセスを確認し、いつでも中断し、承認リクエストに応答できます。
第3層は、アプリケーション独自の MCP サービスです。これは、エージェント専用の業務インターフェース群と考えることができます。MCP は業務データベースそのものではありません。エージェントはこれを介して信頼できる記録を読み取ったり、再予約、チケット作成、ステータス更新などの業務アクションをリクエストしたりできます。アクションが実際に実行されるのは、ホストアプリケーションのルールと承認条件を満たした場合のみです。
完了後の変更は、元のプロダクトのインターフェースに反映されます。エージェントの結論は正式な業務システムに入力され、元のシステムが最終的な記録とコントロールセンターとして機能し続けます。
この役割分担により、エージェントプロダクトで混同されがちな3つの点が整理されます:
- Codex はタスクを遂行する責任を持ちます。
- MCP は信頼できるデータと制御されたアクションを Codex に提供します。
- ホストアプリケーションは、両者に何が重要で、何が許可され、最終結果がどこに記録されるべきかを伝えます。
単発タスクからプロダクト機能まで、3つの接続方法の選び方
ほとんどのタスクに app-server は必要ありません。3つの接続方法は、まず一文で覚えられます。スクリプトやバックグラウンドタスクには codex exec、業務コードからの呼び出しには SDK、エージェントをプロダクト機能にするなら app-server です。
製品が深く介入するほど、統合層はエージェントランタイムに近づく
codex exec
- ライフサイクル
- 単一プロセス
- 製品の制御面
- 入力、権限、最終または構造化出力
- 典型的なユースケース
- CI、スケジュールタスク、バックグラウンドバッチ処理
Codex SDK
- ライフサイクル
- 開始、継続、再開
- 製品の制御面
- 業務コードがタスクとストリーミング結果を管理
- 典型的なユースケース
- サーバーサイドワークフロー、社内ツール、アプリロジック
app-server
- ライフサイクル
- 永続スレッドと複数ターンの会話
- 製品の制御面
- イベント、割り込み、承認、カスタムUI
- 典型的なユースケース
- エージェントをネイティブな製品機能にする
codex exec は、境界が明確な単発タスクに適しています。例えば、自動チェックプロセスでのコードレビュー、定期的な記録整理、バックグラウンドでの一連の入力の一括処理などです。最終テキストを返すことも、プログラムが処理を継続できるイベントや構造化された結果を出力することもできます。タスクの開始、実行、終了というライフサイクルは比較的シンプルです。
Codex SDK は、業務コードから直接 Codex タスクを開始・管理する場合に適しています。アプリケーションは新しいタスクを開始したり、過去の作業を継続・再開したりできます。プロダクトチームは app-server の基盤プロトコルを自分たちで処理する必要はありません。
Codex app-server は、エージェントを直接プロダクト機能にする場合に適しています。アプリケーションはタスクを長期間保持し、実行プロセスを確認し、いつでも中断し、一時的なツールを提供し、Codex からのリクエストに応じて承認を処理できます。
これら3つの方法を「低スペック、中スペック、高スペック」と理解してはいけません。選択する際は、次の3つの問いだけを考えます。タスクが継続的な状態を必要とするか、プロダクトが実行プロセスを観察・介入する必要があるか、エージェントがユーザーの現在のインターフェース内で結果を伴う業務アクションを完了する必要があるか、です。
単発のバックグラウンド分析だけなら、app-server を直接導入するのは統合コストが増えるだけです。逆に、エージェントが運営管理画面に長期間存在する必要があるなら、codex exec コマンド1つでは、セッション管理、承認、インターフェース同期を担うのは難しいでしょう。
どの層を選ぶかは、単なる実装の問題です。より大きなプロダクト上の問いは、これらの機能を最終的にどのようなインターフェースに組み込むかです。その答えは、必ずしも新しいチャットボックスを追加することではありません。
エージェントを組み込むことは、チャットボックスを追加することと同じではない
プロダクトチームが次に決めるべきは、AI をどこに配置するかです。OpenAI の答えは、エージェントを作業が本来行われる場所に置くことであり、すべてのソフトウェアに一律でチャットボックスを追加することではありません。
業務システムから切り離され、現在のコンテキストを取得できない汎用チャットボックスは、現場の整理という面倒な作業をすべてユーザーに押し付けます。処理中の注文、ページの状態、業務ルール、操作の目的を、すべてプロンプトとして再度入力しなければならないからです。
ユーザーは自分が見ているレコードを改めて説明し、ダッシュボードのステータスをモデルにコピーし、モデルの提案が最新データに基づいているかどうかを判断する必要があります。モデルが解決策を提示した後も、ユーザーは業務システムに戻って実行しなければなりません。コンテキスト、分析、アクションが2つの場所に分断され、重要な境界線もコピー&ペーストの過程で失われがちです。
同じ作業を並べて比較すると、違いはモデルが回答できるかどうかではなく、コンテキストを誰が整理するか、業務上の境界線をどこから得るか、そして結果が最終的にどこに記録されるかです。
違いはモデルが回答できるかどうかではなく、誰が業務の現場をモデルに渡す責任を持つかです
そのため、ダッシュボード、チケットページ、税務申告フォーム、セキュリティインシデントキューは、AI が登場しても価値を失いません。これらの画面には、作業に必要なオブジェクト、ステータス、証拠、ボタンがすでに揃っています。エージェントのより合理的な位置づけは、これらのインターフェースに入り込み、既存のコンテキストを直接活用することで、ユーザーが空白の入力ボックスから状況を再説明する手間を省くことです。
もちろん、チャットがなくなるわけではありません。自由な探索、曖昧な質問、一時的な分析には、依然として対話が適しています。やめるべきなのは、汎用チャットボックスをすべてのエージェントプロダクトの唯一の形態と考えることです。
Relay デモ:AI が物流管理システムでどのように作業を完了するか
Relay は架空のシードデータを使用しており、実際の顧客システムではありません。前述した3層の役割分担と接続方法を、一連の完全な物流操作として具体化しています。
読み取り、判断、申請、実行、書き戻し、すべてが元のワークフロー内で行われる
ディスパッチャーが実際の作業対象を選択します。
ルート、約束時間、貨物価値、異常がタスクに入ります。
Codexが信頼できる運用状態を取得します。
分析は自動で進められます。
再予約、記録変更、費用発生時には一旦停止します。
明確に許可された変更のみを実行します。
結果がシステム記録とUIに反映されます。
管理者は「物流の遅延を分析して」とゼロから入力するわけではありません。まず異常キューから貨物を1件選択し、次に「遅延を調査」または「是正策を比較」をクリックします。このクリックだけで、業務オブジェクトとユーザーの意図が伝達され、ページはルート、約束時間、貨物価値、現在の異常などの可視的なコンテキストを提供し続けます。
続いて Codex は、Relay の MCP ツールを介して現在の運営記録を読み取り、問題がどこで発生しているかを判断し、利用可能な対策を比較します。分析は自動で進められますが、次のステップが再予約、業務記録の変更、費用の発生などであれば、システムは一旦停止して管理者の承認を求めます。アクションが承認され実行されると、変更は物流記録に反映され、業務ビューが更新されます。
この一連の流れは、次の7つのステップに要約できます:
オブジェクトを選択 → コンテキストを注入 → 信頼できるデータを照会 → 調査と比較 → 人間の承認 → 業務アクションを実行 → 正式な記録を更新
「チャットボックスにツールをいくつか接続する」こととの違いは、まさにプロダクトデザインにあります。いつ自動的にコンテキストを提供するか、どのツールを利用可能にするか、どのアクションに結果が伴うか、そして人間がどこで決定を引き継ぐべきか、ということです。
同様のパターンは、すでにさまざまな分野に浸透しています。GitHub と JetBrains は Codex を既存の IDE ワークフローに統合し、Cisco は Cloud Control の App Builder で Codex SDK を使用しています。Thrive Holdings、Crete、OpenAI は、Codex を税務申告準備と実務者からのフィードバックループに組み込んでいます。
Thrive Holdings、Crete、OpenAI による税務申告準備のパイロット では、7,000件の税務申告書を処理し、協力先は準備時間を約3分の1短縮できたと報告しています。この数字は独立した第三者による評価ではありませんが、ワークフロー統合の第二の価値を示しています。エージェントは一度きりのタスクを完了するだけでなく、本番記録を読み取り、専門家による修正を吸収し、評価タスクを形成し、次の製品改善を推進できるのです。
最後に明確に:何がオープンソース化され、何がされていないのか
もう一つ、誤解されやすい境界線があります。Harness をプロダクトに組み込めることと、Codex 全体を自由にセルフホストできることはイコールではありません。公式に公開された範囲は、それほど広くありません。
| オープンソース化済み | Harness には同梱されない |
|---|---|
| Codex CLI | モデル本体とモデルアクセス |
| Codex SDK | OpenAI ホスティングサービス |
| Codex app-server | Codex IDE 拡張機能 |
openai/codex リポジトリ(Apache-2.0 ライセンス) |
Codex cloud |
開発者が手にするのは、閲覧・変更・プロダクトへの組み込みが可能な Agent 実行基盤と、単発タスクから深いプロダクト統合までをカバーする複数の入り口です。その一方で、モデルやクラウドサービスのオープンソース実装は提供されません。
さらに重要なのは、Harness がビジネス領域を自動で作り出すわけではないという点です。どのレコードが信頼できるデータか、どのツールを呼び出せるか、どの操作に承認が必要か、そして結果をどうシステムに書き戻すか。これらの定義は、引き続きホスト側のアプリケーションが行う必要があります。
つまり OpenAI は、開発者が Agent 実行基盤 を構築する際の大きな手間を省いてくれるのです。しかし、ビジネスプロダクトそのものは、チーム自身が作り上げる必要があります。その成否は、ビジネスへの理解と、データ・ツール・権限・人の判断を信頼性の高いフローとして統合し、AI が既存システム内で実際に作業を完了させられるかどうかにかかっています。
関連資料:Harness エンジニアリングの 12 の実践原則。
CodexのAgent Harnessがオープンソースに
メモリ、ツール、サンドボックス、承認を既存の業務画面へ。データ、権限、結果の責任は自社製品が持ちます。
公開されたもの、されていないもの
オープンソース化Codex CLI、SDK、app-server、openai/codex。
対象外モデル、ホスト型サービス、IDE拡張、Codex cloud。
Harness層は改変できますが、モデルやクラウドのソースコードは含まれません。
モデルが考え、Harnessが仕事を進める
記憶進捗と重要判断を保ち、古い文脈を圧縮。
実行ツールを呼び、結果を確認し、失敗時は再試行。
停止影響のある書き込みは承認まで停止。
ARC-AGI-3の一実験ではRHAEが13.3%→38.3%、出力トークンは約1/6に。すべてのAgentに通じる3倍改善ではありません。
3層でつくる、制御された閉ループ
ホストアプリ文脈、ルール、承認境界、保存先を提供。
Codex app-server進捗を保存し、Agentを動かし、イベントと停止を管理。
アプリ独自のMCP信頼できるデータと制御された操作を提供。
ホストが境界を決め、Codexが実行し、MCPが操作を渡し、承認済み結果を正式記録へ戻します。
タスクの寿命と制御で選ぶ
codex exec単発スクリプト、チェック、バッチ処理。
Codex SDK業務コードからタスクを開始・継続・再開。
app-server観察・中断・承認できる製品機能を構築。
単発はexec、状態を保ち人が介入する仕事はapp-server。必要な深さだけ選びます。
価値は、仕事を説明し直さなくてよいこと
汎用チャット画面文脈をコピーし、Promptを書き直し、元の画面へ戻る。
ネイティブ業務画面現在の文脈と境界を直接渡し、正式記録へ書き戻す。
チャットは探索向き。ただし全Agent製品の唯一の形ではありません。
Relay:分析は自動、結果を伴う操作は承認
1—31—3: 現場の提示貨物を選択 → 画面文脈を渡す → MCPで照会。
4—54—5: 人機協調Codexが調査・比較 → 影響ある操作は人が承認。
6—76—7: ループ完了承認後に実行 → 正式記録と業務画面を更新。
OpenAIは共通の実行基盤を提供します。信頼データ、ツール、権限、最終責任はホスト製品が定義します。
Codexをチャット画面から業務現場へ
問題はモデルが答えられないことではなく、文脈・分析・アクションが2つの場所に分かれていることです。
特定のARC-AGI-3実験では、実行アーキテクチャが結果に影響することが示されていますが、これを全エージェントが3倍に向上すると一般化することはできません。
ホストアプリオブジェクト、ルール、承認の境界は私が管理します。
MCP私は信頼できるデータと制御されたアクションだけを渡します。
Codexはタスクを推進し、MCPはデータとアクションをつなぎ、ホストアプリは業務ルールと最終記録を保持します。
一度きりのタスクはexec、業務コードでの管理はSDK、深いプロダクト統合にはapp-serverが必要です。
クリックだけで業務オブジェクトと意図が渡されます。ページは最新の可視ステータスを提供し続けます。
Codexワークカー選択肢を比較しました。再予約には影響が伴うため、承認をお願いします。
调度員証拠は確認しました。承認します。
分析は自動で進められますが、支払いや記録変更などの書き込み操作は、ホストのルールに従って人の承認を待ちます。
Harnessはすぐに使えるAI導入用の枠組みです。データ、ツール、権限、業務責任はあなたのプロダクトが接続する必要があります。
