> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wangenhui.top/llms.txt
> Use this file to discover all available pages before exploring further.

# 動作確認と受け入れ検証

> 本チュートリアルのローカル Demo を実行し、オフラインでの仕組み検証、実 API 接続、本番システムを切り分けます。

## 15. 動作確認: まず仕組みを検証し、次に実モデルに接続する

同梱ファイルはすべて本チュートリアルと同じディレクトリの `demos/` 配下にあります。ローカル教育用 demo は Python 標準ライブラリと Node 組み込みモジュールのみを使います。Python は 3.11+ が必要で、今回の実行では 3.14.7 を使いました。

```bash theme={null}
cd demos/codex-harness
python3 demos/runtime_demo.py
python3 demos/context_memory_demo.py
node demos/ptc_demo.mjs
python3 demos/computer_loop_demo.py
python3 -m unittest discover -s demos -v
```

### 15.1 今回の実測記録

| 項目                          | 今回の結果                                       | 結論の範囲                             |
| --------------------------- | ------------------------------------------- | --------------------------------- |
| Python 仕組みとオフライン API 契約テスト  | 14 項目すべてパス (ランタイム/ストレージ 9 項目 + API 接続 5 項目) | Codex 公式テスト集ではない                  |
| Runtime demo                | 古い方案が拒否され、2 つのツール返却が stale マーク付き            | 独立作業はスクリプトのシミュレーションであり、実 LLM ではない |
| Context / Memory demo       | 履歴の想起、スコープ隔離、由来の撤回、期限切れ表示が正常                | 架空の構造化事実を使用、モデル抽出はしていない           |
| PTC ローカル demo               | partial を出力し、成功結果、失敗、由来を保持                  | 静的で信頼可能なコードであり、隔離 V8 ホストの再現ではない   |
| ローカル App Server probe       | `initialize` 成功                             | thread は作成せず、モデル要求もしていない          |
| Python/JavaScript コード構文チェック | パス                                          | オンライン API 権限や挙動を証明するものではない        |
| モデル API demo                | 実際には呼び出していない                                | API Key、モデル権限、予算が必要               |
| 架空 GUI ループ                  | ローカルアサーションはパス                               | 実スクリーンショット、ビジョンモデル、デスクトップ制御は含まない  |
| 実 GUI / Benchmark / 後学習     | 未実行                                         | 対応する効果が検証済みとは主張できない               |

App Server probe は最初、制限付きサンドボックスで早期終了しました。サンドボックス外での再試行を承認された後、初期化が成功しました。プローブプロセスはすでに終了しており、バックグラウンドの Agent タスクは残っていません。

### 15.2 実 App Server の探査

```bash theme={null}
python3 demos/app_server_client.py
```

これは `thread/start` や `turn/start` を送りません。独自クライアントを作る場合は、まず現行バージョンのプロトコルを生成してください。

```bash theme={null}
codex app-server generate-ts --out ./schemas
codex app-server generate-json-schema --out ./schemas-json
```

schema ファイルはインターフェースの制約を表すだけであり、承認、エラー、通知、ライフサイクルを完全に接続する必要があります。

### 15.3 実モデル API の例

まずローカルの秘密環境変数に `OPENAI_API_KEY` を設定してください。チュートリアルや Git に書き込まないでください。本記事はあなたの API Key を読み取りも使用もしません。モデルとアカウントの対応を確認したうえで、以下を実行できます。

```bash theme={null}
python3 demos/live_api.py direct
python3 demos/live_api.py ptc
python3 demos/live_api.py async
python3 demos/live_api.py compact
```

WebSocket steering の例には `ws` が必要です。

```bash theme={null}
npm install ws
node demos/steering_api.mjs
```

API の例はスクリーンショットに対応する Astra モデル ID `gpt-6-astra` を固定使用しており、こっそりダウングレードや置き換えはしません。各モードは個別に実行し、async/PTC、steering/自動 compaction などの組合せ制約に違反しないようにしてください。オンライン例はいずれも実測していません。クォータ、ネットワーク、API の変更が動作に影響することがあります。未対応フィールドが出た場合はまず公式ドキュメントとモデル権限を確認し、フィールド名を推測しないでください。

### 15.4 Demo と本番システムのギャップ

ローカル Runtime の job テーブルはメモリ上にあり、イベントログは永続化できますが、**クラッシュ後の実行中タスクの復旧や、プロセス間の冪等性は実装していません**。イベントの DB 書き込みとタスク発行は 1 つのアトミックトランザクションでもありません。本番設計では、outbox、永続 job ledger、リースと復旧時の実行状態照合を追加できます。

キャンセルは demo の asyncio コルーチンにしか効きません。ThreadPool で動く Python 関数や実 OS の子プロセスは別の終了設計が必要です。API の例は呼び出しプロトコルを示すためのもので、完全なストリーミング切断復旧、token 予算管理、分散リトライ、本番オブザーバビリティは含みません。

### 15.5 面接準備に向けた学習ルート

| 演習                  | 成果物                  | 受け入れ基準                         |
| ------------------- | -------------------- | ------------------------------ |
| 1: 基本ループと階層         | 自分でアーキテクチャ図を描く       | モデル、ツール、実行状態がどこにあるか説明できる       |
| 2: runtime demo を実行 | イベントログを読む            | ツール待機中に何をしているかを見つけられる          |
| 3: 要求を変更            | 古い revision の提出を作る   | 必ず拒否されなければならない                 |
| 4: 履歴ウィンドウ切替        | エラーコードを現行ウィンドウから追い出す | アーカイブから原文を取り出せる                |
| 5: Memory の衝突       | 新事実を追加し、由来を撤回        | プロジェクト間で読み出されず、期限切れは再確認が必要     |
| 6: PTC 集約           | 1 モジュールを失敗させる        | 最終結果は partial を付け、成功由来を保持する    |
| 7: 実 API            | モデル固定で 10 個の小タスクを回す  | 要求、ツール結果、コスト、失敗理由を記録する         |
| 8: 公平比較             | 同一モデルで直列と並列を比較       | 正当性が退化しないことを確認したうえでレイテンシ利得を論じる |

<a id="sources" />
