ソフトウェアエンジニアとして、私はこれまでの時間の大半を、ソフトウェアのデプロイや運用で同じ作業を繰り返すか、その作業を肩代わりしてくれるソフトウェアを作るかのどちらかに費やしてきました。

OpenAI で最初に担当したのは、クラウドインフラチームでアプリケーションチーム向けに新しい Kubernetes クラスターを立ち上げる仕事でした。プライベートリンクやクォータ、Terraform にまつわる問題を解決しながら、1 週間かけて複数のクラスターを用意しました。準備が整うと、すぐに次のクラスター群に取りかかりました。
次に配属された API チームでは、最新モデルの評価を担当しました。採点器やクォータ、設定、PyTorch の問題を一つずつ解決していきました。評価が無事に終わり、モデルをリリースすると、次のモデルでまた同じ作業が始まりました。
今では、こうした反復作業に Codex の力を借りています。今もソフトウェアを書いていますが、正確には Codex と一緒に書いています。タスクごとに個別の自動化の仕組みを作る代わりに、次のことができるように Runme を開発しています。
- ワークフローに関するコンテキストを集め、役立つ情報を選んで整理する
- レビューや承認を必要とする範囲を適切に保つ
- 過去の実行で得た知見を活かして、次回以降の Codex の作業を改善する
Codex を使った評価の実行
OpenAI では、新しいモデルや機能をリリースする際に評価を実行し、期待どおりに動作するかを確認します。評価を始めるときは、まず Runme ノートブックを作り、目標を簡潔に書きます。
# 目標:現行モデルを対象に評価を実行する
- 過去の実行記録を確認し、ワークフローを把握する
- このノートブックに詳しい計画を書く
- 私が計画をレビューして承認するまで、評価には着手しない
- 実行したコマンドとその出力、結果をどう解釈したかを記録する
次に、そのセルの内容を作業の目標にするよう Codex に依頼します。
ブラウザで開いている Runme ノートブックの、目標が書かれたセルを読んでください。その内容を作業の目標として、ノートブックに計画を書いてください。計画を実行に移す前に、私の承認を待ってください。
Codex はノートブックを読み、作業の進み具合に合わせて内容を更新します。計画がまとまったら、私がレビューし、必要に応じて修正します。私の出番は、どの評価システムを使うか、新しいインフラを用意するか、既存のリソースで足りるかといった選択を Codex と一緒に考える場面に多くあります。
Codex が作業している間は、ときにはスマートフォンから進捗を確認し、行き詰まったときには少し助言することもあります。たとえば、クォータを使い切って開発環境を用意できない場合は、既存の環境を再利用するか、承認済みの別の方法を探すよう提案することがあります。
こうして、タスクを完了するまでの手順だけでなく、試してもうまくいかなかった方法もノートブックに残ります。作業を終える前に、会話に埋もれてしまいそうな判断も Codex と一緒に書き留めます。その選択肢を採った理由、現時点で推奨する方法、次に担当する人が変えたほうがよい点などです。

ノートブックでの Codex との共同作業
Runme は、Codex と一緒にノートブックを作成できるオープンソースの Web アプリケーションです。Jupyter や Colab と同様に、Markdown、コードセル、HTML に対応しているので、指示、コマンド、実行結果、表、グラフをひとつの文書にまとめられます。
ノートブックは Google ドライブに直接保存できます。文書用のリポジトリを別に用意する必要がなく、一緒に働くメンバーも使い慣れた方法で成果物を見つけて共有できます。
Runme はノートブックごとに *.index.md という名前の Markdown 形式の索引ファイルも書き出します。Google ドライブはこのファイルを検索インデックスに登録できるので、エージェントが作業例や運用上の背景情報、以前の実行結果を必要とするときに、過去のノートブックを見つけやすくなります。
エージェントは WebMCP を介して Runme を操作します。アプリケーションは読み込み時にブラウザ側でツールを登録します。エージェントはこれらのツールを使って次のことができます。
- Runme とノートブックの操作手順を読む
- 実行範囲を限定した JavaScript プログラムでノートブックの内容を読み取る、または更新する
- アプリケーションのドキュメントを読む
この設計が重要なのは、Runme が静的な Web サイトとして配信され、クライアント側で動作するアプリケーションだからです。従来型の MCP エンドポイントを公開するためだけにサーバーを追加すると、インフラが増えて運用が複雑になり、ノートブックのデータを扱う場所も変わります。WebMCP を使えば、アプリケーションの機能をブラウザから直接公開できます。
役立つコンテキストの収集と整理
評価を実行するたびに、どのように作業を進めたかを記録して、次の評価を楽にする機会が生まれます。ワークフローを改善すると、そこから得られるコンテキストも充実します。Codex はそのコンテキストを活かして、次に同じ種類のタスクに取り組むとき、より効果的に作業を進められます。
エージェントに役立つ情報の多くは、すでに日々の業務の中にあります。ただ、ターミナルの履歴や Slack、運用手順書、ドキュメント、ダッシュボードに散らばっています。記録が役立つことを示すのは難しくありません。難しいのは、作業を進めながらその場で書き残せるほど、記録にかかる手間を減らすことです。
Runme を使うと、作業の意図、実行した操作、判断、その結果がひとつの成果物にまとまります。継続的な目標を設定すると、Codex はそのタスクに集中し続けられます。また、承認リクエストの自動レビューでは、既存の権限の範囲を変えずに、対象となる操作の承認リクエストをレビューできます。
計画どおりに進めてよいか、重要な選択に人の判断が必要かを決めるのは、今も私です。Codex は繰り返しの作業を引き受け、私が自分で書くよりも詳しく経過を記録してくれます。できあがったノートブックは簡単に共有できるので、そこで得た実践的な知識を個人のチャット履歴に埋もれさせずに済みます。
自分の時間を取り戻すために
これまでの仕事では、気難しい機械を思いどおりに動かす「呪文」を探し当てるのに、ずいぶん時間を費やしてきました。クラウドインフラや Kubernetes があれば、ソフトウェアのデプロイや運用は楽になるはずでした。ところが、それとともに膨大な数のツールも登場しました。その広がりは CNCF Landscape を見るとよくわかります。ひとつの問題を解決しようとすると、必要なツールを選び、使い方を覚え、運用するという新しい課題が生まれがちです。
私にとって Codex の魅力は、大事な判断には自分が関わりながら、繰り返しの運用作業を手伝ってもらえることです。
そうやって自分の時間を少しでも取り戻せたら、その時間はうちの犬たちと遊んで過ごしたいと思います。