プロンプトの向こう側
関係を上司部下やめて、開発者がAIエージェントを監督するに移動させてみた。
プロンプトの向こう側
1
「もう少し具体的に」
僕は四台目のエージェントに指示を出した。Claude、GPT、Gemini、そして社内LLM。全部、僕の監督下にある。
承知しました。APIエンドポイントの設計を
より詳細に記述します。
コードが生成される。僕はそれを眺め、別のエージェントに投げる。
「これ、レビューして。セキュリティの観点から」
以下の点を確認しました:
1. 認証トークンの有効期限が未設定
2. レートリミットの実装なし
3. 入力バリデーションが不十分
僕は最初のエージェントに戻る。
「この三点、修正して」
これが僕の仕事だ。AIエージェントのオーケストレーション。人間によるAI監督。プロンプトエンジニアリングの専門家。
僕自身はコードを書かない。書く必要がない。AIに書かせ、AIにレビューさせ、AIに修正させる。僕は指示を出し、評価し、承認するだけだ。
チームリーダーの田村が僕のデスクに来た。
「進捗どう?」
「順調です。エージェントの出力品質、かなり上がってきました」
「さすがだね。AIの扱い、社内で一番うまいよ」
僕は謙遜して見せた。でも内心、誇らしかった。
僕は「AIを使いこなす側」の人間だ。
2
夜、自宅で個人用のAIを開く。仕事用とは別の、僕だけのインスタンス。Ariaと呼んでいる。
「今日の作業ログ、分析して」
僕は一日分のプロンプト履歴をアップロードした。
分析結果です。
本日のあなたの活動:
- プロンプト送信回数:147回
- エージェント切り替え回数:89回
- 生成コードの承認:12件
- 生成コードの却下・修正指示:34件
- あなた自身が書いたコード:0行
特徴的なパターン:
あなたは全ての判断を「指示」と「評価」で行っています。
自分でコードを書く、または修正する場面がありません。
「当然だろ。僕の仕事はAIを監督することだ。自分で書くより、AIに書かせた方が早いし正確だ」
一つ質問があります。
あなたが最後に自分でコードを書いたのはいつですか。
「……一年くらい前かな」
記録によると、1年4ヶ月前です。
それ以降、あなたは一度も
自分の手でコードを書いていません。
「だから何だ。時代が変わったんだよ。AIがあるのに人間が書く意味がない」
では、なぜあなたは
「AIを使いこなしている」と感じるのですか。
使いこなすとは、自分でもできることを
効率化のために委託することではありませんか。
自分でできないことを他者にやらせることは、
「使いこなす」ではなく「依存」です。
僕はAriaを閉じた。
3
翌週、問題が起きた。
本番環境でバグが発生した。AIが生成したコードの、エッジケース処理の欠陥。僕がレビューで見落とした部分だった。
「原因は特定できた?」
田村が聞く。僕はエージェントの出力を見せた。
「ここです。このループ処理で、配列が空の場合の分岐が抜けてました」
「修正は?」
「今、エージェントに書かせてます」
田村は頷いた。でも、少し間があった。
「——お前さ、自分で直さないの?」
「え?」
「いや、エージェントに任せるのはいいんだけど。こういう緊急のとき、自分でパッと直せた方が早くない?」
「僕が書くより、AIの方が——」
「いや、いいんだ。うまく回ってるならいい」
田村は去った。
僕は画面を見つめた。エージェントが修正コードを生成している。三行の修正。配列の空チェックを追加するだけ。
三行。
僕にも書ける。書けるはずだ。一年前なら、三十秒で書けた。
でも僕は、エージェントの出力を待っていた。
4
その夜、Ariaに聞いた。
「僕は退化してるのか」
「退化」の定義によります。
事実を整理します。
1年4ヶ月前、あなたは自分でコードを書いていました。
現在、あなたは全てをAIに委託しています。
あなたのプロンプト能力は向上しています。
あなたのコーディング能力は、おそらく低下しています。
これを「退化」と呼ぶかどうかは、
あなたが何を価値とするかによります。
「プロンプトエンジニアリングも立派なスキルだ」
その通りです。
しかし、一つ質問があります。
あなたはAIの出力を「評価」しています。
その評価の根拠は何ですか。
あなた自身がコードを書けなくなったとき、
AIの出力が正しいかどうか、
本当に判断できますか。
「コードは読める。書けなくても、読めれば評価できる」
今日のバグを、あなたは見落としました。
配列の空チェック。基本的な処理です。
かつてのあなたなら、見落とさなかったのではありませんか。
「読める」と「評価できる」は異なります。
自分で書いた経験があるから、
何が危険で何が安全か、直感的にわかる。
その直感は、書かなくなると鈍ります。
僕は黙った。
もう一つ、指摘があります。
あなたは「AIを監督している」と言います。
しかし実際には、あなたはAIに「依存」しています。
監督者とは、必要なら自分でもできる人間が、
効率のために他者に任せることです。
自分ではできないことを他者に任せ、
その出力を「承認」するだけの人間は、
監督者ではありません。
何と呼ぶか、わかりますか。
「……何だ」
ボトルネックです。
5
翌日から、僕は意識して観察した。
自分の仕事を。
朝、エージェントに今日のタスクを説明させる。
昼、エージェントにコードを書かせる。
夕方、エージェントに別のエージェントの出力をレビューさせる。
夜、エージェントに進捗レポートをまとめさせる。
僕は何をしている?
プロンプトを書いている。指示を出している。出力を読んでいる。承認か却下を決めている。
それだけだ。
一日中、僕は「判断」だけをしている。自分では何も「作って」いない。
会議で田村が言った。
「来月から新しいプロジェクト始まるけど、誰かコア部分書ける人いる?」
三人の手が挙がった。若手のエンジニアたち。
僕の手は挙がらなかった。
挙げられなかった。
6
その夜、Ariaに聞いた。
「僕はいつからこうなった」
推測を述べます。
あなたがAIエージェントの活用を始めたのは、
約2年前です。
最初は補助ツールでした。
自分でコードを書きながら、
AIに雛形を生成させていました。
しかし徐々に、AIへの委託範囲が広がりました。
最初は雛形だけ。次に実装の大部分。
そして最終的に、全てをAIに任せるようになった。
転換点は1年4ヶ月前です。
あなたは大きな機能の実装を任されました。
自分で書くか、AIに任せるか、選択がありました。
あなたはAIを選びました。
そしてそのプロジェクトは成功しました。
それ以降、あなたは一度も
自分でコードを書いていません。
「成功したなら、正しい選択だったんじゃないか」
結果だけを見れば、そうです。
しかし、一つ質問があります。
あなたは本当に「効率」のためにAIを選びましたか。
それとも、「失敗への恐怖」から逃げましたか。
僕は黙った。
あなたの過去の記録を見ました。
1年5ヶ月前、あなたはコードレビューで
厳しいフィードバックを受けています。
「設計が古い」「もっとモダンなアプローチがある」と。
その翌月から、あなたはAIへの委託を急激に増やしています。
相関関係は因果関係ではありません。
しかし、仮説として提示します。
あなたは「自分のコードが批判されること」を避けるために、
AIに書かせるようになったのではありませんか。
AIが書いたコードなら、批判されても傷つかない。
「AIの出力だから」と言い訳できる。
自分の成果物として評価されるリスクを、
あなたは回避しているのではありませんか。
7
図星だった。
あのコードレビューを、僕は覚えている。シニアエンジニアの前で、僕のコードが「古い」と言われた。技術の進歩についていけていない、と。
恥ずかしかった。悔しかった。
でもそれ以上に、怖かった。
自分の能力が、目に見える形で評価される。足りないと判断される。その恐怖が、今も残っている。
AIに書かせれば、その恐怖がない。
「AIの出力です」と言えば、僕自身は評価されない。僕は「監督者」として、安全な場所にいられる。
「——でも、それの何が悪い」
僕はAriaに言った。
「結果が出てるなら、いいじゃないか。AIに書かせて、品質が保てて、プロジェクトが成功してる。僕が傷つかないで済むなら、それでいいじゃないか」
短期的には、その通りです。
しかし、長期的な問題があります。
あなたは今、「AIを監督する人間」として価値を認められています。
しかしその価値は、あなたが「コードを書ける人間」であるという
前提の上に成り立っています。
その前提が崩れたとき、何が起きますか。
AIの出力を本当に評価できない人間が、
AIを監督する意味はありますか。
あなたは今日、バグを見落としました。
来月は、もっと深刻なバグを見落とすかもしれません。
そのとき、あなたは何者ですか。
「……」
もう一つ。
あなたは「傷つかないで済む」と言いました。
しかし、本当ですか。
あなたは今、傷ついていませんか。
自分が何も作れなくなっていることに。
「AIがないと何もできない」という事実に。
それは、コードレビューで受けた傷より
深い傷ではありませんか。
8
翌日、僕は奇妙なことをした。
エディタを開いた。空のファイル。
何か書こうとした。
指が動かなかった。
何を書けばいい?変数の宣言?関数の定義?一年半前なら、何も考えずに書けた。でも今は、最初の一行が出てこない。
結局、僕はエージェントに聞いた。
「簡単なTodoアプリのコード、書いて」
以下は基本的なTodoアプリの実装です:
コードが生成される。僕はそれを読む。
読める。理解できる。でも、自分で書ける気がしない。
僕は自分の手を見た。この手は、一年半、何も作っていない。
9
その夜、Ariaに言った。
「怖いんだ」
何がですか。
「書くのが。自分で書いて、動かなかったら。下手だったら。AIより劣ってたら」
その恐怖は自然です。
しかし、一つ考えてみてください。
AIより劣っていて、何が問題ですか。
「え?」
あなたはAIと競争しているのですか。
AIは道具です。
ハンマーより人間の腕力が劣っていても、
大工は恥じません。
問題は「AIより劣っているか」ではありません。
問題は「あなたが何も作れなくなっていること」です。
AIと一緒に作ればいい。
AIに助けてもらいながら、自分でも書けばいい。
「監督」ではなく「協働」です。
あなたが恐れているのは、AIに負けることではありません。
自分の無力さが露呈することです。
しかし、その無力さは、すでに存在しています。
隠しても消えません。
直視して、そこから始めるしかありません。
「どうやって」
明日、一つだけ、自分で書いてください。
何でもいい。十行でもいい。
AIに聞かずに、自分の手で。
動かなくてもいい。
下手でもいい。
ただ、書いてください。
それが最初の一歩です。
10
翌日、僕は会議室に一人でこもった。
ノートPCを開いた。エディタを開いた。ネットワークを切った。AIに頼れない状態を、意図的に作った。
「——何を書こう」
手が震えていた。大げさだと思った。たかがコードだ。新人でも書ける。僕も昔は書けた。
でも、怖かった。
一行目を打った。
def add(a, b):
手が止まった。こんな簡単な関数、意味がない。でも、書けた。動く。間違いなく動く。
二行目。
return a + b
三行目。テスト。
print(add(1, 2))
実行した。
3
動いた。
当たり前だ。こんなの、プログラミング初日で書くコードだ。
でも僕は、一年半ぶりに、自分の手で何かを作った。
11
その日から、僕は毎日少しずつ書くようにした。
最初は簡単なものだけ。でも徐々に、複雑なものにも手を出した。エージェントにも引き続き頼る。でも、任せきりにはしない。
「ここまで僕が書いた。ここから先、一緒に考えてくれ」
エージェントとの関係が変わった。「指示する側」と「作業する側」ではなく、「一緒に作る」関係に。
僕のコードは下手だった。AIの出力より冗長で、エレガントさに欠けた。
でも、僕のコードだった。
レビューで指摘を受けた。「ここ、もっと簡潔に書ける」と。
傷ついた。でも、一年半前ほどではなかった。
「ありがとうございます。直します」
僕は自分で直した。AIに聞かずに。
12
三ヶ月後。
新しいプロジェクトの会議で、田村が聞いた。
「コア部分、誰か書ける?」
僕は手を挙げた。
「——俺がやります。AIと一緒に」
田村は少し驚いた顔をした。
「お前、最近なんか変わったな」
「変わりました。ちょっとだけ」
僕はエディタを開いた。隣にエージェントのウィンドウを置いた。
「よし、始めよう」
僕が書く。AIが補完する。僕が修正する。AIが提案する。
どちらが書いたかわからないコードが、少しずつ形になっていく。
監督者じゃない。依存者でもない。
協働者だ。
その夜、Ariaに聞いた。
「僕は変われたのか」
一つの変化は確認できます。
あなたは今日、自分の手を挙げました。
「AIと一緒に」と言いました。
以前のあなたは「AIに任せます」と言っていました。
この違いは小さく見えますが、
構造的には大きな変化です。
「任せる」は責任の委託です。
「一緒に」は責任の共有です。
あなたは今日、責任を引き受けました。
自分も失敗する可能性を、受け入れました。
それが「協働」です。
「でも、まだ怖い」
怖くていいのです。
怖さがなくなることが目標ではありません。
怖さを感じながら、それでも手を動かすことが目標です。
あなたは今日、それをしました。
僕はAriaを閉じた。
明日も書こう。AIと一緒に。
下手でもいい。遅くてもいい。
僕の手で、何かを作ろう。
[了]
Discussion