Skip to content

AI Agentと、もう一段先へ

ここからは応用編です。

前の章では、slow query log、access log、pprofを一本ずつ導入し、初期1,284点から正しさ確認済みの20,306点まで進みました。この章では、さらに「1位を取りに行くなら、どうするか」とAgentへ頼み、その後も時間を延長しながら走った記録を扱います。

最初にひとつだけ、大事なことを言わせてください。ここから先は、出てきた変更をそのまま写す章ではありません。

memoryに全部載せる。専用のJSON parserを書く。サーバーを3台へ分ける。最新状態の流れを作り直す。どれも、問題や計測結果が違えば簡単に逆効果になります。実際、今回も43,682点から34,599点へ落とした変更や、3台にした直後の0点、60万点を越えても減点が出て不採用にしたrunがありました。

この章で持ち帰ってほしいのは、大きな変更そのものより、次の考え方です。

  1. いま何が上限なのか、複数の数字で確かめる
  2. 小さな修正では上限が動かないと分かったら、構造を変える
  3. 速さと正しさを、別々に検証する
  4. 測定条件の違うスコアを、同じ表で雑に比べない

Agentは大きな変更をとても速く書けます。人間は、アクセルを踏む理由と、ブレーキを踏む条件を一緒に考えます。さあ、ここからは本気でいきましょう。

応用編の開始プロンプト

実際に使った依頼を、講習用に短く整理しました。

text
ここからはISUCONで1位を狙うつもりで、計測と改善を自走してください。

- 解説記事や既存の解答は見ない。公式マニュアル、公式コード、実装、実測だけを使う
- slow query log、access log、pprof、OSのCPU・memory・I/Oを同時に観測してよい
- 計測→ボトルネックの発見→改善→再計測を繰り返す
- ベンチ1回に時間がかかるため、同じ仮説につながる変更はまとめてよい
- 小さな修正に固執せず、仕様を守れるならmemory化や役割分割も検討する
- 最大3台まで使ってよい。ただし、増やす前に1台の何を分けるのか説明する
- scoreだけでなく、pass、deduction、timeout、HTTP status、service状態を見る
- 測定条件が変わったscoreは、同じ条件の前後と分けて記録する
- 悪化や失敗も、原因と戻す判断を履歴へ残す
- 判断に使ったログ抜粋とpprof画像を講習資料用に残す
- 最後に3台を再起動し、初期化とベンチを再実行する

専門用語を初めて使うときは、人間向けに短く意味を説明してください。
各loopの最後に「見えたこと」「変えたこと」「結果」「次に見るもの」を報告してください。
ここからはISUCONで1位を狙うつもりで、計測と改善を自走してください。

- 解説記事や既存の解答は見ない。公式マニュアル、公式コード、実装、実測だけを使う
- slow query log、access log、pprof、OSのCPU・memory・I/Oを同時に観測してよい
- 計測→ボトルネックの発見→改善→再計測を繰り返す
- ベンチ1回に時間がかかるため、同じ仮説につながる変更はまとめてよい
- 小さな修正に固執せず、仕様を守れるならmemory化や役割分割も検討する
- 最大3台まで使ってよい。ただし、増やす前に1台の何を分けるのか説明する
- scoreだけでなく、pass、deduction、timeout、HTTP status、service状態を見る
- 測定条件が変わったscoreは、同じ条件の前後と分けて記録する
- 悪化や失敗も、原因と戻す判断を履歴へ残す
- 判断に使ったログ抜粋とpprof画像を講習資料用に残す
- 最後に3台を再起動し、初期化とベンチを再実行する

専門用語を初めて使うときは、人間向けに短く意味を説明してください。
各loopの最後に「見えたこと」「変えたこと」「結果」「次に見るもの」を報告してください。

今回の到達点

先に結果だけを載せます。ただし、スコアの横にある測定条件も同じくらい大切です。

構成スコア測定条件判定
1台57,208アプリと公式ベンチが同じc5.largepass / deduction 0
3台70,064coordinatorにベンチ同居、worker 2台pass / deduction 0
3台74,5503台reboot後、AWS内のworkerからmainを測定pass / deduction 0
3台98,004WSLから3台の公開IPを測定pass / deduction 0
3台575,312最新conditionをworkerからmainへ非同期同期pass / deduction 0
3台2,868,779同じ外部経路で再現pass / deduction 0
3台2,738,999worker側の仮登録も非公開にした最終版pass / deduction 0
3台3,072,854最終版を3台rebootした後の最高値pass / deduction 0

外部系列の最高3,072,854は、今回の目標に置いた30位ボーダー92,604の約33.2倍、1位1,464,232の約2.10倍でした。しかも、最終コードを3台とも再起動した後の値です。

ただし、これは2026年に手元で再現した公式ベンチの値です。当時の公式競技環境へ提出した記録ではなく、順位を確定するものでもありません。また、1台の57,208はベンチ同居、後半は外部WSLからの測定です。「同じ条件でどこが動いたか」を見るための数字として扱います。比較の作法も、この応用編のテーマです。

WARNING

3台のEC2を動かしている間は、3台分の料金が発生します。講習後は、残す理由がなければ停止してください。停止と削除は別の操作なので、必要なAMIや計測素材を確認してから行います。