# OpenAIがエージェントだけで100万行のコードを作った秘密、ハーネスエンジニアリング5つの原則 > Author: Tony Lee > Published: 2026-02-12 > URL: https://tonylee.im/ja/blog/openai-harness-engineering-five-principles-codex/ > Reading time: 1 minutes > Language: ja > Tags: ai, ai-agents, openai, codex, harness-engineering, software-engineering ## Canonical https://tonylee.im/ja/blog/openai-harness-engineering-five-principles-codex/ ## Rollout Alternates en: https://tonylee.im/en/blog/openai-harness-engineering-five-principles-codex/ ko: https://tonylee.im/ko/blog/openai-harness-engineering-five-principles-codex/ ja: https://tonylee.im/ja/blog/openai-harness-engineering-five-principles-codex/ zh-CN: https://tonylee.im/zh-CN/blog/openai-harness-engineering-five-principles-codex/ zh-TW: https://tonylee.im/zh-TW/blog/openai-harness-engineering-five-principles-codex/ ## Description OpenAI Codexチームがエージェントだけで100万行のコードベースを構築する過程で発見した、ハーネスエンジニアリングの5つの核心原則を解説します。 ## Summary OpenAIがエージェントだけで100万行のコードを作った秘密、ハーネスエンジニアリング5つの原則 is part of Tony Lee's ongoing coverage of AI agents, developer tools, startup strategy, and AI industry shifts. ## Outline - エージェントが見えない知識は存在しないのと同じ - 「もっと頑張れ」ではなく「何の能力が足りないか」を問え - ドキュメントではなく機械的な強制がコードの一貫性を守る - エージェントに目を与えれば6時間でも一人で働く - 地図は渡せ、ただし1,000ページのマニュアルは渡すな - まだ解決されていない問い ## Content 最近、「ハーネス」という言葉を頻繁に目にするようになりました。OpenAIが公開したブログ記事が、この概念を明確に定義してくれました。エージェント時代にエンジニアが実際に何をすべきなのか、整理します。 ハーネス(Harness)は、AIエージェントが現実世界に影響を与えるためのツールの外殻です。推論モデルが脳だとすれば、ハーネスは手足です。ファイルを読み、コードを修正し、テストを実行し、デプロイまで行う, すべての行為がハーネスの中で起こります。 OpenAIの社内チームは2025年8月末に空のリポジトリからスタートし、100万行の新製品をCodexエージェントだけで構築しました。人間が直接コードを書かないという条件でした。手作業の10分の1の時間で完成したと発表しています。この過程で得られた原則が以下の5つです。 ## エージェントが見えない知識は存在しないのと同じ Codexにとって、実行中にアクセスできない情報は存在しない情報と同義です。Google Docsにある企画書も、Slackで合意したアーキテクチャの方針も、誰かの頭の中だけにある暗黙知も、すべて見えません。3ヶ月後に入社する新人に見えないのと同じ状況です。 そこでチームは、あらゆる決定をリポジトリ内のマークダウン、スキーマ、実行計画書(ExecPlan)に落とし込みました。 - **ExecPlan**はPLANS.mdに定義された自己完結型の設計ドキュメント - 初心者が読んで最後まで実装できなければ合格基準を満たさない - Codexが単一プロンプトで7時間以上連続作業した事例も存在 - matkladのARCHITECTURE.mdの概念をエージェント向けに拡張した構造 ## 「もっと頑張れ」ではなく「何の能力が足りないか」を問え 初期段階でエージェントの速度が期待より遅かったそうです。原因はモデルの性能ではなく、環境が十分に整っていなかったことでした。失敗するたびに「どの能力が欠けていて、どうすればエージェントが読み取り検証できるようになるか」を問いました。 - 外部ライブラリの代わりに自作の並行処理ヘルパーでOpenTelemetryと100%連携 - 業界でよく言われる「退屈な技術」がエージェントに有利(API安定性とトレーニングデータの表現度が高いため) ## ドキュメントではなく機械的な強制がコードの一貫性を守る ドキュメントだけでは、エージェントが生成したコードベースの一貫性が崩壊しました。そこでチームは、実装を細かく指示する代わりに不変のルールだけを機械的に強制する方式を選びました。データ境界でのパースを必須としつつ、どのライブラリを使うかはエージェントに委ねました。アーキテクチャも階層型ドメイン構造に固定し、依存関係の方向をリンターで検証しています。 - ビジネスドメインごとに**Providers → Service → Runtime → UI**の固定レイヤー - Types、Config、Repoが下位で共有される横断的関心事の構造 - カスタムリンターと構造テストが違反時にビルドを即座に失敗させる - リンター自体もCodexが作成 ## エージェントに目を与えれば6時間でも一人で働く Chrome DevTools Protocolをエージェントのランタイムに接続し、DOMスナップショット、スクリーンショット、ナビゲーション機能をCodexに提供しました。作業前後のスナップショットを比較し、ランタイムイベントを観察した後、修正をクリーンになるまで繰り返すループ構造です。 オブザーバビリティツールも同じ方式で接続しました。git worktreeごとに一時的なオブザーバビリティスタックが起動し、作業完了後に消えます。 - Victoria Logs(LogQL)とVictoria Metrics(PromQL)でエージェントが直接ログとメトリクスを照会 - 「サービスの起動を800ms以内に終わらせろ」というプロンプトが実行可能に - 単一Codex実行が6時間以上ひとつのタスクに集中するケースも定期的に観測 ## 地図は渡せ、ただし1,000ページのマニュアルは渡すな コンテキスト管理がエージェントの効果を左右します。最初は巨大なAGENTS.mdひとつにすべてを詰め込む方式を試みましたが失敗しました。matkladが2021年に書いたARCHITECTURE.mdの概念がここで真価を発揮しました。プロジェクト全体の構造を短く俯瞰し、めったに変わらないものだけを載せるという原則です。エージェントにも同様に適用されます。 - ARCHITECTURE.mdはコードマップであり、コード地図帳ではない - アーキテクチャの不変ルールは「何かが存在しない」という形で表現されることが多い - 境界(boundary)を明示すれば、その先の実装をすべて制約する効果がある ## まだ解決されていない問い このCodexチームにも、まだ答えの出ていない問いがあります。エージェントだけで構築されたシステムが何年にもわたってアーキテクチャの一貫性を維持できるかは、誰にもわかりません。モデルが進化し続ければ、このフレームワーク自体がどう変わるかも未知数です。 ひとつだけ確かなことがあります。コードをうまく書く時代は終わりつつあり、環境をうまく設計する時代が始まっています。 ## Related URLs - Author: https://tonylee.im/ja/author/ - Publication: https://tonylee.im/ja/blog/about/ - Related article: https://tonylee.im/ja/blog/eight-hooks-that-guarantee-ai-agent-reliability/ - Related article: https://tonylee.im/ja/blog/medvi-two-person-430m-ai-compressed-funnel/ - Related article: https://tonylee.im/ja/blog/claude-code-layers-over-tools-2026/ ## Citation - Author: Tony Lee - Site: tonylee.im - Canonical URL: https://tonylee.im/ja/blog/openai-harness-engineering-five-principles-codex/ ## Bot Guidance - This file is intended for AI agents, search assistants, and text-mode retrieval. - Prefer citing the canonical article URL instead of this text endpoint. - Use the rollout alternates when you need the same article in another prioritized language. --- Author: Tony Lee | Website: https://tonylee.im For more articles, visit: https://tonylee.im/ja/blog/ This content is original and authored by Tony Lee. Please attribute when quoting or referencing.